宏功能模块

合集下载

总结使用宏功能模块进行设计的优缺点

总结使用宏功能模块进行设计的优缺点

总结使用宏功能模块进行设计的优缺点
问题:总结使用宏功能模块进行设计的优缺点,其中需要注意什么?回答:
使用宏功能模块进行设计的优点是易于修改,但必须按照预先规定好的方式组织程序,以便检查每一个子模块、过程或函数是否都正确地实现了预期功能。

也可把代码中相似的部分放在同一个模块中。

宏代码还有很多有利之处,如利于对各种软件工具产生的变化作出反应;可简化编译程序及运行时的调试工作等。

但是宏又不象子模块那样灵活方便,因此它主要适合编写过程比较固定而内容经常变更的程序。

编写和调试比较麻烦。

可把宏定义成一些简单的命令语句,让用户自己写出程序,然后再根据用户的使用情况提供各种选择和帮助。

宏和变量一起构成了一种通用性强的机制。

宏变量类似于一般变量,所以使用时直接在宏变量名前面加上“*”符号即可。

当宏被赋值时就返回该变量,而且返回值类型由用户指定,因此非常灵活。

例如,如果用户把变量取名为 PrintGrid (a,10,5),那么宏 A= printGrid (10,5);宏 B= printGrid (10,5);宏 C= printGrid (10,5);宏 D= printGrid (10,5);宏 E= printGrid (10,5);宏 F= printGrid (10,5);宏 G= printGrid (10,5);宏 H= printGrid (10,5);宏 I= printGrid (10,5);等等,宏变量之间完全可以用空格隔开,也没有标志符的区别。

宏与变量一样,用户既可以把宏定义成一个独立的变量,又可以把宏看做变量的另外一种形式。

这里我们用了两种形式的宏。

第6章 宏模块和LPM函数的应用(CPU)

第6章 宏模块和LPM函数的应用(CPU)

第6章 宏模块和LPM函数的应用
固核(Firm Core)
固核比软核有更大的设计深度,己完成了门级综合、时序 仿真并经过硬件验证,以门级网表的形式提交使用。 只要用户提供相同的单元库时序参数,一般就可以正确完 成物理设计。
固核的缺点是它与实现工艺的相关性和网表的难读性。前 者限制了固核的使用范围,后者则使得布局布线后发生的 时序问题难以排除。
LPM模块的使用
FPGA-CPLD原理及应用
第6章 宏模块和LPM函数的应用
知识要点
LPM功能模块 LPM: library of Parameterized Modules
参数化的模块库,其模块使用参数和端口信号进 行描述,通过设置参数和端口信号,可以实现不 同的功能。其模块可称之为参数化模块或者LPM模 块或者LPM宏功能块。
(3) 使用端口和参数定义生成宏功能模块
计数器 乘法器 RAM 加法/减法器 乘-累加器和乘-加法器 移位寄存器
FPGA-CPLD原理及应用
第6章 宏模块和LPM函数的应用
6.2 LPM模块应用实例
使用LPM_COUNTER模块实现数控分频器 各端口信号的意义和设置 参数的设置 分频比
软核为后续设计留有比较大的空间,使用者可以通过修 改源码,完成更具新意的结构设计,生成具有自主版权 的新软核。 由于软核的载体HDL与实现工艺无关,使用者要负责从 描述到版图转换的全过程,模块的可预测性低,设计风 险大,使用者在后续设计中仍有发生差错的可能,这是 软核最主要的缺点。
FPGA-CPLD原理及应用
模块设置 参数:设置大小; 端口信号设置:设置使用哪些端口信号和信号属 性等,其中输入端口信号有缺省值,也可以自己 设置。

精品课件-硬件描述语言与FPGA设计技术(肖闽进)-第6章 宏功能模块与IP应用

精品课件-硬件描述语言与FPGA设计技术(肖闽进)-第6章 宏功能模块与IP应用

f sin_o[9..0] f cos_o[9..0]
out_v alid
inst
OUTPUT OUTPUT
FS[9..0] FC[9..0]
嵌入式逻辑分析仪测试波形
6.6 LPM嵌入式锁相环设计
Altera 的FPGA器件CycloneII/III/IV及 StraixII/III/IV等系列中含有高性能的嵌入式模拟锁相 环,其性能远优于普通数字锁相环。这些锁相环PLL可以 与一输入的时钟信号同步,并以其作为参考信号实现锁 相,从而输出一至多个同步倍频或分频的片内时钟,以 供逻辑系统应用。与直接来自外部的时钟相比,这种片 内时钟可以减少时钟延时和时钟变形,减少片外干扰; 还可以改善时钟的建立时间和保持时间,是系统稳定工 作的保证。
aclr
8 bits 128 words
OUTPUT
CLKOUT
OUTPUT OUTPUT
ADDR[6..0] Q[7..0]
sin2_rom
address[6..0]
q[7..0]
inclock
inst2 Block ty pe: AUTO
OUTPUT
COUT
6.6.2锁相环仿真测试和硬件特性 锁相环仿真波形
加入NCO授权文件和Quartus II授权文件。这里设授权文 件位置路径:C:\altera\90\license.DAT。有了授权文 件,在Option对话框的Licensed AMPP/MegaCore functions 栏中可以看到FIR、PCI、NCO等IP的授权码, 这样就可以编译出能够写Flash的SOF文件。也可以先转 变为间接配置编程文件写入EPCS Flash。
6.1 LPM存储器设计 6.1.1 ROM模块设计

【Verilog】第7章 宏功能模块与IP应用

