基于QuartusII的同步计数器设计

合集下载

北京科技大学数电实验四 Quartus II集成计数器及移位寄存器应用

北京科技大学数电实验四 Quartus II集成计数器及移位寄存器应用

北京科技大学实验报告学院:高等工程师学院专业:自动化(卓越计划)班级:自E181姓名:杨威学号:41818074 实验日期:2020 年5月26日一、实验名称:集成计数器及其应用1、实验内容与要求(1)用74161和必要逻辑门设计一个带进位输出的10进制计数器,采用同步置数方法设计;(2)用两个74161和必要的逻辑门设计一个带进位输出的60进制秒计数器;2、实验相关知识与原理(1)74161是常用的同步集成计数器,4位2进制,同步预置,异步清零。

引脚图功能表其中X。

3、10进制计数器(1)实验设计1)确定输入/输出变量输入变量:时钟信号CLK、复位信号CLRN;输出变量:计数输出QD、QC、QB、QA,进位输出RCO,显示译码输出OA、OB、OC、OD、OE、OF、OG2)计数范围:0000-10013)预置数值:00004)置数控制端LDN:计数到1001时输出低电平5)进位输出RCO:计数到1001时输出高电平画出如下状态转换表:CP QDQCQBQA0 00001 00012 00103 00114 01005 01016 01107 01117 10009 100110 0000(2)原理图截图仿真波形如下功能验证表格CLRN QD QC QB QA RCO0 0 0 0 0 01 0 0 0 1 01 0 0 1 0 01 0 0 1 1 01 0 1 0 0 01 0 1 0 1 01 0 1 1 0 01 0 1 1 1 01 1 0 0 0 01 1 0 0 1 11 0 0 0 0 04、60进制秒计数器(1)实验设计1)确定输入/输出变量输入变量:时钟信号CLK、复位信号CLRN;输出变量:计数十位输出QD2、QC2、QB2、QA2和计数个位输出QD1、QC1、QB1、QA1,进位输出RCO2)计数范围:0000 0000-0101 10013)预置数值:0000 00004)置数控制端LDN1(个位):计数到0101 1001时输出低电平5)清零端CLRN2(十位):计数到0110时输出低电平6)ENT:个位计数到1001时输出高电平7)进位输出RCO:计数到1001时输出高电平画出如下状态转换表CP QD2QC2QB2QA2QD1QC1QB1QA1CPQD2QC2QB2QA2QD1QC1QB1QA1CPQD2QC2QB2QA2QD1QC1QB1QA10 0000 0000 20 0010 0000 40 0100 00001 0000 0001 21 0010 0001 41 0100 00012 0000 0010 22 0010 0010 42 0100 00103 0000 0011 23 0010 0011 43 0100 00114 0000 0100 24 0010 0100 44 0100 01005 0000 0101 25 0010 0101 45 0100 01016 0000 0110 26 0010 0110 46 0100 01107 0000 0111 27 0010 0111 47 0100 01118 0000 1000 28 0010 1000 48 0100 10009 0000 1001 29 0010 1001 49 0100 100110 0001 0000 30 0011 0000 50 0101 000011 0001 0001 31 0011 0001 51 0101 000112 0001 0010 32 0011 0010 52 0101 001013 0001 0011 33 0011 0011 53 0101 001114 0001 0100 34 0011 0100 54 0101 010015 0001 0101 35 0011 0101 55 0101 010116 0001 0110 36 0011 0110 56 0101 011017 0001 0111 37 0011 0111 57 0101 011118 0001 1000 38 0011 1000 58 0101 100019 0001 1001 39 0011 1001 59 0101 100160 0000 0000 (2)设计原理图截图(3)实验仿真仿真波形:仿真结果表:5、实验思考题:(1)总结任意模计数器的设计方法。

基于quartusⅡ的通用运算器的设计与实现

基于quartusⅡ的通用运算器的设计与实现

在集成电路设计领域中,各类微处理器已经成为了整个芯片系统的核心。

运算器作为其核心部件,得到广泛的发展。

与此同时,为了增加电子产品产出效率,降低制造成本,诸如Quartus II9.0等电子仿真软件相继出现,为产品开发提供了良好的开发平台。

本文根据运算器具有物美价廉、使用方便、功能性强等特点,分别对半加器、全加器、乘法器、除法器进行了仿真设计。

首先本文介绍了课题的背景、意义、发展现状及未来走向,并对研究内容及设计方案进行了简单介绍。

其次对设计环境QuartusⅡ平台及VHDL做了介绍。

之后对半加器、全加器、乘法器、除法器的设计进行了详细描述,包括工作原理、真值表及流程图,还把乘法器分成各个模块,并对各个模块进行了详细的介绍与设计分析。

随后对半加器、全加器、乘法器、除法器进行了编程、仿真以及在QuartusⅡ平台上对仿真结果进行验证。

从而做到了从理论到实践,学以致用。

关键词:运算器;QuartusⅡ;VHDLIn the field of integrated circuit design, all kinds of microprocessors has become the core of the whole chip system. Unit as its core component, is widely development.At the same time, in order to increase the electronic products output efficiency, reduce manufacturing cost, such as the QuartusII 9.0 electronic simulation software appeared, such as for product development provides a good development platform.Based on the arithmetic unit has the good and inexpensive, easy to use, functional characteristics, respectively, half adder, full adder, multiplier and divider design has carried on the simulation. First this article introduces the topic background, significance, status quo and future development, and research contents and the design scheme of a simple introduction. Secondly on the design environment QuartusII platform and VHDL is presented. After full adder and full adder, multiplier and divider design are described in detail, including the working principle, the truth table and flow chart, also the multiplier is divided into various modules, and each module are analyzed in detail and design. Then half adder, full adder, multiplier and divider for programming, simulation, and in the QuartusII platform of simulation results to validate. Thus did it from theory to practice, to practice.Keywords: Arithmetic unit;VHDL;QuartusII1 引言 (1)1.1 课题背景及意义 (1)1.2 课题的现状与发展 (1)1.3 研究内容与设计方案 (1)2 开发环境 (3)2.1 Quartus II平台介绍 (3)2.1.1 Quartus II简介 (3)2.1.2 Quartus II总体设计 (4)2.1.3 Quartus II总体仿真 (8)2.2 VHDL语言介绍 (9)2.2.1 VHDL语言概述 (9)2.2.2 VHDL语言介绍 (10)2.2.3 VHDL应用开发介绍 (12)3 基于Quartus II的半加、全加器的设计与实现 (13)3.1 基于Quartus II的半加器运算 (13)3.1.1 半加器的原理与真值表 (13)3.1.2 半加器的设计与实现 (13)3.2 基于Quartus II的全加器运算 (22)3.2.1 全加器的原理、真值表和原理图 (22)3.2.2全加器的设计与实现 (24)4 基于Quartus II的乘法、除法器的设计与实现 (25)4.1 基于Quartus II的乘法器运算 (25)4.1.1 乘法器的原理和流程图 (25)4.1.2 四位二进制加法器模块 (28)4.1.3 八位二进制加法器模块 (29)4.1.4 一位乘法器模块 (31)4.1.5 8位右移寄存器模块 (33)4.1.6 乘法器的其他模块 (34)4.2 基于Quartus II的除法器运算 (39)4.2.1 除法器的原理与流程图 (39)4.2.2 除法器的设计与实现 (40)结论 (43)致谢 (44)参考文献 (45)附录A 英语原文 (46)附录B 汉语翻译 (56)1 引言1.1 课题背景及意义Quartus II具有界面友好、操作简单的特点,作为高效的EDA设计工具集合,与第三方软件扬长补短,使软件功能越来越强大,为用户提供了更加丰富的Quartus II平台。

