广东工业大学VHDL实验报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1VHDL与集成电路设计实验报告时间:第7周周四实验一应用QuartusII完成基本组合电路设计一、实验目的:熟悉QuartusⅡ的VHDL文本设计流程全过程,学习简单组合电路的设计、多层次电路设计、仿真和硬件测试。二、实验内容:首先利用QuartusⅡ完成2选1多路选择器(例1)的文本编辑输入(mux21a.vhd)和仿真测试等步骤,给出图1-1所示的仿真波形。最后在实验系统上进行硬件测试,验证本项设计的功能。三、实验程序:...COMPONENTMUX21APORT(a,b,s:INSTD_LOGIC;y:OUTSTD_LOGIC);ENDCOMPONENT;...u1:MUX21APORTMAP(a=a2,b=a3,s=s0,y=tmp);u2:MUX21APORTMAP(a=a1,b=tmp,s=s1,y=outy);ENDARCHITECTUREBHV;【例1】ENTITYmux21aISPORT(a,b,s:INBIT;y:OUTBIT);ENDENTITYmux21a;ARCHITECTUREoneOFmux21aISBEGINPROCESS(a,b,s)BEGINIFs='0'THENy=a;ELSEy=b;ENDIF;ENDPROCESS;ENDARCHITECTUREone;五、实验结果及分析仿真结果:仿真结果分析:这是一个选择输出功能,当s为高电平时,输出b;当s为低电平时,输出为a。输出存在延迟。2VHDL与集成电路设计实验报告3时间:第8周周四实验四:移位相加硬件乘法器设计一、实验目的:学习应用移位相加原理设计8位乘法器。二、实验内容:(1)实验内容1:根据给出的乘法器逻辑原理图及其各模块的VHDL描述,在QuartusII上完成全部设计,包括编辑、编译、综合和仿真操作等。以87H乘以F5H为例,进行仿真,对仿真波形作出详细解释,包括对8个工作时钟节拍中,每一节拍乘法操作的方式和结果,对照波形图给以详细说明,根据顶层设计例9-16,结合图9-34,画出乘法器的详细电路原理框图。(2)实验内容2:编程下载,进行实验验证。实验电路选择No.1,8位乘数用键2、键1输入;8位被乘数用键4和键3输入;16位乘积可由4个数码管(数码管8、7、6、5)显示;用键8输入CLK,键7输入START(注意,START由高到低是清0,由低到高电平是允许乘法计算)。详细观察每一时钟节拍的运算结果,并与仿真结果进行比较。(3)实验内容3:乘法时钟连接实验系统上的连续脉冲,如clock0,设计一个此乘法器的控制模块,接受实验系统上的连续脉冲,如clock0,当给定启动/清0信号后,能自动发出CLK信号驱动乘法运算,当8个脉冲后自动停止(参考程序:例9-15)。(4)实验内容4:设计一个纯组合电路的8X8等于16位的乘法器和一个LPM乘法器(选择不同的流水线方式),具体说明并比较这几种乘法器的逻辑资源占用情况和运行速度情况。三、实验程序(部分)【例9-11】LIBRARYIEEE;--8位右移寄存器USEIEEE.STD_LOGIC_1164.ALL;ENTITYSREG8BISPORT(CLK,LOAD:INSTD_LOGIC;DIN:INSTD_LOGIC_VECTOR(7DOWNTO0);QB:OUTSTD_LOGIC);ENDSREG8B;ARCHITECTUREbehavOFSREG8BISSIGNALREG8:STD_LOGIC_VECTOR(7DOWNTO0);BEGINPROCESS(CLK,LOAD)BEGINIFCLK'EVENTANDCLK='1'THENIFLOAD='1'THENREG8=DIN;ELSEREG8(6DOWNTO0)=REG8(7DOWNTO1);ENDIF;ENDIF;ENDPROCESS;QB=REG8(0);--输出最低位ENDbehav;COMPONENTREG16BPORT(CLK,CLR:INSTD_LOGIC;D:INSTD_LOGIC_VECTOR(8DOWNTO0);Q:OUTSTD_LOGIC_VECTOR(15DOWNTO0));ENDCOMPONENT;SIGNALGNDINT,INTCLK,RSTALL,NEWSTART,QB:STD_LOGIC;SIGNALANDSD:STD_LOGIC_VECTOR(7DOWNTO0);SIGNALDTBIN:STD_LOGIC_VECTOR(8DOWNTO0);SIGNALDTBOUT:STD_LOGIC_VECTOR(15DOWNTO0);BEGINDOUT=DTBOUT;GNDINT='0';PROCESS(CLKK,START)BEGINIFSTART='1'THENNEWSTART='1';ELSIFCLKK='0'THENNEWSTART='0';ENDIF;4ENDPROCESS;U1:ARICTLPORTMAP(CLK=CLKK,START=NEWSTART,CLKOUT=INTCLK,RSTALL=RSTALL);U2:SREG8BPORTMAP(CLK=INTCLK,LOAD=RSTALL,DIN=B,QB=QB);U3:ANDARITHPORTMAP(ABIN=QB,DIN=A,DOUT=ANDSD);U4:ADDER8BPORTMAP(CIN=GNDINT,A=DTBOUT(15DOWNTO8),B=ANDSD,S=DTBIN(7DOWNTO0),COUT=DTBIN(8));U5:REG16BPORTMAP(CLK=INTCLK,CLR=RSTALL,D=DTBIN,Q=DTBOUT);ENDstruc;【例9-14】LIBRARYIEEE;--16位锁存器/右移寄存器USEIEEE.STD_LOGIC_1164.ALL;LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYREG16BIS--16位锁存器PORT(CLK,CLR:INSTD_LOGIC;D:INSTD_LOGIC_VECTOR(8DOWNTO0);Q:OUTSTD_LOGIC_VECTOR(15DOWNTO0));ENDREG16B;ARCHITECTUREbehavOFREG16BISSIGNALR16S:STD_LOGIC_VECTOR(15DOWNTO0);BEGINPROCESS(CLK,CLR)BEGINIFCLR='1'THENR16S=0000000000000000;--时钟到来时,锁存输入值,并右移低8位ELSIFCLK'EVENTANDCLK='1'THENR16S(6DOWNTO0)=R16S(7DOWNTO1);--右移低8位R16S(15DOWNTO7)=D;--将输入锁到高8位ENDIF;ENDPROCESS;Q=R16S;ENDbehav;四、实验结果及分析结果分析:次此实验功能为十六进制的乘法运算功能,注意其时钟信号频率不能太高,要不然来不及计算,则不会出结果,还有就是该功能只能计算结果是四位及以下的十六进制乘法,该仿真经过8个脉冲后得到C7*FE=C5725VHDL与集成电路设计实验报告时间:第9周周三实验五:8位16进制频率计设计一、实验目的:设计8位16进制频率计,学习较复杂的数字系统设计方法。二、实验内容:分别仿真测试模块例7-7、例7-8和例7-9,再结合例7-10完成频率计的完整设计和硬件实现,并给出其测频时序波形及其分析。建议选实验电路模式5;8个数码管以16进制形式显示测频输出;待测频率输入FIN由clock0输入,频率可选4Hz、256HZ、3Hz...50MHz等;1HZ测频控制信号CLK1HZ可由clock2输入(用跳线选1Hz)。注意,这时8个数码管的测频显示值是16进制的。将频率计改为8位10进制频率计,注意此设计电路的计数器必须是8个4位的10进制计数器,而不是1个。此外注意在测频速度上给予优化。用LPM模块取代例7-8和例7-9,再完成同样的设计任务。用嵌入式锁相环PLL的LPM模块对实验系统的50MHz或20MHz时钟源分频率,PLL的输出信号作为频率计的待测信号。注意PLL的输入时钟必须是器件的专用时钟输入脚,且输入频率不能低于16MHz。三、实验程序(部分)【例7-7】LIBRARYIEEE;--测频控制电路USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYFTCTRLISPORT(CLKK:INSTD_LOGIC;--1HzCNT_EN:OUTSTD_LOGIC;--计数器时钟使能RST_CNT:OUTSTD_LOGIC;--计数器清零Load:OUTSTD_LOGIC);--输出锁存信号ENDFTCTRL;ARCHITECTUREbehavOFFTCTRLISSIGNALDiv2CLK:STD_LOGIC;BEGINPROCESS(CLKK)BEGINIFCLKK'EVENTANDCLKK='1'THEN--1Hz时钟2分频Div2CLK=NOTDiv2CLK;ENDIF;ENDPROCESS;PROCESS(CLKK,Div2CLK)BEGINIFCLKK='0'ANDDiv2CLK='0'THENRST_CNT='1';--产生计数器清零信号ELSERST_CNT='0';ENDIF;ENDPROCESS;Load=NOTDiv2CLK;CNT_EN=Div2CLK;ENDbehav;【例7-10】LIBRARYIEEE;--频率计顶层文件LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYFREQTESTISPORT(CLK1HZ:INSTD_LOGIC;FSIN:INSTD_LOGIC;DOUT:OUTSTD_LOGIC_VECTOR(31DOWNTO0));ENDFREQTEST;ARCHITECTUREstrucOFFREQTESTISCOMPONENTFTCTRLPORT(CLKK:INSTD_LOGIC;--1Hz6CNT_EN:OUTSTD_LOGIC;--计数器时钟使能RST_CNT:OUTSTD_LOGIC;--计数器清零Load:OUTSTD_LOGIC);--输出锁存信号ENDCOMPONENT;COMPONENTCOUNTER32BPORT(FIN:INSTD_LOGIC;--时钟信号CLR:INSTD_LOGIC;--清零信号ENABL:INSTD_LOGIC;--计数使能信号DOUT:OUTSTD_LOGIC_VECTOR(31DOWNTO0));--计数结果ENDCOMPONENT;COMPONENTREG32BPORT(LK:INSTD_LOGIC;DIN:INSTD_LOGIC_VECTOR(31DOWNTO0);DOUT:OUTSTD_LOGIC_VECTOR(31DOWNTO0));ENDCOMPONENT;SIGNALTSTEN1:STD_LOGIC;SIGNALCLR_CNT1:STD_LOGIC;SIGNALLoad1:STD_LOGIC;SIGNALDTO1:STD_LOGIC_VECTOR(31DOWNTO0);SIGNALCARRY_OUT1:STD_LOGIC_VECTOR(6DOWNTO0);BEGINU1:FTCTRLPORTMAP(CLKK=CLK1HZ,CNT_EN=TSTEN1,RST_CNT=CLR_CNT1,Load=Load1);U2:REG32BPORTMAP(LK=Load1,DIN=DTO1,DOUT=DOUT);U3:COUNTER32BPORTMAP(FIN=FSIN,CLR=CLR_CNT1,ENABL=TSTEN1,DOUT=DTO1);ENDstruc;四、实验结果:7结果分析:给出不同频率的时

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功