【Verilog】第7章 宏功能模块与IP应用

7.10 使用IP Core设计FIR滤波器
7.10 使用IP Core设计FIR滤波器
7.11 8051单片 机IP核应 用
7.11 8051单片机IP核应用
7.11 8051单片机IP核应用
7.12 DDS实现原理与应用
7.12.1 DDS实现原理
7.12 DDS实现原理与应用
7.12.1 DDS实现原理
实验与设计
7-7 4X4阵列键盘键信号检测电路设计
(1)实验原理:
实验与设计
7-7 4X4阵列键盘键信号检测电路设计
(2)实验任务1: (3)实验任务2:
(4)实验任务3: (5)实验任务4: (6)实验任务5: (7)实验任务6: 5E+系统演示示例:/KX_7C5EE+/EXPERIMENTs/EXP31_SCAN_4X4KEY/。
接下页
接上页
7.4.4 Verilog的存储器描述及相关属性
4.文本方式调用存储器LPM模块
7.5 LPM_ROM的定制和使用示例
7.5.1 LPM_ROM的定制调用和测试
7.5 LPM_ROM的定制和使用示例
7.5.1 LPM_ROM的定制调用和测试
7.5 LPM_ROM的定制和使用示例
7.5.1 LPM_ROM的定制调用和测试
7.4 LPM 随机存储器的设置和调用
7.4.1 存储器初始化文件生成 2.建立.hex格式文件
7.4 LPM 随机存储器的设置和调用
7.4.2 LPM_RAM的设置和调用
7.4 LPM 随机存储器的设置和调用
7.4.2 LPM_RAM的设置和调用
7.4 LPM 随机存储器的设置和调用
7.4.2 LPM_RAM的设置和调用

5.宏模块(macro)

5.宏模块(macro)

macro(宏)相当于定义一个配置模板,可以应用到接口或全局。

【配置】Catalyst 3550交换机:示例1:SW1(config)#macro name IF_CONF 定义名为IF_CONF的宏Enter macro commands one per line. End with the character '@'. 进入宏定义模式,输入@结束switchport mode accessswitchport access vlan 10spanning-tree portfast@SW1(config)#int f0/1SW1(config-if)#macro apply IF_CONF 在接口下应用名为IF_CONF的宏SW1(config-if)#end查看接口F0/1的配置如下:SW1#show run int f0/1Building configuration...Current configuration : 135 bytes!interface FastEthernet0/1switchport access vlan 10switchport mode accessmacro description IF_CONFspanning-tree portfastend示例2:Switch(config)#define interface-range ACCESS f0/1-10 定义名为ACCESS的interface-range(等同于命令interface range f0/1-10)Switch(config)#interface range macro ACCESSSwitch(config-if-range)#switchport mode accseeSwitch(config-if-range)#switchport access vlan 10Catalyst 3750交换机:示例3:Auto Smartports (自动的智能端口)--交换机能够根据端口检测到的对端设备,自动完成相对应的配置。

第6讲-LPM参数化宏模块应用07

第6讲-LPM参数化宏模块应用07
24
7.3 在系统存储器数据读写编辑器应用
图7-15 从FPGA中的ROM读取波形数据
25
7.3 在系统存储器数据读写编辑器应用
图7-16 编辑波形数据
图7-16下载编辑数据后的SignalTap II采样波形
26
7.4 编辑SignalTapII的触发信号
图7-17 选择高级触发条件
27
7.4 编辑SignalTapII的触发信号
2.建立.hex格式文件---直接填表
图7-2 将波形数据填入mif文件表中
10
7.2.2 定制LPM_ROM初始化数据文件
2.建立.hex格式文件 ---汇编程序编译器
图7-3 ASM格式建hex文件
11
7.2 LPM模块应用实例
7.2.2 定制LPM_ROM初始化数据文件
2.建立.hex格式文件
END;
8
7.2 LPM模块应用实例
7.2.2 定制LPM_ROM初始化数据文件
1.建立.mif格式文件 ---程序语言生成,如 C
【例7-2】 #include <stdio.h> #include "math.h" main() {int i;float s; for(i=0;i<1024;i++)
31
7.5 其它存储器模块的定制与应用
7.5.2 FIFO定制
图7-22 FIFO编辑窗
32
7.5 其它存储器模块的定制与应用
7.5.2 FIFO定制
图7-23 FIFO的仿真波形
33
7.5 其它存储器模块的定制与应用
7.5.3 基于LPM_ROM的4位乘法器设计
address_aclr_a => "NONE",

宏功能模块与IP应用

宏功能模块与IP应用

宏功能模块与IP应用6.1宏功能模块概述这里主要介绍LPM宏功能模块,它就是Library of Parameterized Modules(参数可设置模块库)的缩写,Altera提供的可参数化功能模块和LPM函数均基于altera器件的结构作了优化设计。

我认为就是已经设计好的最佳的基本电路模块。

在特定器件结构中发挥出最佳性能。

可以使用这些知识产权的参数化模块减少设计和测试的时间。

这些宏功能模块应用于通信,数字信号处理(DSP),PCI和其他总线界面,以及存储器中的宏功能模块。

6.2 LPM计数器模块的使用方法在原有的LPM库中将参数进行设置,最后如下图1图1Quartus II生成的计数器文件CNT4B.vhd如下图Lpm_counter是元件名,是可以从lpm库中调用的宏功能模块元件名;而lpm_counter_component则是在此文件中为使用和调用lpm_counter取的例化名,即参数传递语句中的宏功能模块元件的例化名。