如何使用QuartusII7.0

如何使用QuartusII7.0

EDA实验技术文档含异步清0和同步时钟使能的4位加法计数器一、实验内容与实验原理利用Quartus II建立一个含计数使能、异步复位的4位加法计数器,并进行仿真测试和硬件测试。

由实验开发板上数字信号源Clock0提供一个输入为4Hz的时钟输入信号clk,由开发板上拨挡开关SW1控制计数使能端ena并由LED1指示,由核心板上SYS_RST按键控制复位端rst并由LED2指示,进位输出由LED3指示,计数值由数码管显示。

二、实验步骤1、使用Quartus II建立空白工程,然后命名为cnt_4b.qbf双击打开桌面上的Altera公司提供的Quartus II7.0(32-Bit)图标,显示如下软件界面;●选择菜单栏中File>>New Project Wizard来新建工程,点击后弹出新建工程向导对话框如下分别提示完成五项工作1)项目名称与保存路径2)顶层设计实体名称3)加入已有文件和相关库4)指定目标Altera器件封装和型号5)设置项目的其他EDA工具●单击Next进入如下图所示界面,并按图新建工程路径、名称、顶层实体在这里,工程名与顶层文件的实体名同名为cnt_4,文件夹所在路径名和文件夹名中不能用中文,不能用空格,不能用括号(),可以用下划线_或英文字母或数字,但最好也不要以数字开头。

●单击Next进入如下图所示界面,这里是添加已有相关工程文件,这里我们是建立空白工程,所以不需要添加任何文件●单击Next进入如下图所示界面,这一步是对所用实验核心板中FPGA器件进行设置,以确保代码顺利编译和下载。

MagicSOPC实验箱上的FPGA标配为:Altera公司CycloneII系列的EP2C35F672。

设置相关参数如图所示。

设置完成后,单击Next, 进入如下图所示界面,这里不需要设置其他EDA工具●再单击Next,出现如下图所示的工程信息报告对话框,提示设计者看到工程文件配置信息报告。

quartus 2 计数器

quartus 2 计数器

计数器1、实验步骤1)打开Quartus II 8.0开发软件,选择File-〉New Project Wizad。

弹出工程向导对话框,点击Next。

2)在第一行位置指定工程要保存的目录,如D:\Training\lab\CNT10,在第二行位置填入工程名CNT10和顶层实体名CNT10,再点击Next。

3)点击Next。

4)实验所使用的是Cyclone系列的“EP2C35Q672C6”,点击Finish,工程创建完成。

此时只是配置了与工程相关的一些基本设置,在开发过程中如需要,仍然可以通过菜单Assignments ->Settings来修改。

5)新建文件:打开File->New,选择Device Design Files子类中的VHDL File,点击OK,创建一个VHDL文件。

6)在编辑区输入VHDL语言,或者用文本方式打开DIV.txt文件将其中的内容拷贝到编辑区,并以DIV.vhd文件名保存。

7)在快捷菜单中点击Start Analysis & Synthesis,开始对程序语言进行编译。

8)等待,编译完成后观察是否有错误。

如有error,则修改直至没有error,只出现warnings 没有关系,点击“确定”,关闭该窗口。

9)返回DIV.vhd界面,点击File->Create / update ->Create Symbol Files for Current File10)等待,出现下面界面,点击确定11)再新建文件:打开File->New,选择Device Design Files子类中的VHDL File,点击OK,创建一个VHDL文件。

12)在编辑区输入VHDL语言,或者用文本方式打开SEG7.txt文件将其中的内容拷贝到编辑区,并以SEG7.vhd文件名保存。

13)在快捷菜单中点击Start Analysis & Synthesis,开始对程序语言进行编译。

基于QuartusII的同步计数器设计

基于QuartusII的同步计数器设计

基于QuartusII的同步计数器设计精心整理精心整理精心整理1.1软件介绍:Quartus II是Altera公司在21 世纪初推出的FPGA/CPLD开发环境,是Altera前一代FPGA/CPLD集成开发环境MAX+PLUS II的更新换代产品,其优点是功能强大、界面友好、使用便捷。

它支持原理图、VHDL、VerilogHDL以及AHDL等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。

Quartus II支持Altera的IP内核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性,加精心整理快了设计速度。

此外,Quartus II通过和DSP Builder工具与Matlab/Simulink的相结合,可以方便的实现各种DSP应用系统;支持Altera的片上可编程系统开发,集系统设计、嵌入式软件开发。

可编程逻辑设计于一体,是一个综合性的开发平台。

Quartus II有严格的设计流程,分为设计输入与约束、分析和综合、布局布线、仿真及编程与配置等。

本次仿真设计所用到的版本为Quartus II 9.0,其用户界面如下图所示:1.2 Verilog HDL语言概述:Verilog HDL即Verilog硬件描述语言,它主要应用于数字电路和系统设计、数字电路和系统仿真等,即利用计算机和相关软件对用Verilog HDL等硬件语言建模的复杂数字逻辑电路设计进行仿真验证,再利用综合软件将设计的数字电路自动综合,以得到符合功能需求并且在相应的硬件电路结构上可以映射实现的数字逻辑网表,然后布局布线,根据网表和选定的实现器件工艺特性自动生成具体电路,同时软件生成选定器件的延时模型,经过仿真验证确定无误后写入器件中,精心整理最终实现电路设计。

Verilog HDL语言不仅定义了语法而且对每个语法结构都定义了清晰的模拟、仿真语义。

实验四四位二进制同步计数器

实验四四位二进制同步计数器

实验四四位二进制同步计数器一、目的:1.能了解四位元二进制同步计数器的设计原理及其特性。

2.能设计一个四位元二进制同步计数器。

3.能自行以CPLD数位发展实验系统验证所设计电路的正确性。

二、电路图:三、实验器配置图:四、实验步骤与画面:1.建立一个名为count16.vhd的新文件,并在QuartusⅡ文字编辑器中,以VHDL语言来设计程式,图为四位二进制计数器的VHDL代码。

