1、第第4 4章章 原理图与宏功能模块设计原理图与宏功能模块设计 EDAEDA技术与技术与VHDLVHDL设计设计QuartusQuartus IIII原理图设计原理图设计 QuartusQuartus II II的优化设置的优化设置 QuartusQuartus II II的时序分析的时序分析 宏功能模块设计宏功能模块设计基于基于Quartus II进行进行EDA设计开发的流程设计开发的流程 4.1 Quartus II原理图设计原理图设计1.为本项工程设计建立文件夹为本项工程设计建立文件夹 2.输入设计项目和存盘输入设计项目和存盘 元件输入对元件输入对话框话框 3.将设计项目设置成可调用的元件
2、将设计项目设置成可调用的元件 将所需元件全部调入原理图编辑窗并连接好将所需元件全部调入原理图编辑窗并连接好 4.设计全加器顶层文件设计全加器顶层文件 连接好的全加器原理图连接好的全加器原理图f_adder.bdf 5.将设计项目设置成工程和时序仿真将设计项目设置成工程和时序仿真 f_adder.bdf工程设置窗工程设置窗 5.将设计项目设置成工程和时序仿真将设计项目设置成工程和时序仿真 加入本工程所有文件加入本工程所有文件 5.将设计项目设置成工程和时序仿真将设计项目设置成工程和时序仿真 全加器工程全加器工程f_adder的仿真波形的仿真波形 4.2 Quartus II的优化设置的优化设置
3、1.Setting设置设置 在在Quartus II软件菜单栏中选择软件菜单栏中选择“Assignments”中的中的“Setting”就可打开就可打开一个设置控制对话框。可以使用一个设置控制对话框。可以使用Setting对话框对话框对工程、文件、参数等进行修改,还可设置编对工程、文件、参数等进行修改,还可设置编译器、仿真器、时序分析、功耗分析等等。译器、仿真器、时序分析、功耗分析等等。Settings对话框对话框2.分析与综合设置分析与综合设置 Analysis&Synthesis Settings项中包含有四个项目:项中包含有四个项目:uVHDL InputuVerilog HDL Inp
4、utuDefault ParametersuSynthesis Netlist Optimization作为作为Quartus II的编译模块之一,的编译模块之一,Analysis&Synthesis包括包括Quaruts II Integrated Synthesis集成综合器,完全集成综合器,完全支持支持VHDL和和Verilog HDL语言,并提供控制综合过语言,并提供控制综合过程的选项。支持程的选项。支持Verilog-1995标准(标准(IEEE标准标准1364-1995)和大多数)和大多数Verilog-2001标准标准(IEEE1364-2001),还支持),还支持VHDL198
5、7标准标准(IEEE标准标准1076-1987)和)和VHDL1993标准标准(IEEE标准标准1076-1993)。)。3.优化布局布线优化布局布线 Setting对话框的对话框的Fitter Settings页指定控制时序驱动页指定控制时序驱动编译和编译速度的选择,如下图所示。编译和编译速度的选择,如下图所示。Fitter Settings选项页选项页 more Fitter Settings选项页选项页 在在Compilation Report中查看适配结果中查看适配结果 在在Timing Closure Floorplan中查看适配结果中查看适配结果 在在Chip Editor中查看适
6、配结果中查看适配结果4.3 Quartus II的时序分析的时序分析 全程编译前时序条件设置界面全程编译前时序条件设置界面“More Settings”中的设置中的设置 时序分析结果时序分析结果 4.4 4.4 宏功能模块设计宏功能模块设计 Megafunction库是库是Altera提供的参数提供的参数化模块库。从功能上看,可以把化模块库。从功能上看,可以把Megafunction库中的元器件分为:库中的元器件分为:u 算术运算模块(算术运算模块(arithmetic)u 逻辑门模块(逻辑门模块(gates)u 储存模块(储存模块(storage)u IO模块(模块(I/O)算数运算模块库算
7、数运算模块库 下面以参数化乘法器lpm_mult为例来说明如何在设计中使用宏功能模块。lpm_mult的基本参数已在下表中给出。lpm_mult(1)调用)调用lpm_mult(2)lpm_mult参数设置参数设置输入输出位宽设置输入输出位宽设置乘法器类型设置乘法器类型设置(3)编译仿真)编译仿真8位有符号乘法器电路位有符号乘法器电路功能仿真波形功能仿真波形8.1.2 逻辑门库逻辑门库 I/O模块库模块库 I/O模块库模块库 锁相环模块设计举例锁相环模块设计举例 参数化锁相环宏模块参数化锁相环宏模块altpll以输入时钟信号作为参考信以输入时钟信号作为参考信号实现锁相,从而输出若干个同步倍频或
8、者分频的片内号实现锁相,从而输出若干个同步倍频或者分频的片内时钟信号。与直接来自片外的时钟相比,片内时钟可以时钟信号。与直接来自片外的时钟相比,片内时钟可以减少时钟延迟,减小片外干扰,还可改善时钟的建立时减少时钟延迟,减小片外干扰,还可改善时钟的建立时间和保持时间,是系统稳定工作的保证。不同系列的芯间和保持时间,是系统稳定工作的保证。不同系列的芯片对锁相环的支持程度不同,但是基本的参数设置大致片对锁相环的支持程度不同,但是基本的参数设置大致相同,下面便举例说明相同,下面便举例说明altpll的应用。的应用。(1)输入)输入altpll宏功能模块宏功能模块选择芯片和设置参考时钟选择芯片和设置参考
9、时钟 锁相环控制信号设置锁相环控制信号设置 输入时钟设置输入时钟设置(2)编译和仿真)编译和仿真锁相环电路锁相环电路功能仿真波形功能仿真波形 存储模块库存储模块库 存储器模块设计举例存储器模块设计举例 ROM(Read Only Memory,只读存储器)是存储器的,只读存储器)是存储器的一种,利用一种,利用FPGA可以实现可以实现ROM的功能,但其不是真正意义的功能,但其不是真正意义上的上的ROM,因为,因为FPGA器件在掉电后,其内部的所有信息都器件在掉电后,其内部的所有信息都会丢失,再次工作时需要重新配置。会丢失,再次工作时需要重新配置。Quartus II提供的参数化提供的参数化ROM
10、是是lpm_rom,下面用一,下面用一个乘法器的例子来说明它的使用方法,这个例子使用个乘法器的例子来说明它的使用方法,这个例子使用lpm_rom构成一个构成一个4位位4位的无符号数乘法器,利用查表位的无符号数乘法器,利用查表方法完成乘法功能。方法完成乘法功能。数据线、地址线宽度设置数据线、地址线宽度设置 控制端口设置控制端口设置 添加添加.mif文件文件 如下图所示就是基于如下图所示就是基于ROM实现的实现的4位位4位的无符号位的无符号数乘法器电路图,其参数设置为:数乘法器电路图,其参数设置为:LPM_WIDTH=8LPM_WIDTHAD=8LPM_FILE=mult_rom.mif仿真结果仿
11、真结果 Maxplus2库主要由库主要由74系列数字集成电路组成,包括系列数字集成电路组成,包括时序电路宏模块和运算电路宏模块两大类,其中时序电时序电路宏模块和运算电路宏模块两大类,其中时序电路宏模块包括触发器、锁存器、计数器、分频器、多路路宏模块包括触发器、锁存器、计数器、分频器、多路复用器和移位寄存器,运算电路宏模块包括逻辑预算模复用器和移位寄存器,运算电路宏模块包括逻辑预算模块、加法器、减法器、乘法器、绝对值运算器、数值比块、加法器、减法器、乘法器、绝对值运算器、数值比较器、编译码器和奇偶校验器。较器、编译码器和奇偶校验器。对于这些小规模的集成电路,在数字电路课程中有详对于这些小规模的集
12、成电路,在数字电路课程中有详细的介绍,其调入方法与细的介绍,其调入方法与Megafunction库中的宏模块库中的宏模块相同,只是端口和参数无法设置。相同,只是端口和参数无法设置。计数器计数器74161设计举例设计举例 模模10计数器计数器仿真结果仿真结果 缓冲器库缓冲器库 引脚库引脚库 存储单元库存储单元库 逻辑门库逻辑门库 其他模块其他模块 4-1 基于基于Quartus II软件,用软件,用D触发器设计一个触发器设计一个2分频电路,并做波形分频电路,并做波形仿真,在此基础上,设计一个仿真,在此基础上,设计一个4分频和分频和8分频电路,做波形仿真。分频电路,做波形仿真。4-2 基于基于Qu
13、artus II软件,用软件,用7490设计一个能计时(设计一个能计时(12小时)、计分小时)、计分(60分)和计秒(分)和计秒(60秒)的简单数字钟电路。设计过程如下:秒)的简单数字钟电路。设计过程如下:(1)先用)先用Quartus II的原理图输入方式,用的原理图输入方式,用7490连接成包含进位输出连接成包含进位输出的模的模60的计数器,并进行仿真,如果功能正确,则将其生成一个部件;的计数器,并进行仿真,如果功能正确,则将其生成一个部件;(2)将)将7490连接成模连接成模12的计数器,进行仿真,如果功能正确,也将其的计数器,进行仿真,如果功能正确,也将其生成一个部件;生成一个部件;(
14、3)将以上两个部件连接成为简单的数字钟电路,能计时、计分和计秒,)将以上两个部件连接成为简单的数字钟电路,能计时、计分和计秒,计满计满12小时后系统清小时后系统清0重新开始计时。重新开始计时。(4)在实现上述功能的基础上可以进一步增加其它功能,比如校时功能,)在实现上述功能的基础上可以进一步增加其它功能,比如校时功能,能随意调整小时、分钟信号,增加整点报时功能等。能随意调整小时、分钟信号,增加整点报时功能等。习习 题题 4-3 基于基于Quartus II软件,用软件,用74161设计一个模设计一个模99的计数器,的计数器,个位和十位都采用个位和十位都采用8421BCD码的编码方式设计,分别用
15、置码的编码方式设计,分别用置0和和置置1两种方法实现,完成原理图设计输入、编译、仿真和下载整两种方法实现,完成原理图设计输入、编译、仿真和下载整个过程。个过程。4-4 基于基于Quartus II软件,用软件,用7490设计一个模设计一个模71计数器,个位计数器,个位和十位都采用和十位都采用8421BCD码的编码方式设计,完成原理图设计输码的编码方式设计,完成原理图设计输入、编译、仿真和下载整个过程。入、编译、仿真和下载整个过程。4-5 基于基于Quartus II,用,用74283(4位二进制全加器)设计实现位二进制全加器)设计实现一个一个8位全加器,并进行综合和仿真,查看综合结果和仿真结果
16、。位全加器,并进行综合和仿真,查看综合结果和仿真结果。习习 题题 4-6 基于基于Quartus II,用,用74194(4位双向移位寄存器)设位双向移位寄存器)设计一个计一个“00011101”序列产生器电路,进行编译和仿真,序列产生器电路,进行编译和仿真,查看仿真结果。查看仿真结果。4-7 基于基于Quartus II软件,用软件,用D触发器和适当的门电路实现触发器和适当的门电路实现一个输出长度为一个输出长度为15的的m序列产生器,进行编译和仿真,查看序列产生器,进行编译和仿真,查看仿真结果。仿真结果。习习 题题 4-8 采用采用Quartus II软件的宏功能模块软件的宏功能模块lpm_
17、counter设计设计一个模一个模60加法计数器,进行编译仿真,查看仿真结果。加法计数器,进行编译仿真,查看仿真结果。4-9 采用采用Quartus II软件的宏功能模块软件的宏功能模块lpm_rom,用查表,用查表的方式设计一个实现两个的方式设计一个实现两个8位无符号数加法的电路,进行编位无符号数加法的电路,进行编译仿真。译仿真。4-10 先用先用lpm_rom设计设计4bit4bit和和8bit8bit乘法器各乘法器各一个,再用一个,再用Verilog分别设计分别设计4bit4bit和和8bit8bit乘法器,乘法器,比较两类乘法器的运行速度和资源好用情况。比较两类乘法器的运行速度和资源好用情况。4-11 用数字锁相环实现分频,假定输入时钟频率为用数字锁相环实现分频,假定输入时钟频率为10MHz,要想得到要想得到6MHz的时钟信号,使用的时钟信号,使用altpll宏功能模块实现该电宏功能模块实现该电路路。习习 题题