6.3 基于LPM的流水线乘法累加器设计LPM加法器模块设计LMP乘法器模块设置调用6.4 LPM随机存储器的设置和调用在涉及RAM和ROM等存储器应用的EDA设计开发中,调用LPM模块类存储器是最方便,最经济,最高效和性能最容易满足设计要求的途径。

Quartus能接受两种格式的文件:MIF和HEX。

建立米饭格式的文件然后就是数据类型的定义语句!如整数类型INTEGER,布尔型boolean,标准逻辑类型std_logic等,此外VHDL还允许用户自行定义新的数据类型。

6.5 LPM_ROM的定制和使用方法6.6 在系统存储器数据读写编辑器应用对于Cyclone系列的FPGA,只要对使用的LPM_ROM或LPM_RAM等存储器模块作适当设置,就能利用Quartus的在系统存储器读写编辑器直接通过JTAG口读取或改写FPGA内处于工作状态的存储器中的数据,读取过程不影响FPGA的正常工作。

QuartusⅡ中宏功能模块的使用

QuartusⅡ中宏功能模块的使用

1/23/2020
西安邮电学院计算机系
16

1/23/2020
西安邮电学院计算机系
17
1 选择菜单Tools MegaWizard Plug-In Manager(图1),或直接在原理 图设计文件的Symbol对话框中点击MegaWizard Plug-In Manager(图2),则弹出 对话框(图3) 。
图1
图2
1/23/2020
西安邮电学院计算机系
3
QuartusⅡ中宏功能模块的使用
特别是针对一些与Altera器件底层结构相关的特性,必须通过Megafunction实现,例 如一些存储器模块(DPRAM、SPRAM、FIFO、CAM等),DSP模块,LVDS驱动器,PLL,高 速串行收发器(SERDERS),DDR输入/输出(DDIO)等。另外一些诸如乘法器、计数器、 加法器、滤波器等电路虽然也可以直接用代码描述,然后用通用逻辑资源实现,但是 这种描述方法不但费时费力,在速度和面积上与Megafunction的实现结果仍然有较大 的差距。
选择新建一个宏功能实例,进入下一步(图4)。
图3
Hale Waihona Puke 1/23/2020西安邮电学院计算机系
4
QuartusⅡ中宏功能模块的使用
这里列举了可供调用的宏功能模块
数学运算功能类,包括代码纠正、 浮点加/减/乘法器、计数器、平方根 等功能模块。
逻辑门类功能类,包括与/或/非门 常数发生器、反相器模块等。
I/O接口功能类,包括数据收发器 锁相环、I/O缓冲模块等。
选择双口RAM
选择器件
选择输出语言
在工程目录下设 置例化的文件名
图5
1/23/2020

quartus宏功能模块介绍

quartus宏功能模块介绍

