第5章VHDL设计输入方式EDA技术与VHDL设计第5章VHDL设计输入方式5.1QuartusII的VHDL输入设计Synplifypro的VHDL输入设计Synplify的VHDL输入设计5.25.3基于HDL文本输入的数字设计流程HDL文本编辑综合FPGA/CPLD适配FPGA/CPLD编程下载FPGA/CPLD器件和电路系统时序与功能门级仿真1、功能仿真2、时序仿真逻辑综合器结构综合器1、isp方式下载2、JTAG方式下载3、针对SRAM结构的配置4、OTP器件编程5.1QuartusII的VHDL输入设计1.输入源程序【例5.1】4位模16加法计数器libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityCNT4isport(CLK,CLR:instd_logic;--CLR是异步复位端Q:bufferstd_logic_vector(3downto0));end;architectureONEofCNT4isBeginprocess(CLR,CLK)beginifCLR='1'thenQ=0000;--CLR为高电平时,复位计数器状态到0elsifCLK'eventandCLK='1'thenQ=Q+1;endif;endprocess;end;2.创建工程3.编译RTL级原理图综合后的门级原理图编辑输入信号波形4.仿真波形赋值快捷键选中波形总线型数据5.2Synplifypro的VHDL输入设计LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCNT10ISPORT(CLK,RST,EN:INSTD_LOGIC;CQ:OUTSTD_LOGIC_VECTOR(3DOWNTO0);COUT:OUTSTD_LOGIC);ENDCNT10;ARCHITECTUREbehavOFCNT10ISBEGINPROCESS(CLK,RST,EN)VARIABLECQI:STD_LOGIC_VECTOR(3DOWNTO0);BEGINIFRST='1'THENCQI:=(OTHERS='0');--计数器复位ELSIFCLK'EVENTANDCLK='1'THEN--检测时钟上升沿IFEN='1'THEN--检测是否允许计数IFCQI1001THENCQI:=CQI+1;--允许计数ELSECQI:=(OTHERS='0');--大于9,计数值清零ENDIF;ENDIF;ENDIF;IFCQI=1001THENCOUT='1';--计数大于9,输出进位信号ELSECOUT='0';ENDIF;CQ=CQI;--将计数值向端口输出ENDPROCESS;ENDbehav;【例5.4】带有复位和时钟使能的10进制计数器1.输入设计2.选择目标器件3.综合前控制设置在对输入的文件进行综合前,应根据源文件的不同设计特点作一些针对改善综合方式的控制。例如设计者希望在不改变源文件的情况下,对设计项目中的电路结构进行资源共享优化,或对其中的有限状态机进行优化,或对在众多组合电路块中的触发器重新放置以提高运行速度,可以分别选中左栏的控制选择项:ResourceSharing(资源共享)、FSMCompiler(状态机编译器)、FSMExplorer(状态机开发器)或Retiming和Pipelining(流水线设计)。10进制计数器综合后的RTL级原理图4.综合,查看结果在SynplifyPro中调用QuartusIISynplifyPro与QuartusII的接口5-1用VHDL设计一个类似74138的译码器电路,用SynplifyPro软件对设计文件进行综合,观察RTL级综合视图和门级综合视图。5-2用VHDL语言设计一个功能类似74161的电路,用SynplifyPro软件对设计文件进行综合,观察RTL级综合视图和门级综合视图。5-3用VHDL设计一个1位全加器,用Synplify软件对其进行综合,观察RTL级综合视图和门级综合视图。习题5-4用VHDL设计一个8位加法器,用QuartusII软件进行综合和仿真。5-5用VHDL设计一个8位模60加法计数器,用QuartusII软件进行综合和仿真。5-6基于QuartusII软件,用VHDL语言采用部分积右移的方式设计实现一个4位二进制乘法器,并进行综合和仿真。习题