武汉理工大学EDA实验原理图输入法输入的4位全加器和Verilog HDL语言输入的16进制频率计
EDA1_4位加法器原理图设计
4 位加法器原理图设计一、实验目的1、进一步掌握 Quartus Ⅱ原理图输入设计法。
2、通过4位加法器的设计,掌握原理图输入法中的层次化设计。
二、实验原理图1 半加器原理图图2 1位全加器原理图图3 4 位加法器原理图4 位加法器(如图3)是以 1 位全加器作为基本硬件,由 4 个 1 位全加器串行构成, 1位全加器又可以由两个1位的半加器和一个或门连接而成(如图2),而1位半加器可以由若干门电路组成(如图1)。
三、实验内容本次实验使用 Altera FPGA 的开发工具 Quartus Ⅱ,利用原理图输入设计方法设计一个 4位加法器。
四、实验步骤1、打开QUARTUS II软件,新建一个工程adder4bit。
2、建完工程之后,再新建一个Block Diagram/Schematic File。
在原理图编辑窗口绘制如图1的半加器原理图。
点击 File ->Save,将已设计好的图文件取名为:h_adder,并存在此目录内。
3、编译。
如果发现有错,排除错误后再次编译。
直到编译通过就可以进行波形仿真了。
4、时序仿真。
建立波形文件,设置波形参量,再保存(注意: QuartusⅡ在波形仿真时,只支持一个与工程名同名的波形文件,所以在对多个文件进行波形仿真时,对波形文件都取工程名进行保存,后缀名为.vwf;若确实想保留多个波形文件,则可以分别命名,想对哪个波形文件进行仿真时,点击Processing->simulationTool,在Simulation input中输入待仿真的波形文件即可,如图4所示) ,最后运行波形仿真。
观察分析波形。
然后将半加器 h_adder 封入库生成半加器元件了,为后续生成 1 位全加器做准备。
图4 仿真结果5、封装入库。
封将仿真调试好的半加器封装入库。
打开 h_adder.bdf文件,在File->Create/update 如图5所示。
图5 元件封装入库6、全加器原理图设计。
实验一 4位全加器的设计(1)
实验一4位全加器的设计一、实验目的:1 熟悉QuartusⅡ与ModelSim的使用;2 学会使用文本输入方式和原理图输入方式进行工程设计;3 分别使用行为和结构化描述方法进行四位全加器的设计;4 理解RTL视图和Technology Map视图的区别;5 掌握简单的testbench文件的编写。
二、实验原理:一个4位全加器可以由4个一位全加器构成,加法器间的进位可以串行方式实现,即将低位加法器的进位输出cout与相邻的高位加法器的进位输入信号cin相接。
三、实验内容:1.QuartusII软件的熟悉熟悉QuartusⅡ环境下原理图的设计方法和流程,可参考课本第4章的内容,重点掌握层次化的设计方法。
2.设计1位全加器原理图设计的原理图如下所示:VHDL源程序如下(行为描述):library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity f_add_bev is(A : in std_logic;B : in std_logic;CIN : in std_logic;S : out std_logic;CO : out std_logic);end entity;architecture bev of f_add_bev isbegin(CO,S)<=('0',A)+('0',B)+('0',CIN);end bev;VHDL源程序如下(行为描述)的RTL与technology map视图VHDL源程序如下(数据流描述):library ieee;use ieee.std_logic_1164.all;use ieee.numeric_std.all;entity f_add_fl is(A : in std_logic;B : in std_logic;CIN : in std_logic;S : OUT std_logic;CO : out std_logic);end entity;architecture fl of f_add_fl isbeginS<=A XOR B XOR CIN;CO<=((A XOR B)AND CIN)OR(A AND B);end fl;VHDL源程序如下(数据流描述)的RTL与technology map视图:VHDL源程序如下(结构化描述):library ieee;use ieee.std_logic_1164.all;use ieee.numeric_std.all;entity f_add_con isport(A : in std_logic;B : in std_logic;CIN : in std_logic;S : OUT std_logic;CO : out std_logic );end entity;architecture con of f_add_con is COMPONENT hadd_vhdPORT(a : IN STD_LOGIC;b : IN STD_LOGIC;co : OUT STD_LOGIC;s : OUT STD_LOGIC );END COMPONENT;SIGNAL S1:STD_LOGIC;SIGNAL CO1:STD_LOGIC;SIGNAL CO2:STD_LOGIC;beginh_add1 : hadd_vhdport map(a => a,B => B,S => S1,CO => CO1);h_add2 : hadd_vhdport map(a => S1,B => CIN,S => S,CO => CO2);CO<=CO1 OR CO2;end con;VHDL源程序如下(结构化描述)的RTL与technology map视图:Testbench文件源程序如下:LIBRARY cycloneiii ;LIBRARY ieee ;USE cycloneiii.cycloneiii_components.all ;USE ieee.std_logic_1164.all ;ENTITY f_add_fl_tb ISEND ;ARCHITECTURE f_add_fl_tb_arch OF f_add_fl_tb ISSIGNAL A : STD_LOGIC :='0';SIGNAL CO : STD_LOGIC ;SIGNAL CIN : STD_LOGIC :='0'; SIGNAL B : STD_LOGIC :='0'; SIGNAL S : STD_LOGIC ;COMPONENT f_add_flPORT (A : in STD_LOGIC ;CO : buffer STD_LOGIC ;CIN : in STD_LOGIC ;B : in STD_LOGIC ;S : buffer STD_LOGIC );END COMPONENT ;BEGINDUT : f_add_flPORT MAP (A => A ,CO => CO ,CIN => CIN ,B => B ,S => S ) ;A<=NOT A AFTER 0.25US;B<=NOT B AFTER 0.5US;CIN<=NOT CIN AFTER 1US;END ;功能仿真波形如下:时序仿真波形如下:3.利用层次化原理图方法设计4位全加器(1)生成新的空白原理图,作为4位全加器设计输入(2)利用已经生成的1位全加器作为电路单元,设计4位全加器。
EDA 四位加法器 实验报告
实验报告课程名称:EDA技术与VHDL实验题目:四位加法器设计班级学号:姓名:成绩:一、实验目的 ..................................................................................... - 1 -二、实验任务 ..................................................................................... - 1 -三、系统总体设计 ............................................................................. - 1 -四、VHDL程序设计......................................................................... - 1 -1. 用原理图输入方式设计半加器 ................................................ - 2 -2. 全加器的设计 ............................................................................ - 4 -3.4位全加器的设计 ....................................................................... - 5 -五、仿真 ............................................................................................... - 5 -六、仿真结果分析 ............................................................................... - 6 -一、实验目的熟悉利用QuartusⅡ的原理图输入方法设计简单组合电路,掌握层次化设计的方法,并通过一个4位全加器的设计把握文本和原理图输入方式设计的详细流程。
EDA原理图输入法设计4位全加器
EDA原理图输入法设计4位全加器实验课程名称:EDA实验_实验项目名称用原理图输入法设计4位全加器实验成绩实验者专业班级组别同组者实验日期一、实验目的熟悉利用Quartus II 的原理图输入方法设计简单组合电路,掌握层次化设计的方法,并通过一个4位全加器的设计把握利用EDA软件进行原理图输入方式的电子线路设计的详细流程。
二、实验内容和步骤1:完成半加器和全加器的设计,包括原理图输入、编译、综合、适配、仿真、实验板上的硬件测试,并将此全加器电路设计成一个硬件符号入库。
键1、键2、键3(PIO0/1/2)分别接ain、bin、cin;发光管D2、D1(PIO9/8)分别接sum 和cout。
2:建立一个更高层次的原理图设计,利用以上获得的1位全加器构成4位全加器,并完成编译、综合、适配、仿真、和硬件测试。
建议选择电路模式1(附图F-2):键2、键1输入4位加数:键4、键3输入4位被加数:数码6和数码5显示加和:D8显示进位cout。
三、实验仪器Quartus II软件四、实验原理一个4位全加器可以由4个一位全加器构成,加法器间的进位可以串行方式实现,即将低一位全加器仿真波形如下图所示:3.四位全加器原理图如下所示:四位全加器波形图如下所示:五、实验小结通过此次实验,对Quartus II软件有了更加深入的认识,能较为熟练的使用。
在开始仿真的时候,要先弄清原理,接下来的线路连接就较为简单了。
设计顶层文件也是一个重要的知识点,掌握好之后对后面的设计有很大的帮助。
同时对时序仿真部分也要了解相关的步骤设置才能得到最终的仿真结果。
经过反复的联系,全加器的仿真图能很好的掌握并得出正确的仿真结果,对EDA的相应知识点也能很好的掌握,而且能熟练的使用Quartus II,这些对我都有很重要的意义。
四位全加器实验Verilog
实验四四位全加器一、实验目的l. 用组合电路设计4位全加器。
2.了解Verilog HDL语言的行为描述的优点。
2、实验原理4位全加器工作原理1)全加器除本位两个数相加外,还要加上从低位来的进位数,称为全加器。
被加数Ai、加数Bi从低位向本位进位Ci-1作为电路的输入,全加和Si与向高位的进位Ci作为电路的输出。
能实现全加运算功能的电路称为全加电路。
全加器的逻辑功能真值表如表中所列。
2)1位全加器一位全加器(FA)的逻辑表达式为:S=A⊕B⊕Cin;Co=AB+BCin+ACin其中A,B为要相加的数,Cin为进位输入;S为和,Co是进位输出;这两幅图略微有差别,但最后的结果是一样的。
3)4位全加器4位全加器可看作4个1位全加器串行构成, 具体连接方法如下图所示:采用Verilog HDL语言设计该4位全加器,通过主模块调用子模块(1位全加器)的方法来实现。
3、实验步骤四、实验连线K1-K4:14-11K5-K8:18-15L5-L8:7-10VIJN:83L4:64KHZ:805、心得体会首先,实现这一段全加器代码并不难,但是由于困惑给的三个时钟输入,没有太懂意思,所以只写了全加器控制LED灯的代码;后来问清楚后,运行全加器代码,有错误,原来是建文件时用的是verilog hdl,我建的是其他类型的;后来还有错,原来是把冒号打成分号;编译成功后,LED不亮,后来发现是硬件老化,换了箱子。
这一部分做好后,我准备把控制声音的加上去,本来准备再加一个模块,可是不能有两个顶层块,就对主模块做了补充,用case命令调用不同的状态,因为时间紧迫,所以代码写得比较简单,没有用经典的分频代码。
这里附一小段,是我在研究分频控制时看懂的网上的经典分频代码,适合乐曲自动播放等高级的实现,仅供分享assign preclk=(divider==16383)?1:0;//divider==16383,preclk=1always @(posedge clk) //基频上升沿触发beginif(preclk) //preclk=1divider=origin;elsedivider=divider+1;endalways @(posedge preclk) //调整占空比beginspeaker=~speaker; //2 分频产生方波信号end这部分实现了分频功能,其中origin+divider=16384=2^14,这个数根据自己的需要而定。
Verilog HDL《数字加法器》报告
实验三数字加法器的设计一、实验目的1. 掌握数字加法器的工作原理和逻辑功能。
2. 熟悉ISE集成开发环境。
3. 熟悉ISE中进行开发设计的流程。
二、实验环境1. 装有ModelSim和ISE的计算机。
2. Sword实验系统。
三、实验任务1. 用VerilogHDL语言设计实现4位串行数字加法器和4位并行加法器,在ModelSim上仿真实现。
2. 生成FPGA设计文件,下载到Sword实验系统上验证电路功能。
四、实验原理与实验步骤1. 实验原理数字加法器是一种较为常用的逻辑运算器件,被广泛用于计算机、通信和多媒体数字集成电路中。
广义的加法器包括加法器和减法器,在实际系统中加法器输入通常采用补码形式。
此次实验仅考虑加法运算,分别完成4位的串行进位加法器设计和4位的并行进位加法器设计。
(1) 1 bit全加器最简单的一位全加器的结构,设定两个二进制数字Ai ,Bi和一个进位输入C i 相加,产生一个和输出Si,以及一个进位输出Ci+1。
Si= Ai⊕Bi⊕CiCi+1= AiBi+BiCi+CiAi= AiBi+﹙Ai⊕Bi﹚Ci(2) 4位串行进位加法器n位串行进位全加器原理示意图(3) 4位并行进位加法器超前进位加法器是一种高速加法器,每级进位由附加的组合电路产生,高位的运算不需等待低位运算完成,因此可以提高运算速度。
各级进位信号表达式的推导过程Ci+1 = AiBi+(Ai⊕Bi)Ci设: Gi = AiBiPi= Ai⊕Bi则有: Si = Pi⊕CiCi+1= Gi+PiCi4位并行进位的逻辑表达式为: CC 1= G+PCC 2= G1+P1C1= G1+ P1(G+PC)= G1+ GP1+PP1CC 3= G2+P2C2= G2+ P2(G1+GP1+PP1C)= G2+ G1P2+GP1P2+PP1P2CC 4= G3+P3C3=G3+ P3(G2+…+PP1P2C)= G3+G2P3+G1P2P3+GP1P2P3+PP1P2P3C2. 实验步骤(1)用连续赋值语句实现4位串行进位的全加器,并完成modelsim下的功能仿真。
EDA技术实验报告(1)
实验一利用原理图输入法设计4位全加器一、实验目的:掌握利用原理图输入法设计简单组合电路的方法,掌握MAX+plusII的层次化设计方法。
通过一个4位全加器的设计,熟悉用EDA软件进行电路设计的详细流程。
二、实验原理:一个4位全加器可以由4个一位全加器构成,全加器的进位以串行方式实现,即将低位加法器的进位输出cout与相邻的高位加法器的低位进位输入信号cin相接。
1位全加器f-adder由2个半加器h-adder和一个或门按照下列电路来实现。
半加器h-adder由与门、同或门和非门构成。
四位加法器由4个全加器构成1234三、实验内容:1. 熟悉QuartusII软件界面,掌握利用原理图进行电路模块设计的方法。
QuartusII设计流程见教材第五章:QuartusII应用向导。
2.设计1位全加器原理图(1)生成一个新的图形文件(file->new->graphic editor)(2)按照给定的原理图输入逻辑门(symbol->enter symbol)(3)根据原理图连接所有逻辑门的端口,并添加输入/输出端口(4)为管脚和节点命名:在管脚上的PIN_NAME处双击鼠标左键,然后输入名字;选中需命名的线,然后输入名字。
(5)创建缺省(Default)符号:在File菜单中选择Create Symbol Files for Current File项,即可创建一个设计的符号,该符号可被高层设计调用。
3.利用层次化原理图方法设计4位全加器(1)生成新的空白原理图,作为4位全加器设计输入(2)利用已经生成的1位全加器的缺省符号作为电路单元,设计4位全加器的原理图.4.新建波形文件(file->new->Other Files->Vector Waveform File),保存后进行仿真(Processing ->Start Simulation),对4位全加器进行时序仿真。
EDA 4位加法器
2012—2013学年第1学期实验报告课程名称:EDA技术实用教程第 1 页一、实验目的:1.掌握8位全加器的设计方法2.掌握原理图输入法二、实验内容:设计并实现一个4位全加器三、实验原理:四、实验连线:9个输入管脚-9个拨码开关5个输出管脚-5个发光二级管五、实验步骤:1.创建工程(1)打开QuartusII并新建工程管理窗口,名称为new3;(2)选择目标芯片(ACEX1K:EP1K100QC208-3);(3)设置其它选项,完成后结束。
2.电路的编译和适配(1)新建一个VHDL File,输入半加器源程序,确认无误后,点击Start Compilation按钮进行全程编译,保存为new1;(2)新建一个VHDL File文件,输入全加器源程序,确认无误后在new1上选择File→Creat/Update→Create Symbol Files for Current File,进行全程编译并添加图标,保存为new2。
(3)新建一个Block Diagram/Schematic File图表,双击空白处,将Project菜单下的new2选中导入电路图,再在电路图上右键选择Generate Pins for symbol ports生成管脚使电路完整;(4)复制上图电路为四组,将每组的count与下一组的c1连接,生成完整电路,并保存为new3.pdf文件;3.仿真和分析:(1)新建一个Vector waveform File保存为new3.vwf文件;(2)选择Edit→Insert→Insert Node or Bus,将工程的端口信号节点导入波形编辑器中。
将a1、a2、a3、a4通过CTRL复选后点击右键选择grouping→group进行编组命名为1组,b1、b2、b3、b4命名为2组。
然后进行编译输入波形,设置总线数格式和参数;(3)启动仿真器,直至等待仿真结束并显示成功,将各组数据调整为8进制,仿真完成并观察仿真结果。
4位二进制数加法器实验
《电子线路设计、实验、测试》实验报告实验名称:4位二进制数加法器实验院系:电子信息与通信学院专业班级:电信1401班姓名:XXX学号:xxxxxx时间:地点:南一楼指导教师:2016 年 4 月 13 日4位二进制加法器实验一.实验目的1.熟悉ISE软件的使用2.熟悉并初步掌握Verilog HDL描述电路的方法3.掌握用仿真波形验证电路功能的方法4.熟悉使用ISE软件创建文件并下载到basys2开发板上的过程二.实验内容用ISE软件对4位二进制全加器实验进行仿真,采用4位二进制数加法器的数据流描述方式,由于被加数A和加数B都是4位的,而低位的进位Cin为1位,所以运算的结果可能为5位,用{Cout,Sum}拼接起来表示。
然后对其进行仿真,最后创建约束文件,生成bit文件下载到basys2开发板上,对开发板进行操作。
三.实验原理除本位两个数相加外,还要加上从低位来的进位数,称为全加器。
图1为全加器的方框图。
图2全加器原理图。
被加数Ai、加数Bi从低位向本位进位Ci-1作为电路的输入,全加和Si与向高位的进位Ci作为电路的输出。
能实现全加运算功能的电路称为全加电路。
全加器的逻辑功能真值表如表1中所列。
表1 全加器逻辑功能真值表图1 全加器方框图图2 全加器原理图四位全加器四位全加器如图3所示,四位全加器是由半加器和一位全加器组建而成:图3四位全加器原理图四、实验步骤与要求1.创建一个子目录,并新建一个工程项目。
2.创建一个Verilog HDL文件,并将文件添加到工程项目中并编译整个项目,查看该电路所占用的逻辑单元(Logic Elements,LE)的数量。
3.对设计项目进行时序仿真,记录仿真波形图。
4.根据FPGA开发板使用说明书,对设计文件中的输入、输出信号分配引脚。
即使用开发板上的拨动开关代表电路的输入,用发光二极管(LED)代表电路的输出。
5.重新编译电路,并下载到FPGA器件中。
改变拨动开关的位置,并观察LED灯的亮、灭状态,测试电路的功能。
EDA实验报告4位全加器实验报告
EDA实验报告书姓名 XXX 学号 XXXXXXX 实验时间课题名称全加器实验目的1.掌握MAX+plusⅡ的使用方法。
2.掌握原理图输入的设计方法。
3.学习利用一位全加器设计多位全加器的方法。
设计要求1.利用MAX+plusⅡ软件进行原理图输入设计一位全加器。
2.进行编译、仿真、测试。
3.在一位全加器的基础上设计四位全加器,进行编译、仿真、测试、观察实验结果。
设计思路计算机中的加法器一般就是全加器,它实现多位带进位加法。
图中的“进位入”Ci-1指的是低位的进位输入,“进位出”指的是本位的进位输出。
一位全加器的真值表见下表:111111------⋅+⋅+⋅=⋅⋅+⋅⋅++⋅=iiiiiiiiiiiiiii iiiiiCBCABACCBACBAC B AC BAS输入输出Ci-1Bi Ai Si Ci0 0 0 0 00 0 1 1 00 1 0 1 00 1 1 0 11 0 0 1 01 0 1 0 11 1 0 0 11 1 1 1 1设计原理图及源程序仿真波形图实验结果问题讨论1.试比较利用卡诺图直接设计四位全加器和利用一位全加器设计四位全加器这两种方法的优缺点。
答:卡诺图直接设计四位全加器的优点是:没有进行产生逻辑,运算速度快。
一位全加器设计四位全加器是串行进位方式是将全加器级联构成多位加法器。
通常,并行加法器比串行级联加法器占用更多的资源,并且随着位数的增加,相同位数的并行加法器比串行加法器的资源占用差距也会越来越大。
2.本实验中设计的4位全加器有何缺陷?答:这种全加器的最大缺点是运算速度慢。
在最不利的的情况下,做一次加法运算需要经过四个全加器的传输延迟时间才能得到稳定可靠的运算结果教师评分教师签名日期操作成绩报告成绩。
EDA实验报告
加法器一、用原理图的方式实现八位加法器实验目的:设计4位加法器(用verilog语言编写),然后以原理图的方式构造8位加法器。
实验步骤:1、设计4位加法器编程源代码:module add4(icount,ina,inb,cout,sout);input icount;input [3:0]ina,inb;output [3:0]sout;output cout;assign {cout,sout}=ina+inb+icount;endmoduleModelsim仿真:仿真分析:由仿真结果可以看到:当有进位(icount=1’b1)时,{cout,sout}=ina+inb+icount;当进位为0(icount=1’b0){cout,sout}=ina+inb;所以以上设计的4位加法器是可行的!2、将.v转换生成4位加法器的电路模块生成电路模块为:3、使用add4模块构造8位加法器电路图如下:以上设计电路可以实现8位数据宽度A[7:0]、B[7:0]的相加,首相通过inst1模块实现A、B的低四位相加,将相加结果存到C的低四位中,并将进位端接至inst的进位输入端(icount),inst模块实现A、B的高四位相加,相加结果存到C高四位,并将进位存在count中。
二、用原理图的方式实现八位加法器实验目的:设计2位加法器(用原理图的方式构造),然后以原理图的方式构造4位加法器。
实验步骤:1、设计2位全加法器原理图如下:功能仿真:2、将2位全加法器转换生成电路模块生成电路模块为:3、使用add2模块构造4位加法器电路图如下:4、功能仿真:如以上仿真截图所示,A[3:0]、B[3:0]均为四位位宽的数据,Ci为前级两位加法器的进位(此次由于没有前级加法器模块故设置为0),相加后得到四位位宽的C[3:0]和进位Co,由仿真结果易知,{Co,C}=A+B+Ci;故以两位全加法器为基础的四位加法器功能符合设计要求。
四位全加器的VHDL与VerilogHDL完成
use ieee.std_logic_1164.all;entity h_adder isport (a,b:in std_logic;so,co:out std_logic); ――定义输入、输出端口end h_adder;architecture bh of h_adder isbeginso<=a xor b; ――“异或”运算co<=a and b; ――“与”运算end bh;(二)全加器1位全加器可由两个半加器组成,在半加器的基础上,采用元件调用和例化语句,将件连接起来,而实现全加器的VHDL编程和整体功能。
全加器包含了两个半加器和一个或门。
在此基础上可设计出四位全加器。
六、四位全加器四位全加器VHDL程序代码如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity add4 isport(cin:in std_logic;a,b:in std_logic_vector(3 downto 0);s:out std_logic_vector(3 downto 0);cout:out std_logic);end add4;architecture beh of add4 issignal sint:std_logic_vector(4 downto 0);signal aa,bb:std_logic_vector(4 downto 0);beginaa<='0' & a(3 downto 0); --4位加数矢量扩为5位,提供进位空间bb<='0' & b(3 downto 0);sint<=aa+bb+cin;s(3 downto 0)<=sint(3 downto 0);cout<=sint(4);end beh;四位全加器VerilogHDL程序代码如下:module add(A,B,CI,CO,S);parameter N=4;input [N:1] A,B;input CI;output CO;output [N:1] S;assign {CO,S}=A+B+CI;endmodule四位全加器常用三种编程方法:/*module add(s,co,a,b,ci);//行为描述法output[3:0] s;output co;input[3:0] a,b;input ci;reg co;reg[3:0] s;always@(*)begin{co,s}=a+b+ci;endendmodule*/module add(s,co,a,b,ci);//结构描述法output[3:0] s;output co;input[3:0] a,b;input ci;full_add1 f0(a[0],b[0],ci,s[0],ci1); full_add1 f1(a[1],b[1],ci1,s[1],ci2); full_add1 f2(a[2],b[2],ci2,s[2],ci3); full_add1 f3(a[3],b[3],ci3,s[3],co); endmodulemodule full_add1(a,b,cin,sum,cout); input a,b,cin;output sum,cout;wire s1,m1,m2,m3;and(m1,a,b),(m2,b,cin),(m3,a,cin);xor(s1,a,b),(sum,s1,cin);or(cout,m1,m2,m3);endmodule/*module add(co,s,a,b,ci);//数据流法output[3:0] s;output co;input[3:0] a,b;input ci;assign {co,s}=a+b+ci; endmodule*/。
实验二 基于HDL门级建模的4位加法器设计
实验二基于Verilog门级建模的四位加法器设计【实验器材】PC机,DP-FPGA实验箱【实验目的】1、掌握V erilog语言的语法规则;2、熟悉V erilog门级建模方法;3、熟悉基于V erilog门级建模的组合逻辑电路设计方法。
【实验原理】1、四位全加器分层次实现的原理分层次电路设计方法指的是在电路设计中,将两个或多个模块组合起来描述电路逻辑功能的设计方法,4位全加器可以由4个全加器构成,而每个全加器又可以由半加器和或门构成,而或门可由异或门和与门构成。
2、半加器的实现原理半加器全加器3、全加器的实现原理【实验内容与步骤】1、半加器的设计新建工程,新建Verilog Moudle,采用门级建模方法在HDL编辑器中输入半加器的HDL代码,保存并测试其功能。
2、全加器的设计在半加器设计的基础上,新建Verilog Moudle,将半加器作为底层模块,通过调用此模块以及其它逻辑门,采用门级建模方法在HDL编辑器中输入全加器的HDL代码,保存并测试其功能。
3、四位全加器的设计在全加器设计的基础上,新建Verilog Moudle,将全加器作为底层模块,通过调用此模块以及其它逻辑门,采用门级建模方法在HDL编辑器中输入四位全加器的HDL代码,保存并测试其功能。
4、四位全加器的综合、实现与下载按照Xilinx ISE设计流程,完成四位全加器的整个设计流程。
5、四位全加器的原理图设计(*)尝试采用原理图输入方式完成四位全加器的设计。
【预习要求】1、复习回顾《数字逻辑》课程中加法器部分的内容,掌握四位全加器实现的原理,并画好电路图;2、熟悉V erilog门级建模方法,编写半加器、全加器、四位全加器的V erilog HDL代码,待实验时调试。
四位全加器
实验四四位全加器一、实验目的l. 用组合电路设计4位全加器。
2.了解Verilog HDL语言的行为描述的优点。
二、实验原理4位全加器可看作4个1位全加器串行构成, 具体连接方法如下图所示:采用Verilog HDL语言设计该4位全加器,通过主模块调用子模块(1位全加器)的方法来实现。
(S表示输出结果;C表示进位输出)一位全加器的数学表示如下:(S是1位输出结果,C是1位进位输出)S=A⊕B⊕CinC=AB+BCin+ACin一位全加器可以通过两种方式实验,1)门级建模:xor (s11,a,b);and(c1,a,b);xor (s,s11,cin);and(c22,s11,cin);xor(cc,c22,c11);2)数据流方式:assign {s,cc}=a+b+cin;四位全加器:S是4位输出结果,C0、C1、C2、CC为进位输出S[0]=A[0]⊕B[0]⊕CinC0=A[0]B[0]+B[0]Cin+A[0]CinS[1]=A[1]⊕B[1]⊕C0C1=A[1]B[1]+B[1]C0+A[1]C0S[2]=A[2]⊕B[2]⊕C1C2=A[2]B[2]+B[2]C1+A[2]C1S[3]=A[3]⊕B[3]⊕C2C3=A[3]B[3]+B[3]C2+A[3]C2三、实验内容l. 用Verilog HDL语言设计4位全加器(调用子模块的方法)。
2、根据led灯显示的结果,可以通过将相应的控制信号连接至“扬声器”的输入端VIN,使得4位全加器输出不同数值时,扬声器能自动调节,并发出不同的“嘀嘀嗒嗒”的声音。
3. 锁定引脚, 并下载验证之。
四、管教配置其中:clk1k与clk4k用于控制扬声器的驱动脉冲信号。
五、实验连线K1-K4:14-11K5-K8:18-15L5-L8:7-10VIN:83L4:6500KHZ:8KHZ:34KHZ:801024HZ:81六、实验代码:module shiyan4(s,cc,a,b,cin,speaker,clk3,clk8,clk4,clk500); output [3:0] s;output reg speaker;output cc;input [3:0] a,b;input cin;input clk8,clk3,clk4,clk500;wire c0,c1,c2;yiweiadd add0(s[0],c0,a[0],b[0],cin);%子模块调用yiweiadd add1(s[1],c1,a[1],b[1],c0);yiweiadd add2(s[2],c2,a[2],b[2],c1);yiweiadd add3(s[3],cc,a[3],b[3],c2);always @(a or b)begincase(s)4'b0000: speaker=clk3;4'b0001:speaker=clk4;4'b0010:speaker=clk8;4'b0011:speaker=clk500;default:;endcaseendendmodule子模块:module fulladd(s,cc,a,b,cin);output s,cc;input a,b,cin;wire c11,c22,s11;xor (s11,a,b);and(c11,a,b);xor (s,s11,cin);and(c22,s11,cin);xor(cc,c22,c11);endmodule七、实验心得1扬声器的实现有两种方法:一是用多个时钟来表示不同的计算结果;二是用一个时钟,通过分频来实现不同的频率的声音。
EDA实验报告(四位全加器的实现)
实验一四位全加器的实现一、实验目的1、掌握Quartus9.0图形编辑输入法2、掌握Quartus环境下文件的编译、仿真及下载方法3、了解VHDL语言的设计流程4、掌握quartus环境下VHDL的使用方法二、实验内容1、用图形/原理图法实现4位全加器。
2、用VHDL语言实现4位全加器,必须使用元件例化。
3、仿真并通过。
3、下载到实验板,并验收三、实验步骤1、图形编辑发设计4位加法器(1)新建图形文件,设计一位全加器,逻辑电路图如下图(图1-1)所示。
图1-1(2)将设计好的一位全加器进行例化,操作为file→Create/Update→Create symbol files for currentfile,完成此操作后会在元器件符号表里找到刚刚做好的一位全加器。
(3)再新建一个图形文件,用四个已经做好的一位全加器级联成一个四位全加器,其逻辑原理图如图1-2所示。
编辑好后保存文件,在文件列表里找到该文件,右键→Set as Top-level Entity,将其设置为顶层文件,点击编译按钮就行编译。
图1-2(4)新建波形文件,赋予每个输入端口某种输入信号,保存波形文件,进行功能仿真,观察输出端波形与输入信号关系是否正确。
若不正确,查找问题所在并解决问题;若正确,则进行管脚分配,分配完毕后再编译一次使分配生效,连接DE2开发板到电脑,将文件下载到开发板进行验证。
2、用VHDL语言设计4位加法器(1)新建一个VHDL源文件,文件名为adder1.vhd,使用VHDL实现一位全加器,其VHDL代码如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY adde1r ISPORT(A,B,Ci:IN STD_LOGIC;S,Co:OUT STD_LOGIC);END adder1;ARCHITECTURE qadder OF adder1 ISBEGINPROCESS(A,B,Ci)VARIABLE n1,n2,n3:STD_LOGIC;BEGINn1:=A AND B;n2:=A XOR B;n3:=Ci AND n2;Co<=n3 OR n1;S<=n2 XOR Ci;END PROCESS;END qadder;(2)再新建一个VHDL源文件,命名为adder4.vhd,在这里将adder 一位全加器例化并使用它,做成四位全加器,代码如下:library ieee;use ieee.std_logic_1164.all;entity adder4 isport(A,B:in std_logic_vector(3 downto 0);S:out std_logic_vector(3 downto 0);Co:out std_logic;Ci:in std_logic);end adder4;architecture adder_4 of adder4 iscomponent adderport(A:in std_logic;B:in std_logic;Ci:in std_logic;Co:out std_logic;S:out std_logic);end component;signal c1,c2,c3:std_logic;beginu1:adder port map(A(0),B(0),Ci,c1,S(0));u2:adder port map(A(1),B(1),c1,c2,S(1));u3:adder port map(A(2),B(2),c2,c3,S(2));u4:adder port map(A(3),B(3),c3,Co,S(3));end adder_4;(3)保存文件后将adder4设置为顶层文件并编译,编译通过后按照与图形编辑发一样的仿真、管脚分配方式进行操作,最后下载到开发板验证四、实验现象两种方式实现的四位加法器下载到DE2开发板后都可正常工作,其中使用SW0作为低位的进位,SW4~1作为数据B,SW8~5作为数据A,LDG3~0作为输出的结果,LEDG4作为输出的进位。
EDA-四位二进制加法器设计实验步骤
作业2:4位加法器设计(1)任务设计带进位的4位二进制加法器。
(2)要求要考虑低位的进位。
进行仿真。
用ispLSI1016E-80LJ44实现。
步骤一:打开ispDesign EXPERT,单击file,选择new project,弹出如下创建新项目对话框,建子目录,在“保存在(I)”栏,用鼠标点击▼,任选可用区(盘),如 D:区(盘),用鼠标点击从右数的第三个小图标(新建文件夹),自动生成新建文件夹子目录,起一个项目文件夹名(应为便于你记住的英文或拼音),如liu2009,并用鼠标双击文件夹名。
选择 project type:Verilog HDL 。
步骤二:给项目起名(应为便于你记住的英文或拼音,如liu),用鼠标点击保存(S)。
选中器件为ispLSI1016E-80LJ44。
并用鼠标双击下图第一行,并给项目源文件加标题名如liu蓝条示(如将有多个项目源文件,加标题名时要加以区分,这里只针对一题,为了简单,标题名用 liu)。
图1.步骤三:点击Source下拉选New,弹出窗口,选择上面左下角的Verilog Module ,设置名称如图所示:步骤四:在TextEditer中编辑输入Verilog 语言源程序:module liu1(a,b,c1,cout,sum);output cout;output[3:0] sum;input[3:0] a,b;input c1;assign {cout,sum}=a+b+c1;endmodule步骤五:在Text Editor中点File下拉Save As,将源文件Liu1.v存D盘Liu2009,退出。
选择tools ,synplicity synplify synthesis,点击菜单栏上的“P”,ADD :步骤六:在如下界面下部点击Chang,确认选器件ispLSI1016E-80LJ44,并运行。
通过Done!在该界面点File下拉Save As,以Liu1保存,退出。
EDA实验四 四位全加器设计
物理与电子工程学院实验报告(2020----2021学年第 1学期)课程名称:EDA技术实验实验名称:四位全加器设计专业班级:学号:姓名:实验时间:2020年11月4日(第十周)注:报告内容根据具体实验课程或实验项目的要求确定,一般包括实验目的、实验仪器、原理摘要、数据记录及结果分析等。
如纸张不够请自行加纸。
一、实验目的:通过实验让学生熟悉Quartus Ⅱ的VHDL 文本设计流程全过程,掌握组合逻辑电路的文本输入设计法,通过对设计电路的仿真和硬件验证,让学生进一步了解加法器的功能。
二、实验内容1. 编写1位全加器full_add1的VHDL 源程序,并进行编译。
2. 利用元件例化语句编写4位全加器full_adder4的VHDL 源程序,并进行编 译和仿真。
3. 锁定引脚,建议选择电路模式1:键1输入4位加数,键2输入4位被加数, 键8输入Cin ,数码管5显示相加和,D8显示进位CO 。
4.编程下载与硬件验证。
三、实验条件1、开发软件: QuartusII 9.0。
2、实验设备:GW48-PK2++型 EDA 实验开发系统3、拟用芯片:EP1C6Q240C8N 。
四、实验设计1、系统的原理框图4位全加器可看作4个1位全加器串行构成,具体连接方法如下图所示:图3-1 由1位全加器构成4位全加器连接示意图b sb sb sb sB 3 A 3 B 2 AS 3 C O S 22、VHDL源程序3、管脚锁定信号名实验箱位置锁定目标器件引脚(EP1C6Q240)Cin键8PIN_173a[0...3]键1PIN_233、234、235、236 b[0...3]键2PIN_237、238、239、240co D8PIN_160S[0...3]数码管5PIN_13、14、15、16备注验证设备:GW48-PK2实验开发系统五、实验结果及总结1、系统时序仿真情况2、硬件验证情况3、实验心得通过这次实验我掌握了组合逻辑电路的文本输入法,了解了加法器的功能写到了先通过一位加法器,扩展到四位加法器,在老师的帮助下收获良多。
四位二进制全加全减器
数字逻辑设计及应用课程设计组合逻辑电路课程设计四位二进制全加/全减器姓名:学号:指导教师:一、任务与要求使用74LS83构成4位二进制全加/全减器。
具体要求:1)列出真值表;2)画出逻辑图3)用Verilog HDL进行仿真二、设计思路1)原理分析:74LS83是四位二进制先行加法器,所以直接接入输入可以得到全加器,下面主要讨论四位二进制全减器的构造。
对于减法,可以作相应的代数转换编程加法,二进制减法也是如此,原理如下:这样就把减法变为了加法,而[]=,这里利用补码性质,具体实现方法就是:逐位取反并在最低权一位加上1。
在全减器中,进位输入Cin变为借位输出,所以要减去Cin,且全加器的输出端Cout为进位输出,全减器为借位输出,所以将So取反后即可得到全减器的借位输出。
在以上分析基础可知,可在全加器的基础上设计全减器。
四位二进制全加/全减器真值表如下:(因原始真值表行数太过庞大,列出部分真值的例子)真值表A3 A2 A1 A0 B3 B2 B1 B0 Co Bo S0 S1 S2 S3C/B0 0 1 0 0 1 0 1 0 1 0/1 1/1 1/0 1/1 01 0 1 1 1 1 1 0 1 1 1/1 0/1 0/0 1/1 00 1 1 0 0 0 1 1 0 0 1/0 0/0 0/1 1/1 01 1 1 1 0 0 1 1 1 0 0/1 0/1 1/0 0/0 00 0 1 0 0 1 0 1 0 1 1/1 0/1 0/0 0/0 11 0 1 1 1 1 1 0 1 1 1/1 0/1 1/0 0/0 10 1 1 0 0 0 1 1 0 0 1/0 0/0 1/1 0/0 11 1 1 1 0 0 1 1 1 0 0/1 0/0 1/1 1/1 1*表格后半部分内容,斜线前为全加结果,斜线后为全减结果*XOR门的函数为:,所以当EN=A=0时,得到F=B与第二输入相同,当EN=A=1时,F=B’与第二输入相反。
EDA实验4位加法器
实验7 4位二进制并行加法器的设计一、实验目的学习加法器的设计、仿真和硬件测试,进一步熟悉Verilog设计技术。
二、实验条件1、PC机一台。
2、开发软件:Q uartusII。
3、实验设备:GW48-CK EDA实验开发系统。
4、选用芯片:ACEX系列EP1K30TC144-3。
三、实验原理多位加法器的构成有两种方式:并行进位和串行进位。
并行进位加法器设有进位产生逻辑,运算速度较快;串行进位方式是将全加器级联构成多位加法器。
并行进位加法器通常比串行级联加法器占用更多的资源。
随着位数的增加,相同位数的并行加法器与串行加法器的资源占用差距也越来越大。
因此,在工程中使用加法器时,要在速度和容量之间寻找平衡点。
实践证明,4位二进制并行加法器和串行级联加法器占用几乎相同的资源。
这样,多位加法器由4位二进制并行加法器级联构成是较好的折中选择。
图1 4位二进制并行加法器原理图四、实验内容1、编写图1 所示4位二进制并行加法器的Verilog程序,并在Quartus II上对4位加法器进行编译、仿真。
2、实验内容2:引脚锁定以及硬件下载测试。
目标器件是ACEX1K30,建议选实验电路模式1,键1可输入4位加数(此值显示于键对应的数码管上);键3可输入4位被加数(此值显示于键对应的数码管上);加法器最低进位位由键8控制;加数和显示于数码管5;加法器溢出位由发光管D8显示。
五、实验报告:将实验原理、硬件测试实验结果写进实验报告。
六、参考资料1、4位加法器的参考程序:module adder4(cout,sum,ina,inb,cin);output[3:0] sum;output cout;input[3:0] ina,inb;input cin;assign{cout,sum}=ina+inb+cin;endmodule2、参考管脚设定图2 4位加法器参考管脚设定实验报告:根据实验内容写出实验报告,包括实验目的,实验原理,实验内容,程序设计或原理图;给出程序分析报告、仿真波形图、硬件下载实验结果及其分析报告。
武汉理工大学EDA实验原理图输入法输入的4位全加器和Verilog HDL语言输入的16进制频率计
学生实验报告书实验类别EDA实验学院信息工程学院专业通信工程班级信息SY1001班姓名龙涛指导教师聂明新2012 年12 月30 日实验课程名称:EDA技术与应用图2 1位全加器电路图d:\adder中,取名为h_adder.bdf。
4)建立原理图文件为顶层设计工程。
然后将此文件h_adder.bdf设定为工程。
5)绘制半加器原理图。
将元件放入原理图编辑窗口,按图1接好电路。
6)仿真测试半加器。
全程编译后,打开波形编辑器。
选择File→new命令,在New 窗口中选择Vector Waveform File选项。
设置仿真时间区域,编辑输入波形,仿真器参数设置,启动仿真器,观察仿真结果。
3、将设计项目(一位半加器)设置成可调用的元件为了构成全加器的顶层设计,必须将以上设计的半加器h_adder.bdf设置成课调用的底层元件。
在半加器原理图文件处于打开的情况下,选择菜单File→Create/Update→Create Symbol Files for Current File,即可将当前电路图变成一个元件符号存盘,以便在高层次设计中调用。
图3 半加器示意图4、设计全加器顶层文件为了建立全加器顶层文件,必须打开一个原理图编辑窗口,方法同前。
1)选择菜单File→new→Block Diagram/Schematic File,将其设置成新的工程,命名为f_adder.bdf。
2)在打开的原理图编辑窗口中,双击鼠标,选择Project下先前生成的元件h_adder和若干元器件,按图2连接好一位全加器电路图。
3)仿真测试全加器。
全程编译后,打开波形编辑器。
选择File→new命令,在New窗口中选择Vector Waveform File选项。
设置仿真时间区域,编辑输入波形,仿真器参数设置,启动仿真器,观察仿真结果。
5、将设计项目(一位全加器)设置成可调用的元件为了构成4位全加器的顶层设计,必须将以上设计的全加器f_adder.bdf设置成课调用的底层元件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学生实验报告书
实验类别EDA实验
学院信息工程学院
专业通信工程
班级信息SY1001班
姓名龙涛
指导教师聂明新
2012 年12 月30 日实验课程名称:EDA技术与应用
图2 1位全加器电路图
d:\adder中,取名为h_adder.bdf。
4)建立原理图文件为顶层设计工程。
然后将此文件h_adder.bdf设定为工程。
5)绘制半加器原理图。
将元件放入原理图编辑窗口,按图1接好电路。
6)仿真测试半加器。
全程编译后,打开波形编辑器。
选择File→new命令,在New 窗口中选择Vector Waveform File选项。
设置仿真时间区域,编辑输入波形,
仿真器参数设置,启动仿真器,观察仿真结果。
3、将设计项目(一位半加器)设置成可调用的元件
为了构成全加器的顶层设计,必须将以上设计的半加器h_adder.bdf设置成课调用的底层元件。
在半加器原理图文件处于打开的情况下,选择菜单File→Create/Update→Create Symbol Files for Current File,即可将当前电路图变成一个元件符号存盘,以便在高层次设计中调用。
图3 半加器示意图
4、设计全加器顶层文件
为了建立全加器顶层文件,必须打开一个原理图编辑窗口,方法同前。
1)选择菜单File→new→Block Diagram/Schematic File,将其设置成新的工程,
命名为f_adder.bdf。
2)在打开的原理图编辑窗口中,双击鼠标,选择Project下先前生成的元件
h_adder和若干元器件,按图2连接好一位全加器电路图。
3)仿真测试全加器。
全程编译后,打开波形编辑器。
选择File→new命令,在New
窗口中选择Vector Waveform File选项。
设置仿真时间区域,编辑输入波形,
仿真器参数设置,启动仿真器,观察仿真结果。
5、将设计项目(一位全加器)设置成可调用的元件
为了构成4位全加器的顶层设计,必须将以上设计的全加器f_adder.bdf设置成课调用的底层元件。
在全加器原理图文件处于打开的情况下,选择菜单File→Create/Update→Create Symbol Files for Current File,即可将当前电路图变成一个元件符号存盘,以便
在高层次设计中调用。
图4 一位全加器示意图
6、四位全加器设计
为了建立4位全加器顶层文件,必须再打开一个原理图编辑窗口,方法同前。
1)选择菜单File→new→Block Diagram/Schematic File,将其设置成新的工程,
命名为adder4b.bdf。
2)在打开的原理图编辑窗口中,双击鼠标,选择Project下先前生成的元件
f_adder和若干元器件,连接好4位全加器电路图。
3)仿真测试全加器。
全程编译后,打开波形编辑器。
选择File→new命令,在New
窗口中选择Vector Waveform File选项。
设置仿真时间区域,编辑输入波形, 仿
真器参数设置,启动仿真器,观察仿真结果。
六、实验结果与分析
1.半加器仿真波形
图5 半加器仿真波形
由仿真波形分析可得,当a,b输入全0时,co=0,so=0;当a=0,b=1时,co=0,so=1;当
a=1,b=0时,co=0,s0=1;当a,b全1时,co=1,so=0。
仿真结果与半加器真值表表1相同,半加器设计成功。
2.一位全加器的仿真波形图
图6 一位全加器的RTL图
图7 一位全加器的仿真波形图
由仿真波形分析可得,当ain,bin,cin为全0时,cout=0,sum=0;当ain=0,bin=0,cin=1时,cout=0;sum=1; 当ain=0,bin=1,cin=0时,cout=0;sum=1; 当ain=0,bin=1,cin=1时,cout=1;sum=0; 当ain=1,bin=0,cin=0时,cout=0;sum=1; 当ain=1,bin=0,cin=1时,cout=1;sum=0; 当ain=1,bin=1,cin=0时,cout=1;sum=0; 当ain,bin,cin为全1时,cout=1,sum=1。
由此可得仿真波形与实际一位全加器输出一致。
3.四位全加器仿真波形
图8四位全加器RTL
图9 四位全加器仿真波形
由仿真波形分析可得,当A0,A1,A2,A3,B0,B1,B2,B3,C0为全0时,COUT=0,D0=0,D1=0,D2=0,D3=0;当A0=0,A1=0,A2=0,A3=0,B0=0,B1=0,B2=0,B3=0,C0=1时,COUT=0,D0=1,D1=0,D2=0,D3=0; 当A0=0,A1=0,A2=0,A3=0,B0=0,B1=1,B2=0,B3=0,C0=1时,COUT=0,D0=0,D1=1,D2=0,D3=0; 当A0=0,A1=0,A2=0,A3=0,B0=1,B1=0,B2=1,B3=0,C0=1时,COUT=0,D0=0,D1=1,D2=1,D3=0;其他输入分析同理,只分析前4组。
可得,仿真波形结果与实际四位全加器输出结果相同。
附录
四位全加器原理图:
实验课程名称:EDA技术与应用
图1 测频控制电路的RTL图
图2测频控制电路元件图
②32位锁存器程序如下:
module locker(LOCK,DIN,QOUT);
input LOCK; //锁存脉冲,下降沿有效。
input[31:0] DIN; //锁存值输入。
output[31:0] QOUT; //锁存值。
reg[31:0] QOUT;
always @(negedge LOCK)
begin
if(!LOCK)
QOUT =DIN;
else
QOUT = QOUT;
end
endmodule
图3 32位锁存器的RTL图
图4 32位锁存器元器件图
③计数器程序如下:
module counter(CLR,F_IN,q,ENABL);
input CLR,F_IN, ENABL;
output [31:0]q;
reg [31:0]q;
always @(posedge F_IN )
begin
if(!CLR) q[31:0]=0;
else if(ENABL)
begin
if(q[31:0]==32'Hffffffff) q[31:0]=0;
else q[31:0]=q[31:0]+1;
end
else
q=0;
end
endmodule
图5 32位计数器的元器件图
4频率计顶层文件设计
频率计顶层设计用原理图的输入方式,前面已经创建了div,counter,locker三个底层文件,调用它们创建频率计顶层文件的原理图。
图6 8位十六进制频率计RTL图
六.实验结果及分析
1.测频控制电路仿真波形:
图7测控控制电路时序仿真图
由仿真波形分可得,当系统时钟CLK设定为2ms,经过1000分频后便可以产生周期为2s的闸门信号CNT_EN,锁存信号LOAD,清零信号CLR。
仿真波形输出与实际要求相符合。
2 .32位锁存器仿真波形:
图8 32位锁存器的时序仿真图
由仿真波形分析可得,采用周期为2s的LOCK信号的下降沿对计数模块的计数
结果进行锁存,在仿真中LOCK信号第一个高电平期间,DIN=277FEDD4,在LOCK
信号下降沿到来时,QOUT输出为277FEDD4,可见DIN信号锁存到了QOUT端。
LOCK信号的第二个高电平期间分析同理。
可见,在锁存模块中,采用DIN信号的
下降沿对计数模块的计数结果进行锁存,锁存时间由LOCK的周期确定,在仿真中
将输入值DIN设定为随机值,LOCK设定为周期为2s的方波,QOUT为锁存结果
输出端,输出端结果在LOCK下降沿到来时刻改变,其余时刻保持为锁存状态满足
实际要求。
3.计数器仿真波形:
图9 32位计数器的时序仿真图
由仿真波形分析可得,F_IN输入周期为40ms的方波,当CLR信号和ENABL信号都为持续时间为1s的高电平期间,计数器开始计数,q的输出为十进制的25。
可见,1s/40ms=25,符合实际要求。
4频率计顶层文件仿真波形:
图10 8位十六进制频率计时序仿真波形
由仿真波形分析可得,当CLK输入周期为2ms的方波,F_IN输入周期为40ms的方波时,QOUT输出为25,这与前面设计计数器时所得到的值一致,并通过锁存器带有锁存功能,直接显示25,这与实际要求相符合。