-----------------------------------------------------RAM宏模块宏模块名称功能描述csdpram 参数化循环共享双端口RAMlpm_ram_dp 参数化双端口RAMlpm_ram_dq 参数化RAM,输入/输出端分离lpm_ram_io 参数化RAM,输入/输出端公用一个端口FIFO宏模块宏模块名称功能描述csfifo 参数化循环共享FIFOdcfifo 参数化双时钟FIFOscfifo 参数化单时钟FIFOlpm_fifo 参数化单时钟FIFOlpm_fifo_dc 参数化双时钟FIFOROM的设计lpm_romQuartus II开发软件中的宏模块--时序电路宏模块触发器宏模块名称功能描述lpm_ff 参数化D或T触发器lpm_dff 参数化D触发器和移位寄存器lpm_tff 参数化T触发器enadff 带使能端的D触发器expdff 用扩展电路实现的D触发器7470 带预置和清零端的与门JK触发器7471 带预置端的JK触发器7472 带预置和清零端的与门JK触发器7473 带清零端的双JK触发器7474 带异步预置和异步清零端的双D触发器7476 带异步预置和异步清零端的双JK触发器7478 带异步预置、公共清零和公共时钟端的双JK触发器74107 带清零端的双JK触发器74109 带预置和清零端的双JK触发器74112 带预置和清零端的双JK时钟下降沿触发器74113 带预置端的双JK时钟下降沿触发器74114 带异步预置、公共清零和公共时钟端的双JK时钟下降沿触发器74171 带清零端的4D触发器74172 带三态输出的多端口寄存器74173 4位D型寄存器74174 带公共清零端的16进制D触发器74174b 带公共清零端的16进制D触发器74175 带公共时钟和清零端的4D触发器74273 带异步清零端的8进制触发器74273b 带异步清零端的8进制触发器74276 带公共预置和清零端的4JK触发器寄存器74374 带三态输出和输出使能端的8进制D触发器74374b 带三态输出和输出使能端的8进制D触发器74376 带公共时钟和公共清零端4JK触发器74377 带使能端的8进制D触发器74377b 带使能端的8进制D触发器74378 带使能端的16进制D触发器74379 带使能端的4D触发器74396 8进制存储寄存器74548 带三态输出的8位两级流水线寄存器74670 带三态输出的4位寄存器74821 带三态输出的10位总线接口触发器74821b 带三态输出的10位D触发器74822 带三态反相输出的10位总线接口触发器74822b 带三态反相输出的10位D触发器74823 带三态输出的9位总线接口触发器74823b 带三态输出的9位D触发器74824 带三态反相输出的9位总线接口触发器74824b 带三态反相输出的9位D触发器74825 带三态反相输出的8位总线接口触发器74825b 带三态输出的8进制D触发器74826 带三态反相输出的9位总线接口触发器74826b 带三态反相输出的8进制D触发器锁存器宏模块名称功能描述lpm_latch参数化锁存器explatch用扩展电路实现的锁存器Inpltch 用扩展电路实现的输入锁存器nandltch用扩展电路实现的SR(非)与非门锁存器norltch 用扩展电路实现的SR或非门锁存器7475 4位双稳态锁存器7477 4位双稳态锁存器74116 带清零端的双4位锁存器74259 带清零端、可设定地址的锁存器74279 4路SR(非)锁存器74373 带三态输出的8进制透明D锁存器74373b 带三态输出的8进制透明D锁存器74375 4位双稳态锁存器74549 8位二级流水线锁存器74604 带三态输出的8进制2输入多路锁存器74841 带三态输出的10位总线接口D锁存器74841b 带三态输出的10位总线接口D锁存器74842 带三态输出的10位总线接口D锁存器74842b 带三态输出的10位总线接口D反相锁存器74843 带三态输出的9位总线接口D锁存器74844 带三态输出的9位总线接口D反相锁存器74845 带三态输出的8位总线接口D锁存器74846 带三态输出的8位总线接口D反相锁存器74990 8位透明读回锁存器计数器宏模块名称功能描述lpm_conter参数化计数器(仅限FLEX系列器件)gray4 格雷码计数器unicnt 通用4位加/减计数器,可异步设置、读取、清零和级联的左/右移位寄存器16cudslr 16位2进制加/减计数器,带异步设置的左/右移位寄存器16cudsrb 16位2进制加/减计数器,带异步清零和设置的左/右移位寄存器4count 4位2进制加/减计数器,同步/异步读取,异步清零8count 8位2进制加/减计数器,同步/异步读取,异步清零7468 双10进制计数器7469 双12进制计数器7490 10/2进制计数器7492 12进制计数器7493 4位2进制计数器74143 4位计数/锁存器,带7位输出驱动器74160 4位10进制计数器,同步读取,异步清零74161 4位2进制加法计数器,同步读取,异步清零74162 4位2进制加法计数器,同步读取,同步清零74163 4位2进制加法计数器,同步读取,同步清零74168 同步4位10进制加/减计数器74169 同步4位2进制加/减计数器74176 可预置10进制计数器74177 可预置2进制计数器74190 4位10进制加/减计数器,异步读取74191 4位2进制加/减计数器,异步读取74192 4位10进制加/减计数器,异步清零74193 4位2进制加/减计数器,异步清零74196 可预置10进制计数器74197 可预置2进制计数器74290 10进制计数器74292 可编程分频器/数字定时器74293 2进制计数器74294 可编程分频器/数字定时器74390 双10进制计数器74393 双4位加法计数器,异步清零74490 双4位10进制计数器74568 10进制加/减计数器,同步读取,同步和异步清零74569 2进制加/减计数器,同步读取,同步和异步清零74590 8位2进制计数器,带三态输出寄存器74592 8位2进制计数器,带输入寄存器74668 同步10进制加/减计数器74669 同步4位2进制加/减计数器74690 同步10进制计数器,带输出寄存器,多重三态输出,异步清零74691 同步2进制计数器,带输出寄存器,多重三态输出,异步清零74693 同步2进制计数器,带输出寄存器,多重三态输出,同步清零74696 同步10进制加/减计数器,带输出寄存器,多重三态输出,异步清零74697 同步2进制加/减计数器,带输出寄存器,多重三态输出,异步清零74698 同步10进制加/减计数器,带输出寄存器,多重三态输出,同步清零74699 同步2进制加/减计数器,带输出寄存器,多重三态输出,同步清零分频器宏模块名称功能描述Freqdiv 2,4,8,16分频器7456 双时钟5,10分频器7457 双时钟5,6,10分频器多路复用器宏模块名称功能描述lpm_mux 参数化多路复用器2lmux 2线-1线多路复用器16lmux 16线-1线多路复用器2X8mux 8位总线的2线-1线多路复用器8lmux 8线-1线多路复用器74151 8线-1线多路复用器74151b 8线-1线多路复用器74153 双4线-1线多路复用器74157 四2线-1线多路复用器74158 带反相输出的四2线-1线多路复用器74251 带三态输出的8线-1线数据选择器74253 带三态输出的双4线-1线数据选择器74257 带三态输出的四2线-1线多路复用器74258 带三态反相输出的四2线-1线多路复用器74298 带存储功能的四2输入多路复用器74352 带反相输出的双4线-1线数据选择器/多路复用器74353 带三态反相输出的双4线-1线数据选择器/多路复用器74354 带三态输出的8线-1线数据选择器/多路复用器74356 带三态输出的8线-1线数据选择器/多路复用器74398 带存储功能的四2输入多路复用器74399 带存储功能的四2输入多路复用器移位寄存器宏模块名称功能描述lpm_clshift参数化组合逻辑移位器lpm_shiftreg参数化移位寄存器barrelst 8位桶形移位器barrlstb 8位桶形移位器7491 串入串出移位寄存器7494 带异步预置和异步清零端的4位移位寄存器7495 4位并行移位寄存器7496 5位移位寄存器7499 带JK串入串出端的4位移位寄存器74164 串入并出移位寄存器74164b 串入并出移位寄存器74165 并行读入8位移位寄存器74165b 并行读入8位移位寄存器74166 带时钟禁止端的8位移位寄存器74178 4位移位寄存器74179 带清零端的4位移位寄存器74194 带并行读入端的4位双向移位寄存器74195 4位并行移位寄存器74198 8位双向移位寄存器74199 8位双向移位寄存器74295 带三态输出端的4位左右移位寄存器74299 8位通用移位/存储寄存器74350 带三态输出端的4位移位寄存器74395 带三态输出端的4位可级联移位寄存器74589 带输入锁存和三态输出端的8位移位寄存器74594 带输入锁存的8位移位寄存器74595 带输入锁存和三态输出端的8位移位寄存器74597 带输入寄存器的8位移位寄存器74671 带强制清零和三态输出端的4位通用移位寄存器/锁存器Quartus II开发软件中的宏模块--运算电路宏模块加法器和减法器宏模块名称功能描述lpm_add_sub 参数化加法器/减法器8fadd 8位全加器8faddb 8位全加器7480 门控全加器7482 2位2进制全加器7483 带快速进位的4位2进制全加器74183 双进位存储全加器74283 带快速进位的4位全加器74385 带清零端的4位加法器/减法器乘法器宏模块名称功能描述lpm_mult 参数化乘法器mult2 2位带符号数乘法器mult24 2X4位并行2进制乘法器mult4 4位并行2进制乘法器mult4b 4位并行2进制乘法器tmult4 4X4位并行2进制乘法器7497 同步6位速率乘法器74261 2位并行2进制乘法器74284 4X4位并行2进制乘法器(输出结果的最高4位)74285 4X4位并行2进制乘法器(输出结果的最低4位)除法器divide和lpm_divide绝对值运算lpm_abs数值比较器宏模块名称功能描述lpm_compare 参数化比较器8mcomp 8位数值比较器8mcompb 8位数值比较器7485 4位数值比较器74518 8位恒等比较器74518b 8位恒等比较器74684 8位数值/恒等比较器74686 8位数值/恒等比较器74688 8位恒等比较器编码器模块名称功能描述74147 10线-3线BCD编码器74148 8线-3线8进制编码器74384 带三态输出的8线-3线优先权编码器译码器宏模块名称功能描述lpm_decode 参数化译码器16dmux 4位2进制-16线译码器16ndmux 4位2进制-16线译码器7442 1线-10线BCD-10进制译码器7443 余3码-10进制译码器7444 余3格雷码-10进制译码器7445 BCD码-10进制译码器7446 BCD码-7段译码器7447 BCD码-7段译码器7448 BCD码-7段译码器7449 BCD码-7段译码器74137 带地址锁存的3线-8线译码器74138 3线-8线译码器74139 双2线-4线译码器74145 BCD码-10进制译码器74154 4线-16线译码器74155 双2线-4线译码器/多路输出选择器74156 双2线-4线译码器/多路输出选择器74246 BCD码-7段译码器74247 BCD码-7段译码器74248 BCD码-7段译码器74445 BCD码-10进制译码器奇偶校验器宏模块名称功能描述74180 9位奇偶产生器/校验器74180b 9位奇偶产生器/校验器74280 9位奇偶产生器/校验器74280b 9位奇偶产生器/校验器LPM库单元列表模块分类宏单元简要说明门单元模块lpm_and 参数化与门lpm_bustri 参数化三态缓冲器lpm_clshift 参数化组合逻辑移位器lpm_constant 参数化常数产生器lpm_decode 参数化译码器lpm_inv 参数化反向器lpm_mux 参数化多路选择器busmux 参数化总线选择器mux 多路选择器lpm_or 参数化或门lpm_xor 参数化异或门算术运算模块lpm_abs 参数化绝对值运算lpm_add_sub 参数化的加/减法器lpm_compare 参数化比较器lpm_counter 参数化计数器lpm_mult 参数化乘法器存储器模块lpm_ff 参数化D触发器lpm_latch 参数化锁存器lpm_ram_dq 输入输出分开的参数化RAMlpm_ram_io 输入输出复用的参数化RAMlpm_rom 参数化ROMlpm_shitreg 参数化移位寄存器csfifo class="style8">参数化先进先出队列csdpram 参数化双口RAM其它功能模块pll 参数化锁相环电路。

