资源描述:
《fpga四位加法器实验报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、题目:含异步清0和同步使能的4位加法计数器一.实验冃的.学习时序电路的设计、仿真和硬件测试,进一步熟悉VHDL技术。二.实验原理.如图是一含计数使能、异步复位和计数值并行预置功能4位加法计数器,4位锁存器;「st是异步清0信号,高电平有效;elk是锁存信号;D[3..O]是4位数据输入端。ENA是使能信号,当ENA为T时,多路选择器将加1器的输出值加载于锁存器的数据端;当ENA为O时将“0000”加载于锁存器。三.实验内容.设计一个含异步清0和同步使能的4位加法计数器;实现对输入时钟(elk)的计数。任务分析:在RST=1,ENA=
2、1时,系统对输入时钟进行计数,所计数值输出至OUTY(3DOWNTO0),当计数满15时,产生一个进位,输出至COUT,同时OUTY溢出归零;如果RST二1,ENA二0吋,保持原来的计数值不变。如果RST二0,置输出信号为0;1)异步复位,则输入信号有复位信号RST2)同步使能,则输入信号有使能信号ENA3)要求同步的时序,贝I」输入信号有时钟CLK在QuartusI【上对下列程序进行编辑、编译、综合、适配、仿真。moduleCNT4B(CLK,RST,ENA,CLK_1,RST_1,ENA_1,OUTY,COUT);inputCL
3、K,RST,ENA;outputCLK_1,RST_1,ENA_1;output[3:0]OUTY;outputCOUT;reg[3:0]OUTY;regCOUT;wireCLK_1;wireRST_1;wireENA_1;assignCLK_1=CLK;assignRST_1=RST;assignENA_1=ENA;always@(posedgeCLKornegedgeRST)beginif(!RST)beginOUTYv二4'b0000;COUT<=l'bO;endelseif(ENA)BeginOUTY<=OUTY+1;COU
4、T<=OUTYrO]&OUTY[1]&OUTY[2]&OUTY[3];endendendmodule一.实验步骤.1.在QUARTUSII软件下创建一工程,工程名为CNT4B,芯片名为EP2C35F672C6;2.新建Verilog语言文件,输入以上Verilog语言源程序,并将程序命名为CNT4B.vhd,保存在与工程相同的文件夹屮;3.进行功能仿真、全编译、时序仿真,如出现错误请按照错误提示进行修改,保证设计的正确性。其初始值、功能仿真波形和时序仿真波形分别如下所示。4锁定引脚.rI[)】X)(⑻X【9】X[0]X【ll畑[0]
5、I!!!:::!
6、!:::PINN2510wlsCLKPING26KEYORSTPINN23KEY1OUTY[OJPINAC21LEDR[7]OUTY[1]PINAA14LEDR[81OUTY[2]PINY13LEDR19JOUTYf3]PINAA13LEDR[10JCOUTPINY12LEDG[8]CLK1PINAE22LEDGfO]RST1PIN.AF22LEDG[11ENA1PINAE23LEDR[0]锁好引脚,进行全编译(compile),重新布局布线,时序仿真。仿真波形如下5.引脚锁定,仿真结果核对无误后,准备下载,采用J
7、ATG方式进行下载,通过ENA,CLK,RST输入,观察的LEDR[0],LEDR[7],LEDR[8],LEDR[9],LEDR[10],LEDG[0],LEDG[1],LEDG[81亮灭验证计数器的逻辑功能。CLKAJ"LTLnj"Lnjnjm_njn>TLrLn_rLrLn_rLr3Icut」courA»A1ENKAiJm_iA1..1"皿ovnAti■[<7iFhbmhmhKTA1J3BT.IAlT"[L2nLL1J-拨动ENA键,给出触发的上升沿,得到采集数据如下:结果验证正确。五思考题.1改写例2・1,用两个always
8、语句实现模块功能.程序如下:moduleCNT4B(CLKRST,ENA,CLK_1,RST_1,ENA_1,OUTY,COUT);inputCLK,RST,ENA;outputCLK_1RST_1,ENA_1;output[3:0]OUTY;outputCOUT;reg[3:0]OUTY;regCOUT;regCLK_1;regRST_1;regENA_1;always@(CLKorRSTorENA)beginCLK_1=CLK;RST_1=RST;ENA.l=ENA;endalways@(posedgeCLKornegedgeR
9、ST)beginif(!RST)beginOUTYv=4'bOOOO;COUT<=VbO;endelseif(ENA)beginOUTY<=OUTY+1;COUT<=OUTYfO]&OUTYJ1]&OUTY[2]&OUTY[3];cn