其中clk为时钟端口,clk为异步清零端,Q为计数输出端口,co为进位输出端口。

2.存储、检查及编译。

3.创建元件符号。

4.创建波形文件,设定合适的端口信号,仿真元件的波形。

观察波形图可以看出当芯片可以实现16进制计数功能。

五、相关说明:1.同步计数器的意义是将所有正反器的时脉连接在一起,当时脉进来时,所有的正反器同时被触发而动作,因此传递延迟时间就可以大为缩短,计数的速度就会增快。

2.我们可以利用MAX+plusⅡ的Timing Analyzer来比较同步计数器与非同步计数器(单元十)的传递延迟状况,图U12-3(a)与图U12-3(b)为分析所得结果,从图中可以发现,同步计数器从时脉输入到各级的输出,其传递延迟时间皆相同,而非同步计数器则越到后级传递延迟时间越长。

3.图U12-2的程式设计方法,也可以改用D型正反器来设计,如图U12-4所示,您可以发现此种设计同步计数器的方法较简洁。

4.若要将图U12-4改成下数计数器,只要将叙述ff[].d=ff[].q+1;改成ff[].d=ff[].q-l;即可。

5.图U12-5为四位元含致能及清除的模10上下数计数器,其中的设计重点为:(1)为了能在高频计数电路应用,本电路的清除方式采同步清除式设计,并不利用正反器本身的elrn脚,而是当clr脚输入为鬲态时,令所有正反器的D输入脚为o,达到清除的目的。

(2)程式中使用了巢状的IF THEN叙述,须注意每一层的IF THEN、 ELSIF、ELSE及END IF的对应,不要弄乱了,否则会很麻烦。

实验4:同步计数器及其应用实验报告

实验4:同步计数器及其应用实验报告

实验4:同步计数器及其应用实验报告
一、实验目的
1、了解可编程数字系统设计的流程
2、掌握Quartus II 软件的使用方法
3、掌握原理图输入方式设计数字系统的方法和流程
4、掌握74LS161同步16进制计数器的特点及其应用
二、实验设备
1、计算机:Quartus II 软件
2、Altera DE0 多媒体开发平台
3、集成电路:74LS10
4、集成电路:74LS161
三、实验内容
1、74LS161逻辑功能的测试
2、用74LS161实现12进制计数(异步清零)
3、用74LS161实现12进制计数(同步置数)
四、实验原理
74LS161
1、74LS161:异步清零、同步置数四位二进制计数器
2、引脚的定义:
使用74161实现16进制和12进制
1)首先使用quartus软件建立原理图,首先实现16进制,所以只
需要将需要的输入输出接到相应的引脚上,其中需要注意的是
我们需要让这个板子开始工作,所以需要将T和P引脚接响应
的高电压,然后将cp信号接入相应的输入;q0q1q2q3接到相
应的输出就可以了,然后编译。

现在在建立波形文件完成仿真,
通过仿真结果就可以看到自己的电路是否正确。

最后一步就是
实现在FPGA上的应用,我们需要做的就是给原来的原理图分
配相应的引脚,然后重新编译后,插入线就可以看到仿真结果
了。

2)12进制可以采取两种方式,也就是同步置数和异步清零两种
方式,我使用的异步清零,从而只需要对q0q1q2q3在12的时
候执行清零的动作就可以了,也就是加一个而输入的与非门就
可以了。

五、实验结果。

qurtusii位计数器

qurtusii位计数器

实验三计数器设计1.实验目的(1)掌握时序电路的设计方法。

(2)掌握带有复位和时钟使能的十六进制计数器的原理。

(3)掌握计数器的设计方法。

(4)学习VHDL语言设计较复杂的电路方法。

2.实验仪器设备(1) PC机一台。

(2) Quartus II开发软件一套。

3.实验要求(1)预习计数器的相关知识。

(2)用VHDL方式完成程序设计。

(3)设计一个带异步复位和同步时钟使能的十六进制加法和减法计数器,以及十进制加法计数器,并分别仿真。

4.实验任务和原理所谓同步或异步计数器都是相对于时钟信号而言的,不依赖于时钟而有效的信号称为异步信号,否则称为同步信号。

本实验要求设计一个带有异步复位和同步时钟使能的十六进制加法和减法计数器,以及一个十进制加法计数器。

1)设计一个带有异步复位和同步时钟使能的十六进制加法计数器利用VHDL语言设计一个带有复位和时钟使能Array的十六进制加法计数器。

设CLK为时钟使能信号,RST为复位信号,EN为计数器使能信号,COUT为计数输出端,Co为进位输出端。

电路模块符号如图1所示。

2)设计一个带有异步复位和同步时钟使能的十六进制减法计数器图1 带有复位和时钟使能利用VHDL语言设计一个带有复位和时钟使能的十六进制计数器的十六进制减法计数器,电路符号如图1所示。

设CLK为时钟使能信号,RST为复位信号,EN为计数器使能信号,COUT为计数输出端,Co为借位输出端。

电路模块符号如图1所示。

3)设计一个十进制加法计数器。

5.实验报告及总结(1)根据实验内容,写出设计方案。

(2)分析计数器实验原理。

(3)写出VHDL程序,画出仿真波形图。

(4)总结带有复位和时钟使能的十六进制计数器电路设计的方法。

含异步清零和同步使能的加法计数器设计与仿真

含异步清零和同步使能的加法计数器设计与仿真

实验二含异步清零和同步使能的加法计数器并用数码管显示一、实验目的1、了解二进制计数器的工作原理。

2、进一步熟悉QUARTUSII 软件的使用方法和VHDL 输入。

3、时钟在编程过程中的作用。

二、实验内容本实验要求完成的任务是在时钟信号的作用下,通过使能端和复位信号来完成加法计数器的计数。

实验中时钟信号使用数字时钟源模块的1HZ 信号,用一位en表示使能端信号,用复位开关rest 表示复位信号,用LED 模块的LED1~LED7 来表示计数的二进制结果。

实验LED亮表示对应的位为‘1’LED灭表示对应的位为‘0’。

通过输入不同的值模拟计数器的工作时序,观察计数的结果。

实验箱中的拨动开关、与FPGA 的接口电路,LED 灯与FPGA 的接口电路以及拨动开关、LED 与FPGA的管脚连接在实验一中都做了详细说明,这里不在赘述。

三实验步骤1、打开QUARTUSII 软件,新建一个工程。

2、建完工程之后,再新建一个VHDL File,打开VHDL 编辑器对话框。