第六章_宏功能模块与IP应用

第六章_宏功能模块与IP应用

复习
P195~209
预习
第二次实验: 第二次实验:p120_4.5.2 2位十进制数字频率计 位十进制数字频率计 第三次实验: 第三次实验: 必做: 十六进制7段数码显示译码器设计 段数码显示译码器设计( 必做:p140_4-4 十六进制 段数码显示译码器设计(参 考本教材二版p143【例5-21】) 考本教材二版 【 】 选做: 数码扫描显示电路设计( 选做:p141_4-6 数码扫描显示电路设计(参考本教材 二版p144【例5-22】) 二版 【 】 第四次实验: 并行ADC采样控制电路实现和 第四次实验:p264_7-2 并行 采样控制电路实现和 硬件验证 第五/六次实验 设计型实验(自己选题) 六次实验: 第五 六次实验:设计型实验(自己选题)
一、正弦信号发生器结构
由FPGA实现 实现 RST EN CLK Q1 address Inclock q Q
四 个 组 成 部 分
1、7位地址信号发生器 、 位地址信号发生器 2、正弦信号数据存储器 、正弦信号数据存储器ROM 3、VHDL顶层文件 顶层文件SIN_GNT 、 顶层文件 4、8位D/A 、 位
LPM功能模块内容丰富,设计者可根据实际需要,选 功能模块内容丰富,设计者可根据实际需要, 功能模块内容丰富 择LPM库中的适当模块,并为其设定适当的参数,满足自 库中的适当模块,并为其设定适当的参数, 库中的适当模块 己的设计需求。 己的设计需求。
6.5.3 简易正弦信号发生器设计 简易正弦信号发生器设计
三、正弦信号数据存储器ROM的定制 正弦信号数据存储器ROM的定制 ROM
4. 按图示作选择
三、正弦信号数据存储器ROM的定制 正弦信号数据存储器ROM的定制 ROM
5. 按图示作选择

QuartusⅡ中宏功能模块的使用-精选文档

QuartusⅡ中宏功能模块的使用-精选文档
QuartusⅡ中 宏功能模块的使用
西安邮电学院计算机系
QuartusⅡ中宏功能模块的使用
QuartusⅡ软件针对常用的功能,提供了参数化 (Parameterized)的宏功能(megafunctions)模块, 通过调用宏功能模块,可以减少工作量,加快设计的 进程。 用户可以通过向导工具MegaWizard Plug-In Manager 调用宏功能。
2019/3/23
9
QuartusⅡ中宏功能模块的使用
选择读出端是 否加D触发器
图9 西安邮电学院计算机系
2019/3/23
10
QuartusⅡ中宏功能模块的使用
选择存储空间初始 化方式及初始值
图 10 西安邮电学院计算机系
2019/3/23
11
QuartusⅡ中宏功能模块的使用
仿真与综合相关信息
图形输入调用: 新建图形输入文件, 在空白区域双击左键 弹出元件选取对话框 如图,Project目录下 将出现实例化 ram4k 元件供调用
图 13 西安邮电学院计算机系
2019/3/23
14
QuartusⅡ中宏功能模块的使用
也可在程序中嵌入以下语句实现调用:
… ram4k ram4k ( .data ( ), .rdaddress ( ), .rdclock ( ), .wraddress ( ), .wrclock ( ), .wren ( ), .q ( ) ); … 这段程序将实现子程序模块的例化
图1 2019/3/23 西安邮电学院计算机系
图2 3
QuartusⅡ中宏功能模块的使用
选择新建一个宏功能实例,进入下一步(图4)。
图3
2019/3/23

宏功能模块概述

宏功能模块概述
EDA 技术实用教程
宏功能模块概述
算术组件 门电路 I/O组件
累加器、加法器、乘法器和LPM算术函数
多路复用器和LPM门函数
时钟数据恢复(CDR)、锁相环(PLL)、双数据速率 (DDR)、千兆位收发器块(GXB)、LVDS接收器和发送器、 PLL重新配置和远程更新宏功能模块
存储器编译器
FIFO Partitioner、RAM和ROM宏功能模块
存储组件
存模块概述
1.1 知识产权核的应用
AMPP程序
MegaCore函数
OpenCore评估功能 OpenCore Plus硬件评估功能
宏功能模块概述
1.2 使用MegaWizard Plug-In Manager
<输出文件>.bsf : Block Editor中使用的宏功能模块的符号(元件)。 • <输出文件>.cmp : 组件申明文件。 • <输出文件>.inc : 宏功能模块包装文件中模块的AHDL包含文件。 • <输出文件>.tdf : 要在AHDL设计中实例化的宏功能模块包装文件。 • <输出文件>.vhd : 要在VHDL设计中实例化的宏功能模块包装文件。 • <输出文件>.v : 要在VerilogHDL设计中实例化的宏功能模块包装文件。 • <输出文件>_bb.v :VerilogHDL设计所用宏功能模块包装文件中模块的空体或
black-box申明,用于在使用EDA 综合工具时指定端口方向。 • <输出文件>_inst.tdf : 宏功能模块包装文件中子设计的AHDL例化示例。 • <输出文件>_inst.vhd : 宏功能模块包装文件中实体的VHDL例化示例。 • <输出文件>_inst.v : 宏功能模块包装文件中模块的VerilogHDL例化示例。

第7章 QuartusⅡ中的宏功能模块及应用

第7章 QuartusⅡ中的宏功能模块及应用
第7章 QuartusⅡ中的宏功能模块及应用
ห้องสมุดไป่ตู้
3 宏功能模块定制管理器
1)宏功能模块定制管理器MegaWizard Plug-In )宏功能模块定制管理器 Manager可以帮助用户建立或修改包含自定义宏功能模块变 可以帮助用户建立或修改包含自定义宏功能模块变 量的设计文件,而且可以在设计文件中对这些文件进行实例 量的设计文件, 化。 2)可以为参数和可选端口设置数值。 )可以为参数和可选端口设置数值。 3)宏功能模块定制管理器可以通过菜单命令 ) Tools→MegaWizard Plug-In Manager打开 打开 用户可轻松地为自定义宏功能模块变量指定选项。 用户可轻松地为自定义宏功能模块变量指定选项。
lpm_counter元件选择窗口 元件选择窗口
单击“ 按钮, 单击“Finish”按钮,则原理图编辑窗口中出现了刚 按钮 才定制的计数器的图形,添加输入输出端口后, 才定制的计数器的图形,添加输入输出端口后,如下图所 示。
参数化四位加法计数器原理图
4 .应用实例 应用实例
以一个简单的四位加法计数器为例,说明: 以一个简单的四位加法计数器为例,说明: MegaWizard Plug-In Manager的使用方法。 的使用方法。 的使用方法 1)首先新建一个名为 的工程, )首先新建一个名为counter4的工程,在工程中新建一 的工程 个名为counter4.bdf原理图文件。 原理图文件。 个名为 原理图文件 2)双击原理图编辑窗口,在弹出的元件选择窗口的 )双击原理图编辑窗口, 栏中选择“ 中的lpm_counter元件, 元件, “Libraries”栏中选择“arithmetic”中的 栏中选择 中的 元件 如下图所示,OK。 如下图所示 。

