EDA技术与应用第6章 宏功能模块设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6.1 算术运算模块库 6.1.1 算术运算模块库模块
• 6.1.2 乘法器模块设计举例 • 【例6-1-1】乘法器模块设计。 • (1)输入/lpm_mult宏功能模块及端口、参数设置
• 启动Quartus II软件,选择菜单“File”→“New”命令,在弹出 的“New”对话框中的 “Device Design Files” 页面中选择源文 件的类型,这里选择 “Block Diagram/Schematic File” 类型, 即出现原理图文件的编辑界面。在Quartus II的原理图编辑 界面下,在空白处双击鼠标左键,或者单击右键,选择菜 单“Insert”→“Symbol…”命令,即可弹出宏模块选择界面,
单击“Next”按钮,出现如图6.1.5所示的页面。
• 首先设置是否以流水线方式实现乘法器,在“Do you want to pipeline the function?”栏中,选择“No”,即不采用流水 线方式实现乘法器,在最下面一栏“Which type of optimization do you want ?”框中选择对乘法器的速度或是 占用资源量进行优化,如果选择“Speed”,则是优先考虑 所实现乘法器的速度;如果选择“Area”,则是优先考虑节 省芯片资源;在这里选择“Default”,设计软件会自动在速 度和耗用资源之间进行折中。
• (1)输入lpm_counter宏模块及端口、参数设置。
• 新建一个图形输入文件,双击空白处,在 Megafunctions目录下找到lpm_counter宏功 能模块,进入参数设置界面后,首先对输
出数据总线宽度和计数的方向进行设置, 如图6.1.8所示。
• 计数器可以设为加法或者减法计数,还可以通过增加一个 “updown”信号来控制计数的方向,为“1”时加法计数;为 “0”时减法计数。单击“Next”按钮,进入如图6.1.9所示的对
• 然后选择LPM宏模块库所在目录 \altera\quartus60\libraries\megafunctions,所有的库函数 就会出现在窗口中,设计者可以从中选择所需要的函数, 这里选择lpm_mult。
单击图6.1.1中的“OK”按钮,进入乘法器模块参数设置页面。 类型设为Verilog HDL,文件名按照默认设为“lpm_mult0”。
单击图6.1.2中的“Next”按钮,出现对乘法器的输入和输出进 行设置的页面。
• 在“Multiplier configuration”栏里选择“Multiply ‘dataa’input by‘datab’input”,这样乘法器便有 “dataa”和“datab”两个输入端,然后将输入端的数 据线宽度均设为8bit,输出端的数据线宽度固定为 16bit。
• 在图6.2.1中,选择译码数据位宽为3bit,意味着有8个数据 输出。单击“Next”,进入图6.2.2所示的对话框,在该对话 框中可以设置输出的编码位,在此示例中,全部选中。
• 单击“Next”,进入图6.2.3所示的对话框,在该对话框中, 我们可以对此电路使用流水线技术,此示例中我们不选用 此技术。
话框,在这里设置计数器的模,还可根据需要增加控制端 口,包括时钟时能“Clock Enable”、计数使能“Count Enable”、 进位输入“Carry-in”和进位输出“Carry-out”端口。在本例中 设置计数器模为10,并带有一个进位输出端口。
• 单击“Next”按钮,进入如图6.10所示的对话框,在该对话 框中可增加同步清零、同步预置、异步清零、异步预置等 控制端口。
• 设置完成的计数器电路如图6.1.11所示。
• (2)编译和仿真
6.2 逻辑门库 6.2.1 逻辑门库宏模块
• 6.2.2 3线—8线译码器模块设计举例
• 【例6-2-1】3线—8线译码器模块设计。
• (1)与输入lpm_mult的输入方法一样,新建一个图形输 入文件,双击空白处,在Megafunctions目录下找到 lpm_decode宏功能模块,进入参数设置界面后,首先对输 入数据位宽进行设置,如图6.2.1所示。
• 设计完成的3线—8线译码器电路如图6.2.4所示
• (2)编译和仿真
6.3 I/O模块库宏模块及功能描述
6.4 存储器模块库 6.4.1 存储器模块库宏模块及功能描述
以上已将参数化乘法器的所有参数设计完毕,单击“Next”按 钮,选择生成的文件,最后单击“Finish”按钮生成乘法器模块,
给乘法器模块加上输入和输出端口,就构成了一个完整的乘 法器电路,如图6.1.6所示。
• (2)编译和仿真
• 6.1.3 计数器模块设计举例
•
【例6-1-2】计数器模块设计。
第6章 宏功能模块设计
•
Quartus II软件自带的宏功能模块库主要有三个,分别
ຫໍສະໝຸດ Baidu
是Megafunction库、Maxplux2库和Primitive库。
•
Megafunctions库是参数化模块库,按照库中模块的功
能,此库又分为算术运算模块库、逻辑门库、存储器库和 I/O模块库四个子库。
• 本章主要介绍基于Megafunctions库的设计,供读者参考。
单击图6.1.3中的“Next”按钮,出现如图6.1.4所示的页面。
• 在“Does the ‘datab’input bus have a constant value?”框中选 择“datab”是否为常量,在这里选择“No”单选按钮,即 “datab”的输入值可变。在第二框“What type of multiplication do you want ?”中选择“Signed”,即有符号数 乘法。最下面一栏选择乘法器的实现方式,可以用FPGA中 专门的嵌入式乘法器(需注意的是并不是所有的FPGA器件 都包含嵌入式乘法器),也可用逻辑单元(LE)来实现乘 法器。在这里选择默认的方式实现(即“use the default implementation”)。