3、在VHDL 编辑窗口编写VHDL 程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity exp4 isport( clk ,clr,en : in std_logic;co:out std_logic;key : in std_logic_vector(3 downto 0);ledag : out std_logic_vector(6 downto 0);del : out std_logic_vector(3 downto 0));end exp4;architecture whbkrc of exp4 issignal dount : std_logic_vector(3 downto 0);beginprocess(clk)beginif clk'event and clk='1' thenif clr='1'thendount<=(others=>'0');elsif en='1'thenif key="1111"thendount<="0000";co<='1';elsedount<=dount+'1';co<='0';end if;end if;end if;del<=dount;end process;process(key)begincase key iswhen "0000" => ledag <="0111111";when "0001" => ledag <="0000110";when "0010" => ledag <="1011011";when "0011" => ledag <="1001111";when "0100" => ledag <="1100110";when "0101" => ledag <="1101101";when "0110" => ledag <="1111101";when "0111" => ledag <="0000111";when "1000" => ledag <="1111111";when "1001" => ledag <="1101111";when "1010" => ledag <="1110111";when "1011" => ledag <="1111100";when "1100" => ledag <="0111001";when "1101" => ledag <="1011110";when "1110" => ledag <="1111001";when "1111" => ledag <="1110001";when others => null;end case;end process;end whbkrc;(4)分配管脚(5)功能仿真。

基于Quartus II的运算器的设计与实现(修改稿)

基于Quartus II的运算器的设计与实现(修改稿)

基于Quartus II的运算器的设计与实现成耀,王礼春,顾晖(南通大学计算机科学与技术学院,江苏南通226019)【摘要】本文借助于Quartus II软件在计算机上仿真制作了具有简单运算功能的运算器,由此我们一方面可以了解电路仿真的主要流程,另一方面可以验证运算器的功能。

【关键词】 Q uartus II EDA 运算器仿真0引言电路设计对于电子信息类专业的学生而言是十分重要的,它是将理论知识运用于实践的一个重要途径。

它对巩固课堂教学内容,提高学生的动手能力具有重要作用。

但对于一些比较复杂的实验,学生要用大量的时间和精力进行电路连接和线路检查,常常是事倍功半,实验效果不是很理想。

将计算机模拟引入到实验教学中,既可以使学生随时进行实验,又可以直接获取结果,增加学生的感性认识。

而且计算机模拟仿真让设计变得更易实现,这不仅节约了经济上的开销,还节约了大量的时间与精力。

这里介绍的Quartus II可以弥补原先许多数字芯片和线路连接的繁琐步骤和手工操作,使原先复杂的实现过程变得容易理解与掌握,而且还能帮助学生更快、更好地掌握课堂理论内容,加深对概念原理的理解,进一步培养学生的综合设计能力、排除故障能力和创新能力[1]。

本文借助Quartus II6.0现有的器件,设计了一个运算器,使用Quartus II6.0完成仿真,并通过仿真波形展示该运算器是如何实现运算器功能的。

1 用Quartus II做电路设计实验的优点Quartus II6.0是由美国Altera公司开发的,是一款功能比较强的EDA工具软件,它的优势主要体现在其功能齐全,方便简单。

具有可编程系统(SOPC)设计的综合性环境,也是适合SOPC的最全面的设计环境[2]。

它拥有现场可编程阵列(FPGA)和复杂可编程器件(CPLD)设计的所有阶段的解决方案。

它的简单易用,方便快捷,给设计者减少了难度,节约了很多时间 [3]。

为了改变延续多年的“实验内容单一,实验设备陈旧,实验时间受限,实验效果差[4]”的状况,考虑到学校机房有许多时间向学生开放,另外考虑到许多学生自己有电脑,我们选用了Quartus II。

QuartusII软件使用及设计流程PPT课件

QuartusII软件使用及设计流程PPT课件
Quartus II使用及设计流程
• QuartusⅡ是Altera公司推出的新一代开发软件,适合于大规模逻辑电 路设计。
• QuartusⅡ支持多种编辑输入法,包括图形编辑输入法,VHDL、 Verilog HDL和AHDL的文本编辑输入法,符号编辑输入法,以及内存 编辑输入法。
• QuartusⅡ与MATLAB和DSP Builder结合可以进行基于FPGA的DSP 系统开发,是DSP硬件系统实现的关键EDA工具,与SOPC Builder结合, 可实现SOPC系统开发。
第26页/共68页
第27页/共68页
第28页/共68页
第29页/共68页
第30页/共68页
第31页/共68页
(3)编辑输入信号并保存文件。在图1-22中单击 “Name”下方的“A”,即选中该行的波形。在本 例中将输入信号“A”设置为时钟信号,单击工具 栏中的 按钮,弹出“Clock”对话框,此时可以 修改信号的周期、相位和占空比。设置完后单击 “OK”按钮,输入信号“A”设置完毕。同理设置 其他输入信号“B”,最后单击保存文件按钮 , 根据提示完成保存工作,如图1-23所示。同时, 为了方便读者熟悉其他波形编辑工具的使用,在 图1-24中标注了其他波形编辑工具的功能。
第23页/共68页
1. 建立仿真文件
(1)建立矢 量波形文件。
File|New 选 择Other Files , 选择Vector Waveform File 。
第24页/共68页
第25页/共68页
(2)添加引脚或节点。 图1-16,左键双击 “Name”下方空白处, 弹出“Insert Node or Bus”对话框,如图1-17 所示。单击对话框 “Node Finder…”按钮后, 弹出“Node Finder”对话 框,如图1-18所示。

QUARTUS应用二---计数器设计(实验报告模板)

QUARTUS应用二---计数器设计(实验报告模板)

QUARTUS应用二---计数器设计(实验报告模板)
可编程逻辑器件FPGA实验二
计数译码显示系统设计
一、实验目的
1、掌握中规模集成计数器的逻辑功能,以及任意进制计数器的设计方法
2、熟悉显示译码器和数码管的原理及设计应用
3、了解用数字可编程器件实现集成计数译码显示电路的方法
4、学会分频器的使用
5、进一步熟悉QUARTUS软件的基本使用方法
实验原理
1、计数器
(简述设计中所用两种集成计数器功能原理)
2、显示译码器和数码管
(简述显示译码器和数码管的分类)
3、分频器
(简述分频器的功能)
二、实验内容
1、用74161设计一个十九进制的计数器
(1)原理图
(2)功能仿真波形
(3)时序仿真波形
2、用74190设计一个十二进制减法计数器
(1)原理图
(2)功能仿真波形
(3)时序仿真波形
三、实验总结
1、实验故障及解决方法
2、实验体会
四、思考题
1、七段数码管分为共阴极和共阳极两类,本实验用的是哪一类?对两种数码管,各需选用
何种型号的译码器?
2、在采用集成计数器构成任意N进制计数器时,常采用哪两种方法?各有何特点?。

含异步清0和同步时钟使能的4-位加法计数器-报告

含异步清0和同步时钟使能的4-位加法计数器-报告