常用的宏功能模块

常用的宏功能模块
16图1生成元函数的界面17图2器件库界面18在右上角的一组单选钮中选定待生成文件的类型vhdl输入所要保存的文件的?径
常用的宏功能模块
1
1, Adders
加法器.四位,八位,两位的全加法器.带 进位的以及不带进位链的.主要有: 7480 7482 7483 Gated Full Adder 2-Bit Binary Full Adder 4-Bit Binary Full Adder with Fast Carry
74183 Dual Carry-Save Full Adder 74283 4-Bit Full Adder with Fast Carry 74385 4-Bit Adder/Subtractor with Clear
2
2, Arithmetic Logic Units
算术逻辑单元,完成一些常用的算术逻辑操 作,例如F = /(A + B)等等,主要有: 74181Arithmetic Logic Unit 74182Look-Ahead Carry Generator 74381Arithmetic Logic Unit/Function Generator 74382Arithmetic Logic Unit/Function Generator
11
11, Multiplexers
多路复用器,多简写为MUX.其实际是多路开 关.主要是完成信号的选择功能.主要有: 74151b 74153 74157 74158 74251 8-Line-to-1-Line Multiplexer Dual 4-Line-to-1-Line Multiplexer Quad 2-Line-to-1-Line Multiplexer Quad 2-Line-to-1-Line Multiplexer with Inverting Outputs 8-Line-to-1-Line Data Selector with TriState Outputs…… 12

