设计方案含异步清零和同步时钟使能的加法计数器
同步和异步十进制加法计数器的设计
同步和异步十进制加法计数器的设计全文共四篇示例,供读者参考第一篇示例:同步和异步是计算机系统中常用的两种通信机制,它们在十进制加法计数器设计中起到了至关重要的作用。
在这篇文章中,我们将深入探讨同步和异步十进制加法计数器的设计原理及应用。
让我们来了解一下十进制加法计数器的基本概念。
十进制加法计数器是一种用于执行十进制数字相加的数字电路。
它通常包含多个十进制加法器单元,每个单元用于对应一个十进制数位的运算。
在进行加法操作时,每个数位上的数字相加后,可能会产生进位,这就需要进位传递的机制来满足计数器的正确操作。
在同步十进制加法计数器中,每个十进制加法器单元都与一个时钟信号同步,所有的操作都按照时钟信号的节拍来进行。
具体来说,当一个数位的加法计算完成后,会将结果通过进位端口传递给下一个数位的加法器单元,这样就能确保每个数位的计算都是按照特定的顺序来进行的。
同步十进制加法计数器的设计较为简单,在时序控制方面有很好的可控性,但由于需要受限于时钟信号的频率,其速度受到了一定的限制。
在实际应用中,根据不同的需求可以选择同步或异步十进制加法计数器。
如果对计数器的速度要求较高,并且能够承受一定的设计复杂度,那么可以选择异步设计。
如果对计数器的稳定性和可控性要求较高,而速度不是首要考虑因素,那么同步设计可能更为适合。
无论是同步还是异步,十进制加法计数器的设计都需要考虑诸多因素,如延迟、数据传输、进位控制等。
通过合理的设计和优化,可以实现一个高性能和稳定的十进制加法计数器,在数字电路、计算机硬件等领域中有着广泛的应用。
同步和异步十进制加法计数器的设计都有其各自的优势和劣势,需要根据具体的需求来选择合适的设计方案。
通过不断的研究和实践,我们可以进一步完善十进制加法计数器的设计,为计算机系统的性能提升和应用拓展做出贡献。
希望这篇文章能够为大家提供一些启发和帮助,让我们共同探索数字电路设计的奥秘,开拓计算机科学的新境界。
第二篇示例:同步和异步计数器都是数字电路中常见的设计,用于实现特定的计数功能。
设计含异步清零和同步时钟使能的加法计数器
设计含异步清零和同步时钟使能的加法计数器附表1:广州大学学生实验报告开课学院及实验室:物理与电子工程学院-电子楼317室2016年4 月21 日学院物电年级、专业、班姓名Jason.P 学号实验课程名称EDA技术实验成绩实验项目名称设计含异步清零和同步时钟使能的加法计数器指导教师一、实验目的:学习计数器的设计、仿真和硬件测试,进一步熟悉VerilogHDL设计技术。
二、实验内容:含异步清0和同步时钟使能的4位加法器(1)实验原理:上图是一含计数使能、异步复位的4位加法计数器,书中例3-15是其VerilogHDL描述。
由图2-1所示,图中间是4位锁存器;rst是异步清信号,高电平有效;clk是锁存信号;D[3:0]是4位数据输入端。
当ENA为‘1’时,多路选择器将加1器的输出值加载于锁存器的数据端;当ENA为‘0’时保持上一次的输出。
(2)实验步骤:(2)-1按照发给大家的文件“Quartus II 9.0基本设计流程-VerilogHDL.ppt”所讲述的步骤,在QuartusII上对例3-15(第四版)(第五版p124例5-15)进行编辑、编译、综合、适配、仿真。
说明例2-1各语句的作用,详细描述示例的功能特点,给出其所有信号的时序仿真波形。
(2)-2引脚锁定以及硬件下载测试:若目标器件是EP3C40Q240C8N,建议选实验电路模式5,用键8(PIO7)控制RST;用键7控制ENA;计数溢出COUT接发光管D8;OUTY是计数输出接数码1;时钟CLK接clock2,通过跳线选择4Hz信号。
引脚锁定后进行编译、下载和硬件测试实验。
将实验过程和实验结果写进实验报告。
三、实验HDL描述:module CNT10(CLK,RST,EN,LOAD,COUT,DOUT,DATA)input CLK,EN,RST,LOAD; //定义输入信号input[3:0] DATA; //定义4位的并行加载数据DATAoutput[3:0] DOUT; //定义4位的计数输出数据DOUToutput COUT; //定义进位输出信号COUTreg[3:0] Q1; //定义4位的寄存器型中间变量Q1reg COUT;assign DOUT = Q1; //将内部寄存器的计数结果输出至DOUTalways @(posedge CLK or negedge RST) //时序过程beginif(!RST) Q1 <= 0; //RST=0时,对内部寄存器单元异步清0else if(EN)begin //同步使能EN=1,则允许加载或计数if(!LOAD) Q1 <= DATA; //当LOAD=0,向内部寄存器加载数据else if(Q1<9) Q1 <=Q1+1; //当Q1小于9时,允许累加else Q1 <=4'b0000; //否则一个时钟后清零返回初值endendalways @(Q1) //组合过程if (Q1==4'h9) COUT = 1'b1;else COUT = 1'b0;endmodule四、仿真结果:七、实验心得:通过本次实验,使我进一步熟悉了QuartusII的VerilogHDL文本设计流程以及电路仿真和硬件测试。
实验五 含异步清零和同步使能4位加法计数器的VHDL设计
实验五含异步清零和同步使能4位加法计数器的VHDL设计一、实验目的1掌握计数器的VHDL设计方法;2掌握异步复位和同步复位和使能的概念;3掌握寄存器性能的分析方法(即分析芯片所能达到的最高时钟频率)。
二、实验内容1异步复位4位加法计数器的设计;2同步复位4位加法计数器的设计。
3异步清0和同步时钟使能的4位加法计数器三、实验原理复位:给计数器一个初值叫复位,如果所给初值为0,则称复位为清零。
异步复位:复位跟时钟无关,只要复位信号的复位电平出现,计数器立即复位,如图5-1所示;同步复位:复位跟时钟有关,当复位信号的复位电平出现时,计数器并不立即复位,而是要等到时钟沿到来时才复位,如图5-2所示。
异步复位4位加法计数器的VHDL设计代码见教材P122-P123,仿真波形如图5-3所示。
同步复位4位加法计数器的VHDL部分代码如下,仿真波形如图5-4所示。
.图5-1异步复位图5-2同步复位图5-3异步复位计数器仿真波形图5-4同步复位计数器仿真波形四、实验步骤(一)异步复位4位加法计数器的设计1建立一个设计工程,工程名为CNT4B;2打开文本编辑器,建立一个VHDL设计文件,其VHDL代码见教材P164中的例6-20,文件名存为CNT4B.VHD。
注意文件的扩展名要选为.vhd,而且要求工程名、文件名和设计实体名必须相同。
3选器件:ACEX1K,EP1K30TC144-3(旧)或Cyclone,EP3C40Q240C8目标芯片。
4编译;5建立波形文件,然后保存,其文件名必须与工程名一致;【波形设置:①设置仿真时间为10us:②设置输入信号的波形:时钟周期设置为200ns,其他输入信号的波形设置参看图6-3。
】6仿真,观察输出波形是否正确;7时序分析:分析芯片所能达到的最高时钟频率。
【打开时序分析器,然后执行菜单命令:analysis/register performance/start,可以看到最高时钟频率为100.00MHZ】(二)同步复位4位加法计数器的设计8建立一个设计工程,工程名为CNT4B_SYS;9打开文本编辑器,建立一个VHDL设计文件,其VHDL代码参看异步计数器代码和实验原理中的参考代码,文件名存为CNT4B_SYS.VHD。
实验一2 含异步清0
1)根据DE2_pin_assignments文件内容、格式 已制作本设计引脚对应文件的引脚锁定文 件:CNT4B.csv 2) 由Assignments->Import Assignment,打开 对话框,调入引脚对应文件即可。
• 进行编译、下载,通过实验,检查引脚锁定是 否正确。
• 将波形文件存盘为CNT4B.vwf
• 设定CNT4B.v是目前的顶层文件
• 由Processing->start->start annlysis & elaboration对程序进行初步的分析
• 由view->utility window->node finder,得到 如下对话框,
Filter中选择Pins: all 然后按List得到输 入输出端口列表, 用鼠标将它们拖到 波形编辑窗口
• 将instance框中的名字改为CNT4B(选中右击选择Rename Instance)
• 为看清楚,按
,将窗口浮动
• 在CNT4B框双击(Double-click to add node), 弹出节点(noder)对话框,Filter项选择all, 然后点击List
选中要观察的端口COUT、OUTY然后单击>加 入,点OK。
功能仿真
• 由Processing->generate functional simulation netlist,提取功能仿真的网表 • 由assigments->settings,对仿真工具设定为 功能仿真,并将激gt; start simulation 进行功能仿 真,并对结果进行分析。
• 锁好引脚,进行全编译(compile),重新布 局布线,时序仿真 引脚锁定,仿真结果核对无误后,准备下载
含异步清规和同步使能的加法计数器
实验三含异步清零和同步使能的加法计数器一、实验目的1、了解二进制计数器的工作原理。
2、进一步熟悉QUARTUSII软件的使用方法和VHDL输入。
3、时钟在编程过程中的作用。
二、实验原理二进制计数器中应用最多、功能最全的计数器之一,含异步清零和同步使能的加法计数器的具体工作过程如下:在时钟上升沿的情况下,检测使能端是否允许计数,如果允许计数(定义使能端高电平有效)则开始计数,否则一直检测使能端信号。
在计数过程中再检测复位信号是否有效(低电平有效),当复位信号起作用时,使计数值清零,继续进行检测和计数。
其工作时序如图3-1所示:图3-1 计数器的工作时序三、实验内容本实验要求完成的任务是在时钟信号的作用下,通过使能端和复位信号来完成加法计数器的计数。
实验中时钟信号使用数字时钟源模块的1HZ信号,用一位拨动开关K1表示使能端信号,用复位开关S1表示复位信号,用LED模块的LED1~LED11来表示计数的二进制结果。
实验LED亮表示对应的位为‘1’,LED灭表示对应的位为‘0’。
通过输入不同的值模拟计数器的工作时序,观察计数的结果。
实验箱中的拨动开关、与FPGA的接口电路,LED灯与FPGA的接口电路以及拨动开关、LED与FPGA的管脚连接在实验一中都做了详细说明,这里不在赘述。
数字时钟信号模块的电路原理如图3-2所示,表3-1是其时钟输出与FPGA的管脚连接表。
图3-2 数字时钟信号模块电路原理表3-1 数字时钟输出与FPGA的管脚连接表按键开关模块的电路原理如图3-3所示,表3-2是按键开关的输出与FPGA的管脚连接表。
图3-3 按键开关模块电路原理信号名称FPGA I/O名称核心板接口管脚号功能说明S[0] Pin_AF5 JP1_91 ‘S1’SwitchS[1]Pin_AH6 JP1_93 ‘S2’SwitchS[2]Pin_AH7 JP1_95 ‘S3’SwitchS[3]Pin_AH8 JP1_97 ‘S4’SwitchS[4]Pin_AG10 JP1_99 ‘S5’SwitchS[5]Pin_AG11 JP1_101 ‘S6’SwitchS[6]Pin_AH14 JP1_90 ‘S7’SwitchS[7] Pin_AG7 JP1_92 ‘S8’SwitchS[8]Pin_AG8 JP1_94 ‘S9’SwitchS[9]Pin_AF9 JP1_96 ‘S10’SwitchS[10]Pin_AH10 JP1_98 ‘S11’SwitchS[11] Pin_AH11 JP1_100 ‘S12’Switch表3-2 按键开关与FPGA的管脚连接表四、实验步骤1、打开QUARTUSII软件,新建一个工程。
一、设计含异步清零和同步加载与时钟使能的计数器
实验1设计含异步清零和同步加载与时钟使能的计数器一实验目的1.熟悉QuartusII的VHDL文本设计流程全过程,学习计数器的设计与仿真2.掌握简单逻辑电路的设计方法与功能仿真技巧。
3.学习使用V AHDL语言进行含异步清零和同步加载与时钟使能的计数器的设计二实验仪器设备1.PC机,1台2.QuartusII系统三实验原理含计数使能、异步复位4位加法计数器,其中有锁存器、rst是异步清零信号,低电平有效;clk是锁存信号、当ena为1时使能锁存器。
四实验内容用VHDL语言设计一个含异步清零和同步加载与时钟使能的计数器,并进行编辑,编译与仿真。
要求(1)设计含有异步清零CLR和时钟使能端ENA。
(2)用D触发器设计带有上述功能的十进制的加法计数器。
(3)对于所设计的程序进行编译,检查纠错。
(4)程序完善之后进行程序的仿真并进行波形的记录与分析。
五实验参考程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT10 ISPORT (CLK,RST,EN,LOAD: IN STD_LOGIC;DA TA:IN STD_LOGIC_VECTOR(3 DOWNTO 0); DOUT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT:OUT STD_LOGIC);END CNT10;ARCHITECTURE behav OF CNT10 ISBEGINPROCESS(CLK,RST,EN,LOAD)V ARIABLE Q:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGINIF RST='0' THEN Q:=(OTHERS=>'0');ELSIF CLK'EVENT AND CLK='1' THENIF EN='1' THENIF (LOAD='0') THEN Q:=DATA; ELSEIF Q<9 THEN Q:=Q+1;ELSE Q:= (OTHERS=>'0');END IF;END IF;END IF;IF Q="1001" THEN COUT<='1';ELSE COUT<='0'; END IF;DOUT <=Q;END IF;END PROCESS;END behav;六. 实验仿真图形。
实验三 含异步清0和同步时钟使能的十进制
EDA技术基础实验报告实验名称:含异步清0和同步时钟使能的十进制加法法计数器姓名:李江虹学号:068专业及班级:通信工程(3)班指导老师:刘文进实验三含异步清0和同步时钟使能的十进制加法法计数器一、实验目的:学习时序电路的设计、仿真和硬件测试,进一步熟悉VHDL设计技术。
二、实验原理实验图1是一含计数使能、异步复位十进制加法计数器,例1是其VHDL描述。
由实验图1所示,图中间是4位锁存器;rst是异步清信号,高电平有效;clk是锁存信号;D[3..0]是4位数据输入端。
当ENA为'1'时,多路选择器将加1器的输出值加载于锁存器的数据端;当ENA为'0'时将"0000"加载于锁存器。
图1 含计数使能、异步复位十进制加法计数器三、实验内容在MAX+plusII上参照例1(4位二进制计数器)进行设计、编辑、编译、综合、适配、仿真。
说明例中各语句的作用,详细描述示例的功能特点,给出其所有信号的时序仿真波形。
【例1】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT4B ISPORT (CLK : IN STD_LOGIC;RST : IN STD_LOGIC;LOAD : IN STD_LOGIC;DATA :IN STD_LOGIC_VECTOR(3 DOWNTO 0);OUTY : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);COUT : OUT STD_LOGIC );END CNT4B;ARCHITECTURE behav OF CNT4B ISSIGNAL CQI : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGINP_REG: PROCESS(CLK, RST,LOAD)BEGINIF RST = '1' THEN CQI <="0000"; ELSIF CLK'EVENT AND CLK = '1' THEN IF LOAD = '1' THEN CQI <= DATA; ELSIF CQI>="1001"THENCQI<="0000";COUT <='1';ELSECQI<=CQI+1;COUT <='0';END IF;END IF;OUTY <= CQI ;END PROCESS P_REG ;END behav;四、引脚锁定以及硬件下载测试。
异步清零同步使能加法计数器
实验一学院:电子信息学院班级:xxxxx姓名:xxx 学号:xxxxxxxxxx一、实验名称含异步清零和同步时钟使能的加法计数器二、实验设备(1)EDA实验箱(型号GW48系列)(2)计算机(3)EDA软件(QuartusII)三、实验目的学习计数器的设计、仿真和硬件测试,进一步熟悉VerilogHDL设计技术。
四、实验内容(1)在QuartusII6.0上对例4-22进行编辑、编译、综合、适配、仿真。
说明例4-22各语句的作用,详细描述示例的功能特点,给出其所有信号的时序仿真波形。
(2)引脚锁定以及硬件下载测试。
引脚锁定后进行编译、下载和硬件测试实验。
将实验过程和实验结果写进实验报告。
(3)使用SignalTap II 对此计数器进行实时测试。
(4)从设计中去除SignalTap II ,要求全程编译后将生成的SOF文件转变成用于配置器件EPCS1的压缩的间接配置文件.jic ,并使用USB-Blaster对实验板上的EPCS1进行编程,最后进行验证。
(5)为此项设计加入一个可用于SignalTap II 采样的独立时钟输入端,并进行实时测试。
五、实验原理实验程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT10B ISPORT(CLK,RST,EN:IN STD_LOGIC;CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);COUT:OUT STD_LOGIC);END CNT10B;ARCHITECTURE BEHAV OF CNT10B 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;六、仿真分析当使能端EN为高电平复位端RST为低电平时,对脉冲进行计数,每计满十个输出进位信号,重新计数。
EDA实验二 含异步清零和同步使能的十进制加减法计数器
EDA实验二 含异步清零和同步使能的十进制加减法计数器一、实验目的1.了解加减计数器的工作原理。
2.进一步熟悉QUARTUSII 软件的使用方法和VHDL 输入。
3.熟悉仿真时序设定。
二、实验设备1.PC机 一台;四、实验内容完成一个0~99计数器,有四个输入信号:复位reset、使能enable、时钟clk和加减选择sel,三路输出信号:计数值、进位和借位信号。
要求每来一个时钟信号,加或减1(sel=‘0’时执行加,sel=‘1’时执行减);计数值为99时再加1,输出进位信号,并且计数值归零;计数值为0时再减1,输出借位信号,并且计数值变成99(即0~99循环计数);复位信号reset有效时(低电平有效)计数值清0,使能信号enable有效时(高电平有效)计数器才进行工作,否则不进行累加或累减。
五、实验步骤1.打开QUARTUSII 软件,新建一个VHDL文件。
2.输入程序代码,点击保存时,系统会提示建立一个新的工程(Project),按照QUARTUSII的提示建立好工程;3.按照实验原理和自己的想法,在VHDL 编辑窗口调整完成VHDL 程序;4.对自己编写的VHDL 程序进行编译,对程序的错误进行修改;5.进行仿真,附录:电路实体定义可参照如下:ENTITY counter ISPORT( clk, reset, enable ,sel : IN STD_LOGIC; --定义时钟、异步复位、同步使能、选择信号cq : OUT STD_LOGIC_VECTOR(6 downto 0); --计数值c1out : OUT STD_LOGIC; --进位信号c2out : OUT STD_LOGIC --借位信号);END counter;VHDL程序代码如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY counter ISPORT( clk, reset, enable ,sel : IN STD_LOGIC; --定义时钟、异步复位、同步使能、选择信号cq : OUT STD_LOGIC_VECTOR(6 downto 0); --计数值c1out : OUT STD_LOGIC; --进位信号c2out : OUT STD_LOGIC --借位信号);END counter;ARCHITECTURE counter99 OF counter ISBEGINPROCESS(clk, reset, enable ,sel)VARIABLE cot :STD_LOGIC_VECTOR(6 downto 0);BEGINIF reset='0' THEN cot:=(OTHERS=>'0');ELSIF clk'EVENT AND clk ='1' THENIF enable='1' THENIF sel='0' THEN c2out<='0';IF cot<99 THEN cot:=cot+1;c1out<='0';ELSE cot:=(OTHERS=>'0');c1out<='1';END IF;ELSIF sel='1' THEN c1out<='0';IF cot>0 THEN cot:=cot-1;c2out<='0';ELSE cot:="1100011";c2out<='1';END IF;END IF;END IF;END IF;cq<=cot;END PROCESS; END counter99;仿真结果如下:。
含异步清零和同步时钟使能的4位加法器
含异步清零和同步时钟使能的4位加法器宁波⼯程学院电信学院EDA系统设计与实践实验报告实验名称含异步清零和同步时钟使能的4位加法器班级电科(系统设计)08-2 姓名学号 0840*******组员姓名实验⽇期2011-5-12指导⽼师实验四含异步清零和同步时钟使能的4位加法器⼀.实验⽬的学习计数器的设计,仿真和硬件测试。
进⼀步熟悉VHDL的编程⽅法。
⼆.实验内容本实验的内容是Quartus 11建⽴⼀个含计数使能、异步复位的4位加分计数器,SmartSOPC试验箱上进⾏硬件测试,由KEY1控制技术使能端ena并由LED指⽰,KEY2控制复位端rst并由LED2指⽰。
计数值由数码管指⽰。
三.实验原理Rst是异步清零信号,⾼电平有效。
Ema为是能端,能开始与暂停程序,当ena为0时,能所存信号。
四.实验步骤(1)破解Quartus 11;(2)建⽴⼯程:启动Quartus 11,建⽴空⽩⼯程。
命名为giui;(3)创建源程序⽂件:新建VHDL源程序⽂件giui,输⼊程序代码并保存,进⾏编译,若在编译过程中发现错误,则找出并更正,直⾄编译成功。
(4)编译并运⾏:编译并运⾏程序或者原理图,编译⽆误后,进⾏引脚锁定;(5)外部连接⽅式跟第2节相似。
五.实验程序⼀.在⼀个数码管上显⽰0~Flibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity giui isport(clk48:in std_logic;key_2bit:in std_logic;dig_4bit:out std_logic_vector(3 downto 0);seg:out std_logic_vector(7 downto 0));end giui;architecture m1 of giui issignal num1:std_logic_vector(3 downto 0);signal cnt:std_logic_vector(23 downto 0);signal t: std_logic;signal q:std_logic;beginfre:process(clk48,cnt)beginif clk48'event and clk48='1' thencnt<=cnt+1;end if;q<=cnt(23);end process fre;coun:process(q)beginif q'event and q='1' thenif t='1' then num1<="0000";elsenum1<=num1+1;end if;end if;end process;SEG<= "11000000" when num1="0000" else "11111001" when num1="0001" else "10100100" when num1="0010" else"10110000" when num1="0011" else"10011001" when num1="0100" else"10010010" when num1="0101" else"10000010" when num1="0110" else"11111000" when num1="0111" else"10000000" when num1="1000" else"10010000" when num1="1001" else"10001000" when num1="1010" else"10000011" when num1="1011" else"01000110" when num1="1100" else"10100001" when num1="1101" else"10000110" when num1="1110" else"11111111";dig_4bit<="1110" when t='1' else"1111" when t='0';end m1;⼆.4位加法器Library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity sun_adder isport(clk:in std_logic;key:in std_logic;led1:out std_logic;dig:out std_logic_vector(3 downto 0);seg:out std_logic_vector(7 downto 0)); end sun_adder;architecture a of sun_adder issignal tmp:std_logic_vector(23 downto 0); signal tmp1:std_logic_vector(10 downto 0); signal address,pp:std_logic_vector(3 downto 0); signal p:std_logic_vector(1 downto 0);signal tt,t,q,q1: std_logic;signal num1,num2,num3,num4:std_logic_vector(3 downto 0);beginprocess(clk)beginif clk'event and clk='1' then tmp<=tmp+1;tmp1<=tmp1+1;end if;end process;q<=tmp(23);q1<=tmp1(10);process(q1)beginif q1'event and q1='1' then case p iswhen "00"=>pp<="1110";when "01"=>pp<="1101";when "10"=>pp<="1011";when others=>pp<="0111";end case;dig<=pp;case pp iswhen "1110"=>address<=num1;when "1101"=>address<=num2;when "1011"=>address<=num3;when others=>address<=num4;end case;p<=p+1;end if;end process;process(key)beginIf key'event and key='1' thent<= not t;end if;end process;process(q)beginif q'event and q='1' thenif t='1' then num1<="0000";num2<="0000";num3<="0000";num4<="0000";else num1<=num1+1;if num1="1001" then num1<="0000";tt<='1';if num2="1001" then num2<="0000";if num3="1001" then num3<="0000";if num4="1001" then num4<="0000";else num4<=num4+1; end if;else num3<=num3+1; end if;else num2<=num2+1; `1212212345123451233123`12341234123412341312end if; else num1<=num1+1;tt<='0'; end if; end if;end if;end process;seg<= "11000000" when address="0000" else"11111001" when address="0001" else"10100100" when address="0010" else"10110000" when address="0011" else"10011001" when address="0100" else"10010010" when address="0101" else"10000010" when address="0110" else "11111000" when address="0111" else "10000000" when address="1000" else "10010000" when address="1001" else "11111111";led1<='0' when tt='1' else'1' when tt='0';end a;六.实验现象。
设计含异步清零和同步加载与时钟使能的计数器
4-1 设计含异步清零和同步加载与时钟使能的计数器(1)实验目的:熟悉Quartus Ⅱ的VHDL文本设计流程全过程,学习计数器的设计,仿真和硬件测试。
掌握原理图与文本混合设计方法。
(2)实验原理:参考3.4节。
实验程序为例3-20。
(3)实验内容1:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY cnt10 ISPORT (CLK,RST,EN,LOAD : IN STD_LOGIC;DATA : IN STD_LOGIC_VECTOR(3 DOWNTO 0);DOUT : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);COUT : OUT STD_LOGIC );END cnt10;ARCHITECTURE behav OF cnt10 ISBEGINPROCESS (CLK, RST, EN, LOAD)V ARIABLE Q : STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINIF RST='0' THEN Q := (OTHERS=>'0');ELSIF CLK'EVENT AND CLK='1' THENIF EN='1' THENIF (LOAD='0') THEN Q := DATA; ELSEIF Q<9 THEN Q := Q + 1;ELSE Q := (OTHERS=>'0');END IF;END IF;END IF;END IF;IF Q = "1001" THEN COUT <= '1';ELSE COUT <= '0';END IF;DOUT <= Q;END PROCESS;END behav;实验内容2:(4)实验结果:实验内容1的时序仿真切图:实验内容2的时序仿真切图:。
含异步清零和同步使能的加法计数器设计与仿真
实验二含异步清零和同步使能的加法计数器并用数码管显示一、实验目的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)功能仿真。
含异步清零和同步使能的加法计数器
含异步清零和同步使能的加法计数器一、实验目的1、了解数码管的工作原理。
2、了解二进制计数器的工作原理学习。
3、七段数码管显示译码器的设计4、学习VHDL 的CASE 语句及多层次设计方法。
二、实验原理七段数码管是电子开发过程中常用的输出显示设备。
在实验系统中使用的是两个四位一体、共阴极型七段数码管。
其单个静态数码管如下图4-1 所示。
图4-1 静态七段数码管由于七段数码管公共端连接到GND ,当数码管的中的那一个段被输入高电平,则相应的这一段被点亮。
反之则不亮。
共阳极性的数码管与之相么。
四位一体的七段数码管在单个静态数码管的基础上加入了用于选择哪一位数码管的位选信号端口。
八个数码管的a、b、c、d、e、f、g、h、dp 都连在了一起,8 个数码管分别由各自的位选信号来控制,被选通的数码管显示数据,其余关闭。
三、实验内容本实验要求完成的任务是在时钟信号的作用下,通过使能端和复位信号来完成加法计数器的计数。
实验中时钟信号使用数字时钟源模块的 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 jishuqi 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 jishuqi;architecture whbkrc of jishuqi 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;分配管脚功能仿真五、实验小结通过本次试验,更加熟悉二进制计数器的工作原理,进一步熟悉 QUARTUSII 软件的使用方法和 VHDL 输入,同时掌握了时钟在编程过程中的作用,虽然试验中遇到了一些小困难,但是通过请教老师和同学还是顺利的解决了。
设计含异步清零和同步时钟使能的加法计数器.doc
设计含异步清零和同步时钟使能的加法计数器.doc加法计数器是一种常见的数字电路,它可以用于计数器、频率分频等应用。
本文将介绍一种具有异步清零和同步时钟使能的加法计数器的设计方法。
一、电路原理加法计数器由若干个触发器组成,每个触发器的输出连接到下一个触发器的时钟端。
当计数器接受到一个时钟信号时,每个触发器的状态将根据前一个触发器的状态和时钟信号发生变化,从而实现计数的功能。
本文介绍的加法计数器还包含了异步清零和同步时钟使能功能,它们分别被连接到清零端和时钟端。
当清零端接受到一个高电平信号时,计数器的状态将被清零;当时钟端接受到一个高电平信号时,计数器将在时钟上升沿时计数。
二、电路实现本文中的加法计数器由4个D触发器和一些逻辑门组成,如图所示。
其中,D触发器的输入资源于四个运算器之中,运算器分别为。
①.异或门(XOR):将A,B两个数字按位异或,当两个输入不同时,输出为1;当两个输入相同时,输出为0。
②.与非器(NAND):将AB两个输入同时取反再进行与运算,输出为非AB的结果。
在加法计数器中,D触发器的输入端连接到异或门,异或门的两个输入端分别连接到计数器输入和进位信号。
同时,计数器输出也会连接到一个4位数显。
逻辑门的输出信号会被连接到触发器的时钟控制端或清零控制端,从而实现对计数器状态的控制。
三、时序分析1.异步清零当异步清零端接受到一个高电平信号时,计数器的状态将被清零。
具体来说,所有触发器的输出都将被强制为低电平信号。
这种操作可以通过将清零信号连接到每个D触发器的清零输入实现。
2.同步时钟使能当同步时钟使能端接受到高电平信号时,计数器只在时钟上升沿时计数。
这种操作可以通过将时钟使能信号连接到所有D触发器的时钟输入实现。
具体来说,当A和B两个输入都为0时,输出为0;当A和B两个输入都为1时,输出为0;当A和B两个输入中有一个为1时,输出为1。
四、总结本文介绍了一种具有异步清零和同步时钟使能的加法计数器的设计方法。
含异步清和同步时钟使能的位加法计数器
题目含异步清0和同步时钟使能的4位加法计数器原理说明实验图1是一含计数使能,异步复位和计数值并行预置功能4位加法计数器,由实验图1所示,图中间是4位锁存器;rst是异步清信号,高电平有效;clk是锁存信号;D[3..0]是4位数据输入端.当ENA为'1'时,多路选择器将加1器的输出值加载于锁存器的数据端;当ENA为'0'时将"0000"加载于锁存器.V H D L 程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT4B ISPORT (CLK : IN STD_LOGIC; ——CLK为标准的逻辑类型输入端口RST : IN STD_LOGIC; ——RST为标准的逻辑类型输入端口ENA : IN STD_LOGIC; ——ENA为标准的逻辑类型输入端口OUTY : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);COUT : OUT STD_LOGIC );END CNT4B;ARCHITECTURE behav OF CNT4B ISSIGNAL CQI : STD_LOGIC_VECTOR( 3 DOWNTO 0 );BEGINP_REG: PROCESS( CLK, RST, ENA )BEGINIF RST = '1' THEN CQI <= "0000";ELSIF CLK'EVENT AND CLK = '1' THENIF ENA = '1' THEN CQI <= CQI + 1;ELSE CQI <= "0000";END IF;END IF;OUTY <= CQI ;END PROCESS P_REG ; ——进位输出COUT <= CQI(0) AND CQI(1) AND CQI(2) AND CQI(3); --END behav;波形图结果分析引脚锁定以及硬件下载测试.建议选实验电路模式6,用数码8显示译码输出(PIO46--PIO40),键8,键7,键6,键5四位控制输入,硬件验证译码器的工作性能.注意,在仿真中,4位输入A必须用总线方式给数据.将仿真波形。
含有异步清零同步时钟使能和同步数据加载功能的十进制计数器
含有异步清零同步时钟使能和同步数据加载功能的十进制计数器实验目的:了解硬件计数器的工作原理熟悉QuartusII及其使用Verilog 语言编写代码设计一个功能全面十进制计数器Quartus II简介Quartus II 是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL 以及AHDL等多种设计输入形式,内嵌自由的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。
Quartus II 可以在XP、Linux以及Unix上使用,除了可以使用TCL脚本完成设计流程外,提供了完善的用户图形界面设计方式。
具有运行速度快,界面统一,功能集中,易学易用等特点。
Quartus II 支持Altera的IP核,包括了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性,加快了设计速度。
对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。
此外,Quartus II 通过和DSP Builder工具和Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。
Maxplus II 作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。
目前Altera已经停止了对Maxplus II 的更新支持,Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。
Altera在Quartus II 中包括了许多诸如SignalTap II、Chip Editor 和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并继承了Maxplus II友好的图形界面及简便的使用方法。
Altera Quartus II 作为一种可编程逻辑的设计环境,由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。
EDA实验一设计含异步清零和同步加载与时钟使能的计数器
EDA实验一设计含异步清零和同步加载与时钟使能的计数器一、实验目的熟悉QuartusII的VHDL文本设计流程全过程,学习计数器的设计、仿真和硬件测试。
掌握原理图与文本混合设计方法。
二、实验原理在进程语句中含有两个独立的IF语句。
第一个IF语句是非完整的条件语句,因而将产生计数器时序电路;第二个IF语句产生一个纯组合逻辑的多路选择器。
三、实验内容根据4.1节在QuartusII上对例3-20进行编辑、编译、综合、适配仿真。
说明例句中各语句作用。
给出所有时序信号的仿真波形,根据波形详细描述词设计的功能特点,包括RST、EN、LOAD、DATA、CLK 等型号的同步与异步特性。
查阅编译后的计数器的时序特点,从时序仿真图和了解从计数器时钟输入至计数数据输出的延时,包括不同优化约束后的改善情况,以及当选择不同FPGA目标器件后延时差距和毛刺情况,给出分析报告。
四、设计过程LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT10 ISPORT(CLK,RST,EN,LOAD :IN STD_LOGIC;DATA:IN STD_LOGIC_VECTOR(3 DOWNTO 0);DOUT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);COUT:OUT STD_LOGIC);END CNT10;ARCHITECTURE BEHAV OF CNT10 ISBEGINPROCESS(CLK,RST,EN,LOAD)VARIABLE Q :STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINIF RST='0' then q:=(OTHERS=>'0');ELSIF CLK'EVENT AND CLK='1' THENIF EN='1' THENIF(LOAD='0') THEN Q:=DATA;ELSEIF Q<9 THEN Q:=Q+1;ELSE Q:=(OTHERS=>'0');END IF;END IF;END IF;END IF;IF Q="1001"THEN COUT<='1';ELSE COUT<='0'; END IF;DOUT<=Q;END PROCESS;END BEHAV;(1)第一个IF语句中的条件句“IF Q<9 THEN Q:=Q+1”构成比较器(2)语句“IF RST='0' then q:=(OTHERS=>'0')”构成RST在锁存器上的异步清零端CLR(3)语句“ELSE Q:=(OTHERS=>'0')”构成了多路选择器(4)不完整条件语句与语句“IF Q<9 THEN Q:=Q+1 ”构成了加1器和锁存器(5)语句“IF(LOAD='0') THEN Q:=DATA;ELSE”构成了另一多路选择器(6)第二个IF语句构成了纯组合电路模块:四位数据比较器五、编译仿真波形六、分析结果由分析知,程序描述功能与波形完全一致。
实验三 含异步清零和同步时钟使能的加法计数器设
含异步清零和同步时钟使能的加法计数器设计(1)实验目的:学习计数器的设计、仿真和硬件测试,进一步熟悉VHDL设计技术。
(2)实验原理:实验程序为例4-22;实验原理参考4.4节(计数器设计),设计流程参考第5章。
【例4-22】设计一个带有异步复位和同步时钟使能的十进制加法计数器。
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 : 0UT STD_LOGIC);END ENTITY 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 C LK’E VENT AND CLK=‘1’ THEN --检测时钟上升沿IF EN=‘1’ THEN --检测是否允许计数(同步他能) IF CQI<9 THEN CQI:=CQI+1; --允许计数,检测是否小于9ELSE CQI := (OTHERS => ‘0’); --大于9,计数值清零END IF;END IF;END IF;IF CQI=9 THEN COUT<=‘1’; --计数大于9,输出进位信号ELSE COUT<=‘0’;END IF;CQ<=CQI; --将计数值向端口输出END PROCESS;END ARCHITECTURE behav;(3)实验内容1:在Quartus II 上对例4-22进行编辑、编译、综合、适配、仿真。
设计含异步清零同步使能的38进制加法计数器
一、实验题目:设计一个含异步清零同步使能38进制加法计数器。
二、实验目的:通过实践学习计数器的设计、仿真和硬件调试,进一步熟悉VHDL设计技术。
三、实验要求及设计思路:能熟练利用软件来设计计数器并通过实验来掌握计数器的工作原理。
本实验首先利用QuartusⅡ完成38进制计数器的文本编辑输入和仿真测试等步骤并给出仿真波形,最后在实验系统上验证此设计的功能。
四、实验程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT38 ISPORT (CLK,RST,EN:IN STD_LOGIC;CQ:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);COUT:OUT STD_LOGIC);END CNT38;ARCHITECTURE behav OF CNT38 ISBEGINPROCESS (CLK,RST,EN)VARIABLE CQI:STD_LOGIC_VECTOR(6 DOWNTO 0);BEGINIF RST='1' THEN CQI:= (OTHERS=>'0');ELSIF CLK'EVENT AND CLK='1' THENIF EN='1' THENIF CQI<37 THEN CQI:=CQI+1;ELSE CQI:=(OTHERS=>'0');END IF;END IF;END IF;IF CQI=37 THEN COUT<='1';ELSE COUT<='0';END IF;CQ<=CQI;END PROCESS;END behav;五、功能仿真时序图与硬件电路图:六、设计总结:略。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
附表1:
广州大学学生实验报告
开课学院及实验室:物理与电子工程学院-电子楼317室2016年 4 月21 日
学院物电年级、专
业、班
姓名Jason.P 学号
实验课程名称EDA技术实验成绩
实验项目名称设计含异步清零和同步时钟使能的加法计数器指导教师
一、实验目的:
学习计数器的设计、仿真和硬件测试,进一步熟悉VerilogHDL设计技术。
二、实验内容:
含异步清0和同步时钟使能的4位加法器
(1)实验原理:
上图是一含计数使能、异步复位的4位加法计数器,书中例3-15是其VerilogHDL描述。
由图2-1所示,图中间是4位锁存器;rst是异步清信号,高电平有效;clk是锁存信号;D[3:0]是4位数据输入端。
当ENA为‘1’时,多路选择器将加1器的输出值加载于锁存器的数据端;当ENA为‘0’时保持上一次的输出。
(2)实验步骤:
(2)-1按照发给大家的文件“Quartus II 9.0基本设计流程-VerilogHDL.ppt”所讲述的步骤,在QuartusII上对例3-15(第四版)(第五版p124例5-15)进行编辑、编译、综合、适配、仿真。
说明例2-1各语句的作用,详细描述示例的功能特点,给出其所有信号的时序仿真波形。
(2)-2引脚锁定以及硬件下载测试:
若目标器件是EP3C40Q240C8N,建议选实验电路模式5,用键8(PIO7)控制RST;用键7控制ENA;计数溢出COUT接发光管D8;OUTY是计数输出接数码1;时钟CLK接clock2,通过跳线选择4Hz信号。
引脚锁定后进行编译、下载和硬件测试实验。
将实验过程和实验结果写进实验报告。
三、实验HDL描述:
module CNT10(CLK,RST,EN,LOAD,COUT,DOUT,DATA)
input CLK,EN,RST,LOAD; //定义输入信号
input[3:0] DATA; //定义4位的并行加载数据DATA
output[3:0] DOUT; //定义4位的计数输出数据DOUT
output COUT; //定义进位输出信号COUT
reg[3:0] Q1; //定义4位的寄存器型中间变量Q1
reg COUT;
assign DOUT = Q1; //将内部寄存器的计数结果输出至DOUT
always @(posedge CLK or negedge RST) //时序过程
begin
if(!RST) Q1 <= 0; //RST=0时,对内部寄存器单元异步清0
else if(EN)
begin //同步使能EN=1,则允许加载或计数
if(!LOAD) Q1 <= DATA; //当LOAD=0,向内部寄存器加载数据
else if(Q1<9) Q1 <=Q1+1; //当Q1小于9时,允许累加
else Q1 <=4'b0000; //否则一个时钟后清零返回初值
end
end
always @(Q1) //组合过程
if (Q1==4'h9) COUT = 1'b1;
else COUT = 1'b0;
endmodule
四、仿真结果:
图1
图2
由图1的时序波形可见,当EN=0时,DOUT的输出数据3保持了一段时间;
当EN=1,且在时钟CLK的上升沿时间范围LOAD=0时,4位输入数据DATA=0被加载,在LOAD=1后作为计数器的计数初值(图1);
当EN=1,LOAD=1时,输入的数据不被加载;
RST在任意时刻均有效,即使CLK非上升沿时,计数也能即刻清0(图2:计数到3后清0);
当计数到9时,COUT输出进位1,如图2所示。
五、引脚锁定:
六、硬件测试结果:
程序下载
硬件测试效果(模式5)
硬件测试的结果现象为:当键1(RST)、键2(EN)、键3(LOAD)均处于高电平时,数码管1依照时钟信号的周期(CLOCK0=1Hz),从0依次变化到9,当计数到9时,LED灯(D8:COUT)亮起。
数码管1显示的过程中,按下键1(RST)时(变为低电平),数码管1即刻清零;按下键2(EN)时(变为低电平),数码管1保持显示当前的数字(如上硬件测试效果图:保持显示数字5);按下键3(LOAD)时(变为低电平),数码管1显示的数字变为由键8-键5确定的DATA 值(上图为:0011B,就是十进制数3),恢复键1-键3的高电平状态,计数功能正常运行。
七、实验心得:
通过本次实验,使我进一步熟悉了QuartusII的VerilogHDL文本设计流程以及电路仿真和硬件测试。
本次实验的重难点是引脚锁定,数码管的显示是需要先经过译码器的处理,所以我选择了模式5。
通过对照实验电路结构图以及芯片引脚的定义表,正确进行引脚锁定,否则编译会出错或者达不到预期的效果。
总的来说,本次实验还是有一定的挑战性。
八、思考题:
给出含异步清零和同步使能的16位二进制加减可控计数器的VerilogHDL描述。
module UPDOWNCNT16(Q,COUT,DATA,LOAD,EN,CLK,RST,UP_DOWN)
input[15:0] DATA;
input LOAD,EN,CLK,RST,UP_DOWN;
output[15:0] Q;
项目名称”栏以上部分统一。