含异步清0和同步时钟使能的4-位加法计数器-报告-CAL-FENGHAI.-(YICAI)-Company One1EDA设计课程实验报告实验题目:含异步清0和同步时钟使能的4 位加法计数器学院名称:专业:班级:姓名:高胜学号小组成员:指导教师:一、实验目的学习计数器的设计,仿真和硬件测试,进一步熟悉VHDL 的编程方法。

二、设计任务及要求1.设计总体要求:利用Quartus II建立一个含技术使能、异步复位的4位加法计数器,在SmartSOPC试验箱上进行硬件测试,由KEY1控制技术使能端ena并由LED1指示,KEY2控制复位端rst 并由LED2指示。

计数值由数码管指示。

2.设计基本要求:(1)进行正常的加法计数功能。

(2)由四个数码管显示其计数情况。

三、系统设计1、整体设计方案含异步清零与同步时钟使能计数器由译码显示电路、脉冲发生电路和16进制计数器这3个基本电路组成的。

此次设计要实现的功能有:正常的计数,异步清零,同步使能功能。

整体设计系统框图如图1所示:图1 含异步清零与同步时钟使能计数器系统结构图2、功能模块电路设计(1)各模块设计:译码显示电路模块框图(见图2):图2 译码显示电路系统输入输出模块框图脉冲发生电路模块框图(见图3):图3 秒脉冲发生电路系统输入输出模块框图16位进制计数电路系模块框图(见图4):图4 16位进制计数电路系统输入输出模块框图秒脉冲发生电路产生脉冲输入到16位计数器电路,计数器电路响应脉冲计数然后将计数响应输入到译码显示电路,译码显示电路响应,这时实验箱上8个数码管的后4位将进行从0到F计数的循环显示。

整体输入输出模块框图(见图5):图5 含异步清零与同步时钟使能计数器系统输入输出模块框图(2)模块逻辑表达(见表一和表二)功能 clk rst ena dout[3:0] 异步清零 X 0 X 0 0 0 0表一 16进制计数器的真值表表二译码显示电路的真值表(3)算法流程图译码显示电路流程图(见图6):图6 译码显示电路算法流程图16位计数器流程图(见图7):图7 16位计数器电路算法流程图(4)Verilog源代码译码显示电路代码:module dec(d,seg,dig); //定义模块名与输入输出input[3:0] d;output[7:0] seg;output[3:0] dig; //定义输入输出与数据类型reg[7:0] seg_r; //定义一个reg类型数据assign dig=4'b0000; //给dig赋值0assign seg=seg_r; //将reg类型数据与wire类型数据进行转换always @(d) //检测目标信号dbegincase(d) //case语句,目标公式为d4'b0000:seg_r=8'hc0; //当4位的d数据变化时对应的rge数据类型的seg_r数值4'b0001:seg_r=8'hf9;4'b0010:seg_r=8'ha4;4'b0011:seg_r=8'hb0;4'b0100:seg_r=8'h99;4'b0101:seg_r=8'h92;4'b0110:seg_r=8'h82;4'b0111:seg_r=8'hf8;4'b1000:seg_r=8'h80;4'b1001:seg_r=8'h90;4'b1010:seg_r=8'h88;4'b1011:seg_r=8'h83;4'b1100:seg_r=8'hc6;4'b1101:seg_r=8'ha1;4'b1110:seg_r=8'h86;4'b1111:seg_r=8'h8e;default:seg_r=8'h0; //其余d的显示的数据seg_r显示为0endcase //结束case语句end //结束always语句endmodule //结束程序16进制计数器电路代码:module jsqt(clk,rst,ena,dout); //定义模块名与输入输出input clk,rst,ena;output[3:0] dout; //定义输入输出与数据类型reg[3:0] dout_r; //定义一个reg数据类型assign dout=dout_r; //将reg类型数据与wire类型数据进行转换always @(posedge clk or negedge rst) //检测目标信号时钟或异步信号beginif(rst==0) //检测信号rst是否恒等于0dout_r=4'b0000; // 给reg数据类型的dout_r赋值0else if(ena==1) //检测信号ena是否恒等于1dout_r=dout_r+1; //数据dout_r加1end //结束always语句endmodule //结束程序四、系统调试1、仿真调试(1)仿真代码译码显示电路仿真代码:`timescale 1ns/1nsmodule dec_tp; //测试模块的名字reg[3:0] d; //测试输入信号定义为reg型wire[7:0] seg; //测试输出信号定义为wire型wire[3:0]dig; //测试输出信号定义为wire型parameter DELY=100; //延时100秒dec u1(d,seg,dig); //调用测试对象assign dig=4'b0000; //给dig赋值0initial begin //激励波形设定d=4'b0;#DELY d=4'b0001;#DELY d=4'b0010;#DELY d=4'b0011;#DELY d=4'b0100;#DELY d=4'b0101;#DELY d=4'b0110;#DELY d=4'b0111;#DELY d=4'b1000;#DELY d=4'b1001;#DELY d=4'b1010;#DELY d=4'b1011;#DELY d=4'b1100;#DELY d=4'b1101;#DELY d=4'b1110;#DELY d=4'b1111;#DELY $finish;endinitial $monitor($time,,,"seg=%d,dig=%d,d=%b",seg,d,dig); //输出格式i定义endmodulemodule dec(d,seg,dig); //命名模块名字input[3:0] d;output[7:0] seg;output[3:0] dig; //定义输入与输出reg[7:0] seg_r; // 定义seg_r的reg型数据assign dig=4'b0000; //给dig赋值0assign seg=seg_r; //将reg型数据转化为wire型数据always @(d) //检测d的数据是否变化begincase(d) //七段译码4'b0000:seg_r = 8'hc0; //显示04'b0001:seg_r = 8'hf9; //显示14'b0010:seg_r = 8'ha4; //显示24'b0011:seg_r = 8'hb0; //显示34'b0100:seg_r = 8'h99; //显示44'b0101:seg_r = 8'h92; //显示54'b0110:seg_r = 8'h82; //显示64'b0111:seg_r = 8'hf8; //显示74'b1000:seg_r = 8'h80; ///显示84'b1001:seg_r = 8'h90; //显示94'b1010:seg_r = 8'h88; //显示a4'b1011:seg_r = 8'h83; //显示b4'b1100:seg_r = 8'hc6; //显示c4'b1101:seg_r = 8'ha1; //显示d4'b1110:seg_r = 8'h86; //显示e4'b1111:seg_r = 8'h8e; ///显示fendcase //结束case语句end //结束always语句endmodule //结束程序16进制计数器仿真代码:`timescale 1ns/1nsmodule jsqt_tp; //测试模块的名字reg clk,rst,ena; //测试输入信号定义为reg型wire[3:0] dout; //测试输出信号定义为wire型parameter DELY=100; //延时100秒jsqt u1(clk,rst,ena,dout); //调用测试对象initial begin //激励波形设定clk=0;rst=1;ena=1;#DELY clk=1;rst=1;ena=1;#DELY clk=0;rst=1;ena=1;#DELY clk=1;rst=1;ena=1;#DELY clk=0;rst=1;ena=1;#DELY clk=1;rst=1;ena=1;#DELY clk=0;rst=1;ena=1;#DELY clk=1;rst=1;ena=1;#DELY clk=0;rst=1;ena=1;#DELY $finish;endinitial$monitor($time,,,"dout=%d,rst=%b,ena=%b,clk=%b",dout,rst,ena,clk); //输出格式i定义endmodulemodule jsqt(clk,rst,ena,dout); //定义模块名与输入输出input clk,rst,ena;output[3:0] dout; //定义输入输出与数据类型reg[3:0] dout_r; //定义一个reg数据类型assign dout=dout_r; //将reg类型数据与wire类型数据进行转换always @(posedge clk or negedge rst) //检测目标信号时钟或异步信号beginif(rst==0) //检测信号rst是否恒等于0dout_r=4'b0000; // 给reg数据类型的dout_r赋值0else if(ena==1) //检测信号ena是否恒等于1dout_r=0; //给dout_r赋初值dout_r=dout_r+4’b1; //数据dout_r加1end //结束always语句endmodule //结束程序(2)仿真波形图译码显示仿真波形图(见图8):图8 译码显示部分仿真波形图16进制计数器仿真波形图(见图9):图9 16进制计数器仿真波形图(3)波形分析由图6-1与图6-2可以看出给4位dig赋值0,每延迟100秒可以看见4位的d变化与8位seg产生的数据与代码上的编程相符合。