宏功能模块应用

宏功能模块应用

4.LPM_COMPARE模块使 用
4.LPM_COMPARE模块使 用
4.LPM_COMPARE模块使 用
4.LPM_COMPARE模块使 用
4.LPM_COMPARE模块使 用
4.LPM_COMPARE模块使 用
4.创建符号文件如下
4.LPM_COMPARE模块使 用
5.创建电路原理图如下,并保存。
创建的输出文件
2.LPM_ABS模块使用
4.创建符号文件如下
5.绘制电路原理图如下,并保存
2.LPM_ABS模块使用
6.编译直至成功。MaxplusII→Compiler。 7.编辑波型文件。
MaxplusII→Waveform Editor。载入 结点,并编辑输入信号后,以默认名保 存。
2.LPM_ABS模块使用
• 设计者可以根据实际电路的设计需要, 选择LPM库中的适当模块,并为其设定 适当的参数,就能满足自己的设计需要, 从而在自己的项目中十分方便地调用优 秀的电子工程技术人员的硬件设计成果。
1. 概述
Altera提供的宏功能模块与LPM函数大致 有:
• 算术组件:累加器、加法器、乘法器和 LPM算术函数等;
仿真后得到仿真结果如下:
LPM_COMPARE模块使用
4.LPM_COMPARE模块使 用
1.新建图形编辑环境,File→New,选择 Graphic Editor file,并命名为 mycompare.gdf。
2.指定当前工程为mycompare。 File→Project→Name。
3.在工作界面中加入LPM_COMPARE宏 模块,宏模块命名为compare1。
5.LPM_COUNTER模块使 用
5.LPM_COUNTER模块使用
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
宏功能模块
2位十进制数字频率计设计 位十进制数字频率计设计
设计有时钟使能的两位十进制计数器 设计电路原理图。 (1) 设计电路原理图。
图 用74390设计一个有时钟使能的两位十进制计数器 设计一个有时钟使能的两位十进制计数器
(2) 计数器电路实现
调出元件74390 图 调出元件
中了解74390的详细功能 图 从Help中了解 中了解 的详细功能
图 fifo端口设置 端口设置
选择含溢出标志输出
含异步清零
图选择在读请求信号有效后数据输出
选择同步工作模式
选择优化方式 选择使用EAB设计 设计fifo 选择使用 设计
选择Area优化方式 图 选择 优化方式
图单击“ 后完成fifo2.vhd的定制 图单击“Finish”后完成 后完成 的定制
(3) 波形仿真
图 两位十进制计数器工作波形
参数可设置LPM兆功能块 兆功能块 参数可设置
基于LPM_COUNTER的数控分频器设计 的数控分频器设计 基于
图 数控分频器电路原理图
进制数: 时的工作波形 时的工作波形。 当d[3..0]=12(即16进制数:C)时的工作波形。 即 进制数
图 数控分频器工作波形
图4-45 LPM_ROM参 参 数设置窗口
图 LPM_ROM构成的乘法器仿真波形 构成的乘法器仿真波形
(2) 用初始化存储器编辑窗口编辑 文件 用初始化存储器编辑窗口编辑mif文件
窗口中编辑乘法表地址/数据 图 在Initialize Memory窗口中编辑乘法表地址 数据 窗口中编辑乘法表地址
LPM的VHDL文本方式调用 的 文本方式调用
AD采样系统顶层电路设计 采样系统顶层电路设计
图 ADC0809采样电路系统 采样电路系统
编辑LPM_FIFO设计实体 设计实体 编辑
选择LPM巨功能块编辑器 巨功能块编辑器 选择
选择建立一个巨功能块
最后按键NEXT 最后按键
图 生成或修改一个定制的巨功能块
LPM_FIFO定制文件仿真测试 定制文件仿真测试