北京科技大学数电实验三 Quartus II显示译码电路及触发器设计计数器

北京科技大学数电实验三 Quartus II显示译码电路及触发器设计计数器

北京科技大学实验报告学院:高等工程师学院专业:自动化(卓越计划)班级:自E181 姓名:杨威学号: 41818074 实验日期:2020 年5月20日一、实验名称:显示译码电路1、实验内容与要求:(1)测试显示译码器74LS248的基本功能使LTN=0,其余为任意状态,这时数码管各段全部点亮,否则数码管是坏的。

再将BIN/RBON接地,数码管全灭,说明数码管是好的。

D、C、B、A分别接拨档逻辑开关,LTN、RBIN和BIN/RBON分别接逻辑高电平。

在不同输入状态下,将从数码管观察到的字形填入功能表中。

使LTN=1,BIN/RBON接一个发光二极管,在RBIN为1和0的情况,使拨档开关的输出为0000,观察灭零功能。

(2)用74LS154实现16进制显示译码器普通显示译码器能够实现10进制数的译码显示,如果要实现16进制数的译码显示需要自行设计74LS154的引脚分布:功能表:2、实验相关知识与原理:(1)数码显示器LC5011-11就是一种共阴极数码显示器。

它的引脚分布如下图所示,X为共阴极,DP为小数点。

其内部是八段发光二极管的负极连在一起的电路。

当在它的a、b、c、∙∙∙、g、DP加上正向电压时,各段发光二极管就点亮。

共阳极数码显示器则相反。

(2)显示译码器74LS248是BCD码到七段码的显示译码器,它可以直接驱动共阴极数码管。

引脚图:功能表:3、显示译码器74248的基本功能验证:(1)原理图截图(2)实验仿真仿真波形如下显示译码器74248的功能验证表格见下一页4、用74154实现十六进制显示译码器: (1)实验设计设i m 为译码器的对应的O0N-O15N 对应的输出,OA-OG 为对应七段数码管的每一根管的输入,因此根据16进制显示译码器的功能表中OA-OG 与D 、C 、B 、A 之间的关系,写出如下各逻辑表达式:14111356111214152121415147101513457912371301712OA mm m m OB m m m m m m OC m m m m OD m m m m m OE m m m m m m OF m m m m m OG m m m m =⋅⋅⋅=⋅⋅⋅⋅⋅=⋅⋅⋅=⋅⋅⋅⋅=⋅⋅⋅⋅⋅=⋅⋅⋅⋅=⋅⋅⋅(2)设计原理图截图(3)实验仿真仿真波形:仿真结果表:5、实验思考题:74248是4线-七段译码器,输出刚好对应共阴数码管的七段。

基于Quartus II的带计时器功能的秒表系统设计

基于Quartus II的带计时器功能的秒表系统设计

基于Quartus II的带计时器功能的秒表系统设计Quartus II是Altera 公司单芯片可编程系统(SOPC) 设计的综合性环境,也是适合SOPC的最全面的设计环境。

它拥有现场可编程门阵列(FPGA) 和复杂可编程逻辑器件(CPLD) 设计的所有阶段的解决方案。

与原来的Max + plus II相比,Quartus II 在界面和功能上都发生了不少变化,除承接了原来Max + plusII的全部设计功能和器件对象外,还增加了许多新功能,如支持Max + plusII界面,支持RTLView 等,还增加了新的FPGA 器件系列,包括一些适用于SOPC开发的大规模器件。

本文以Quartus II 4.0 为设计平台,以FPGA 为核心,设计了一个具体数字系统即带计时器功能的秒表系统,使用Quartus II 4.0 的综合器和仿真器对系统进行了编译和仿真,得出了正确的仿真结果。

1 秒表系统总体结构要设计一个带计时器功能的秒表,计时范围为0.01 s~1 h ,计时器初值以min 为单位,最长计时时间为59 min。

总体结构包括以下几个组成部分:a) 显示屏,由6 个七段数码管组成,用于显示计时时间。

b) 输入数字键,用于设置计时器的计时时间(以min 为单位,不超过1 h) 。

c) START 键,用于启动秒表计时。

d) RESET 键,用于计时清零(复位) 。

e) ALARM 键,用于启动秒表的计时器功能。

f) 扬声器,在计时器计时结束时发声报警。

设计的总体结构图如图1 所示,主要显示了内部连接关系。

1.1 秒表系统控制器控制器外部端口如图1 所示。

各端口的功能如下:a) CLK为外部时钟信号,RESET 为复位信号。

b) 当KEY为高电平( KEY= 1) 时,表示用户按下数字输入键。

c) 当START-DOWN 为高电平时,表示用户按下“START”键。

d) 当ALARM-DOWN 为高电平时,表示用户按下“ALARM”键。

基于Quartus六十进制计数器的设计

基于Quartus六十进制计数器的设计

EDA技术实践课程设计 ED技术实践课程设201 2 六十进制计数电气信息工程学院电气专业班学生姓学生学指导教EDA技术实践课程设计任务书课程 EDA技术实践课程设计题目六十进制计数器专业姓名学号主要内容:利用QuartusII设计一个六十进制计数器。

该电路是采用整体置数法接成的六十进制计数器。

首先需要两片74160接成一百进制的计数器,然后将电路的59状态译码LD′=0信号,同时加到两片74160上,在下一个计数脉冲(第60个计数脉冲)产生到达时,将0000同时置入两片74160中,从而得到六十进制计数器。

主要要求如下:(1)每隔1个周期脉冲,计数器增1;(2)当计数器递增到59时,进位端波形发生跳变,说明计数器产生进位信号,之后计数器会自动返回到00并重新计数;(3)本设计主要设备是两片74160同步十进制计数器,时钟信号通过建立波形文件得以提供。

主要参考资料:[1] 朱正伟.EDA技术及应用[M].第2版.北京:清华大学出版社,2013.[2] 李国洪.EDA技术与实验[M].北京:机械工业出版社,2009.[3] 陈忠平,高金定,高见芳.基于QuartusII的FPGA/CPLD设计与实践[M].北京:电子工业出版社,2010.[4] 杨颂华.数字电子技术基础[M].第2版.西安:西安电子科技大学出版社,2009.[5] 阎石.数字电子技术基础[M].第5版.北京:高等教育出版社,2006.[6] 康华光.电子技术基础:数字部分[M].北京:高等教育出版社,2000.完成期限——指导教师专业负责人日18月 7 年2014.目录1 设计 ...................................................................2 方案选择与电路原理图的设计 .............................................单元电路一:十进制计数器电路(个位) ................................. 单元电路二:十进制计数器(十位) ..................................... 单元电路三:置数与进位电路 ...........................................3 元件选取与电路图的绘制 .................................................元件选取 .............................................................电路图的绘制 .........................................................4 编译设计文件 ...........................................................5 仿真设计文件 ...........................................................6 总结 ...................................................................参考文献 .................................................................1设计1六十进制计数器的功能要求: 1;1(1)每隔个周期脉冲,计数器增时,进位端波形发生跳变,说明计数器产生进位信)当计数器递增到59(2 00并重新计数;号,之后计数器会自动返回到同步十进制计数器,时钟信号通过建立波74160)本设计主要设备是两片(3 形文件得以提供。

基于Quartus六十进制计数器的设计讲解

基于Quartus六十进制计数器的设计讲解

EDA技术实践课程设计2014年7月25日EDA技术实践课程设计任务书课程EDA技术实践课程设计题目六十进制计数器专业姓名学号主要内容:利用QuartusII设计一个六十进制计数器。

该电路是采用整体置数法接成的六十进制计数器。

首先需要两片74160接成一百进制的计数器,然后将电路的59状态译码产生LD′=0信号,同时加到两片74160上,在下一个计数脉冲(第60个计数脉冲)到达时,将0000同时置入两片74160中,从而得到六十进制计数器。

主要要求如下:(1)每隔1个周期脉冲,计数器增1;(2)当计数器递增到59时,进位端波形发生跳变,说明计数器产生进位信号,之后计数器会自动返回到00并重新计数;(3)本设计主要设备是两片74160同步十进制计数器,时钟信号通过建立波形文件得以提供。

主要参考资料:[1] 朱正伟.EDA技术及应用[M].第2版.北京:清华大学出版社,2013.[2] 李国洪.EDA技术与实验[M].北京:机械工业出版社,2009.[3] 陈忠平,高金定,高见芳.基于QuartusII的FPGA/CPLD设计与实践[M].北京:电子工业出版社,2010.[4] 杨颂华.数字电子技术基础[M].第2版.西安:西安电子科技大学出版社,2009.[5] 阎石.数字电子技术基础[M].第5版.北京:高等教育出版社,2006.[6] 康华光.电子技术基础:数字部分[M].北京:高等教育出版社,2000.完成期限2014.7.21——2014.7.25指导教师专业负责人2014年7 月18日目录1 设计 (1)2 方案选择与电路原理图的设计 (1)2.1 单元电路一:十进制计数器电路(个位) (2)2.2 单元电路二:十进制计数器(十位) (3)2.3 单元电路三:置数与进位电路 (3)3 元件选取与电路图的绘制 (4)3.1 元件选取 (4)3.2 电路图的绘制 (4)4 编译设计文件 (5)5 仿真设计文件 (6)6 总结 (10)参考文献 (11)1 设计六十进制计数器的功能要求:(1)每隔1个周期脉冲,计数器增1;(2)当计数器递增到59时,进位端波形发生跳变,说明计数器产生进位信号,之后计数器会自动返回到00并重新计数;(3)本设计主要设备是两片74160同步十进制计数器,时钟信号通过建立波形文件得以提供。

EDA设计含异步清零和同步时钟使能的加法计数器

EDA设计含异步清零和同步时钟使能的加法计数器

专业班级:学号:姓名:EDA 技术实验报告实验项目名称:设计含异步清零和同步时钟使能的加法计数器实验日期:2012.6.5 实验成绩:实验评定标准:一、实验目的学习计数器的设计,仿真和硬件测试,进一步熟悉VHDL设计技术。

二、实验器材Quartus2软件、电脑一台三、实验内容(实验过程)<一> 实验内容一:在quartus 2上对例5进行编辑、编译、综合、适配、仿真。

说明例中各语句的作用,详细描述各事例的功能特点,给出其所有信号的时序仿真模型。

<二> 实验内容二:自己选择合适的电路模式,然后进行引脚锁定以及硬件下载测试,引脚锁定后进行编译、下载、硬件测试实验。

将实验过程和实验结果写进实验报告。

<三> 详细内容如下:1.进行文本编辑2.编译,综合,仿真四、实验程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all; entity cnt10 isport ( clk,rst,en: in std_logic ;cq: out std_logic_vector(3 downto 0); cout:out std_logic);end cnt10;architecture behav of cnt10 isbeginprocess(clk,rst,en)variable cqi:std_logic_vector(3 downto 0); beginif rst='1' then cqi:=(others =>'0');elsif clk'event and clk='1' thenif en='1' thenif cqi<9 then cqi :=cqi+1;else cqi:=(others =>'0');end if;end if;end if;if cqi=9 then cout<='1';else cout<='0';end if;cq<=cqi;end process;end behav;五、实验仿真、结果及分析:<一>实验仿真:<二> 结果和分析:当rst清零端为1时,计数器清零。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于QuartusII的同步计数器设计
目录
一、软件及语言概述
二、实验设计
三、学习感悟
四、参考文献
一、软件及语言概述
1、1软件介绍:
Quartus II就是Altera公司在21 世纪初推出的FPGA/CPLD开发环境,就是Altera前一代FPGA/CPLD集成开发环境MAX+PLUS II的更新换代产品,其优点就是功能强大、界面友好、使用便捷。

它支持原理图、VHDL、VerilogHDL以及AHDL 等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。

Quartus II支持Altera的IP内核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性,加快了设计速度。

此外,Quartus II通过与DSP Builder工具与Matlab/Simulink的相结合,可以方便的实现各种DSP应用系统;支持Altera的片上可编程系统开发,集系统设计、嵌入式软件开发。

可编程逻辑设计于一体,就是一个综合性的开发平台。

Quartus II有严格的设计流程,分为设计输入与约束、分析与综合、布局布线、仿真及编程与配置等。

本次仿真设计所用到的版本为Quartus II 9、0,其用户界面如下图所示:
1、2 Verilog HDL语言概述:
Verilog HDL即Verilog硬件描述语言,它主要应用于数字电路与系统设计、数字电路与系统仿真等,即利用计算机与相关软件对用Verilog HDL等硬件语言建模的复杂数字逻辑电路设计进行仿真验证,再利用综合软件将设计的数字电路自动综合,以得到符合功能需求并且在相应的硬件电路结构上可以映射实现的数字逻辑网表,然后布局布线,根据网表与选定的实现器件工艺特性自动生成具体电路,同时软件生成选定器件的延时模型,经过仿真验证确定无误后写入器件中,最终实现电路设计。

Verilog HDL语言不仅定义了语法而且对每个语法结构都定义了清晰的模拟、仿真语义。

因此用这种语言编写的模型能够使用Verilog仿真器进行验证。

语言从C编程语言中继承了多种操作符与结构。

Verilog HDL提供了扩展的建模能力其中许多扩展最初很难理解。

但就是Verilog HDL语言的核心子集非常易于学习与使用这对大多数建模应用来说已经足够。

当然完整的硬件描述语言足以对从最复杂的芯片到完整的电子系统进行描述。

二、实验设计
计数器的逻辑功能就是用于记录时钟脉冲的具体个数。

通常计数器最多能记忆时钟的最大数目m称为计数器的模2,即计数器的范围为0到m-1或m-1到0、其基本原理就就是将几个触发器按照一定的顺序连接起来,然后根据触发器的组合状态,按照一定的技术规律随着时钟的变化来记忆时钟脉冲的个数。

计数器按照不同的分类方法可分为不同的类型,按照计数器中各个触发器时钟脉冲输入方式的不同分为同步计数器与异步计数器。

其中,同步计数器就是指构成计数器的各个触发器的状态只在同一时钟信号的触发下才会发生变化的计数器。

在这里,我主要以同步4位二进制计数器为设计对象。

2、2设计步骤
在菜单栏中,选择File,新建一个工程,在根据工程向导设置相关内容。

所有选项设置好后就可以在文本编辑框中输入相应的程序了。

这里有个重要的点就就是,保存时文件名必须与设计时所用的模块名保持一致。

采用文本编辑法,利用Verilog HDL语言来描述同步4位二进制计数器,代码如下:
module tongbu_cnt(co,q,clk,r,s,d,en);
output[3:0] q;
output co;
input clk,r,s,en;
input[3:0] d;
reg[3:0] q;
reg co;
always@(posedge clk)
begin
if(r)
begin q=d;end
else
if(s)
begin q=d;end
else
if(en)
begin q=q+1;
if(q==4'b1111)
begin co=1;end
else
begin co=0;end
end
else
begin q=q;end
end
endmodule
程序编写完成后再进行进行编译,根据编译后的结果提示,修改响应的错误,直到
所有错误被修改完成。

编译成功后,如下图所示:
再新建波形仿真文件,弹出对话框如下图所示:
再选择需要添加的输入输出引脚的名字,如下图所示:
然后再对相应的信号进行初始设置,最后点击保存。

接下来就就是进行仿真步骤,先进行功能仿真:
再进行时序仿真:
仿真结果:
同步4位二进制计数器的功能仿真结果如图1所示,时序仿真结果如图2所示。

其中,将q设置为buffer类型就是为了方便计数。

图1 同步4位二进制计数器的功能仿真结果
图2 同步4位二进制计数器的时序仿真结果
三、学习感悟:
初次接触FPGA时,就感觉它功能很强大。

同时,我也了解到要想学好这门技术也并不容易,需要花大量的时间去专研,其相关的学习开发板也比较昂贵。

另外,对于编程语言来讲,我也就是第一次听说Verilog HDL,它的一些编程语句与C语言很像。

在学习这门课程时,我也从中收获了许多。

从第一节课开始,老师推荐的几个学习网站,我觉得对我们技能的提升很有帮助。

除此之外,我觉得像电子发烧友网、电子工程网等,也就是不错的学习平台,里面有许多有用的资料与最新的行业动态,这对我们电子信息类的学生来说很有帮助。

在上课过程中,我觉得还就是有点更不上节奏,内容不仅多,大部分还就是新知识。

基于此,我也到图书馆借阅了相关的书籍,主要就是与编程语言相关的。

虽然,现在课程结束了,但我仍然还就是会继续学习下去,作为一门技能去掌握。

另一方面,老师在上课提到了半导体在今后发展趋势,为此我感到比较欣喜,因为我现在的学习内容与这个方向相关。

起初,我觉得作为传统制造业来说,它的发展优势并不明显,多年来一直不温不火,技术革新的地方也不多。

但就是,现在随着人工智能的兴起,对于集成电路的要求也就越来越高,进而也就可能带动半导体行业的发展与进步。

除此之外,老师在课堂上提到的Python语言,我觉得在今后也大有用途,这也应该就是我学习任务的一部分。

通过这次实例设计,我对Quartus ii软件与Verilog HDL语言有了更深一步的了解。

这次所用到的软件版本就是在网上找的9、0版,我觉得软件的安装过程比较复杂。

结合网上的基础视频讲解与书本上的介绍,我对软件的基础使用有了一个大致的认识。

由于就是第一次接触这方面的内容,这次的设计实验我也就是选择了一个比较简单的同步4位计数器设计。

按照书上的例子,一步一步的去设置,编译,最后还就是勉强实现了基本要求。

当然,在这个学习过程中,我也有遇到过许多问题。

从一开始的软件安装,到编译时的语句修改,再到最后的波形仿真,我都反复进行了许多次。

虽然,这次仅仅只就是做了一个小的实验设计,涉及到的知识还不够多,难度也不算大,但就是对于我来说收获却很多。

这其中也得到了老师与同学们的帮助,才使我更快的了解了相关的知识点。

借助这次实验设计,我在网上找到了学习视频与相关的学习资料,接下来就就是准备买一快小的学习开发板,进行更加深入的学习研究。

同时,我也会关注相关行业的动态,了解更多新闻资讯。

四、参考文献:
[1]潘松、EDA技术实用教程、北京:科学出版社;
[2]周新、轻松学会FPGA设计与开发、北京:电子工业出版社;
[3]黄平、基于Quartus II的FPGA/CPLD数字系统设计与应用、北京:化学工业出版社;。

相关文档
最新文档