仿真形
此FIFO使用了 使用了 1K30内部 个 内部16个 内部 单元的EAB 单元的
基于LPM_ROM的4位乘法器设计 的 位乘法器设计 基于
图 用LPM_ROM设计的 4位乘法器原理图 设计的 位乘法器原理图
(1) 用文本编辑器编辑 文件 用文本编辑器编辑mif文件
LPM _ROM 中作为乘法表的数据文件 rom_data.mif WIDTH = 8 ; DEPTH = 256 ; ADDRESS_RADIX = HEX ; DATA_RADIX = HEX ; CONTENT BEGIN
接上页 lpm_widthu :NATURAL; --类属 地址宽度 自然数数据类型 类属 lpm_showahead :STRING; --类属 数据读出方式 字符串数据类型 类属 lpm_hint : STRING ); --类属 优化方式 字符串数据类型 类属 PORT ( rdreq : IN STD_LOGIC ; aclr : IN STD_LOGIC ; clock : IN STD_LOGIC ; q : OUT STD_LOGIC_VECTOR (7 DOWNTO 0); wrreq : IN STD_LOGIC ; data : IN STD_LOGIC_VECTOR (7 DOWNTO 0); full : OUT STD_LOGIC ); END COMPONENT; BEGIN q <= sub_wire0(7 DOWNTO 0); full <= sub_wire1; lpm_fifo_component : lpm_fifo GENERIC MAP ( LPM_WIDTH => 8, --类属映射语句,数据宽度 位 类属映射语句, 类属映射语句 数据宽度8位 LPM_NUMWORDS => 512, --8位字节数 位字节数512个 位字节数 个 LPM_WIDTHU => 9, --地址线位宽 位 地址线位宽9位 地址线位宽 LPM_SHOWAHEAD => "OFF", --关闭先行数据输出开关 关闭先行数据输出开关 -- 打开内部 打开内部EAB,最大速度约束等级为 ,最大速度约束等级为5 LPM_HINT => "USE_EAB=ON,MAXIMIZE_SPEED=5" ) PORT MAP (rdreq => rdreq, aclr => aclr, clock => clock, wrreq => wrreq, data => data, q => sub_wire0, full => sub_wire1 ); END SYN;
LPM_FIFO定制文件仿真测试 定制文件仿真测试
将编制好的输出文件设置成工程
打开文件
选目标器件 原文件
LPM_FIFO定制文件仿真测试 定制文件仿真测试
LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY fifo2 IS PORT(data : IN STD_LOGIC_VECTOR (7 DOWNTO 0); --输入数据 输入数据 wrreq : IN STD_LOGIC ; --写入请求 写入请求 rdreq : IN STD_LOGIC ; --读出请求 读出请求 clock : IN STD_LOGIC ; --工作时钟 工作时钟 aclr : IN STD_LOGIC ; --异步清 异步清0 异步清 q : OUT STD_LOGIC_VECTOR (7 DOWNTO 0); --数据输出 数据输出 full : OUT STD_LOGIC ); --溢出标志 溢出标志 END fifo2; ARCHITECTURE SYN OF fifo2 IS SIGNAL sub_wire0 : STD_LOGIC_VECTOR (7 DOWNTO 0); SIGNAL sub_wire1 : STD_LOGIC ; COMPONENT lpm_fifo --调用 调用LPM_FIFO声明 调用 声明 GENERIC (lpm_width :NATURAL; --类属 数据宽度 自然数数据类型 类属 lpm_numwords :NATURAL; --类属 数据深度 自然数数据类型 类属 接下页
00:00 ; 01:00 ; 02:00 ; 03:00 ; 04:00 ; 05:00 ; 06:00 ; 07:00 ; 08:00 ; 09:00; 10:00 ; 11:01 ; 12:02 ; 13:03 ; 14:04 ; 15:05 ; 16:06 ; 17:07 ; 18:08 ; 19:09; 20:00 ; 21:02 ; 22:04 ; 23:06 ; 24:08 ; 25:10 ; 26:12 ; 27:14 ; 28:16 ; 29:18; 30:00 ; 31:03 ; 32:06 ; 33:09 ; 34:12 ; 35:15 ; 36:18 ; 37:21 ; 38:24 ; 39:27; 40:00 ; 41:04 ; 42:08 ; 43:12 ; 44:16 ; 45:20 ; 46:24 ; 47:28 ; 48:32 ; 49:36; 50:00 ; 51:05 ; 52:10 ; 53:15 ; 54:20 ; 55:25 ; 56:30 ; 57:35 ; 58:40 ; 59:45; 60:00 ; 61:06 ; 62:12 ; 63:18 ; 64:24 ; 65:30 ; 66:36 ; 67:42 ; 68:48 ; 69:54; 70:00 ; 71:07 ; 72:14 ; 73:21 ; 74:28 ; 75:35 ; 76:42 ; 77:49 ; 78:56 ; 79:63; 80:00 ; 81:08 ; 82:16 ; 83:24 ; 84:32 ; 85:40 ; 86:48 ; 87:56 ; 88:64 ; 89:72; 90:00 ; 91:09 ; 92:19 ; 93:27 ; 94:36 ; 95:45 ; 96:54 ; 97:63 ; 98:72 ; 99:81; END ;
选择功能块类型
选择巨功能表达语言为VHDL 选择巨功能表达语言为
选择建立FIFO功能块 功能块 选择建立 在选定的目录中确定生成 的功能块的文件名: 的功能块的文件名:fifo2.vhd
定制LPM_FIFO,文件名:fifo2.vhd 图 用VHDL定制 定制 ,文件名:
选择FIFO数据位宽为 ,深度为 数据位宽为8,深度为512 图 选择 数据位宽为
相关文档
最新文档