参数可设置宏功能模块lpm的应用

合集下载

LPM宏模块使用方法

LPM宏模块使用方法
END SYN1;
RTL图:
波形仿真:
实验总结
通过这次实验,我学会了如何使用工具快速设计相关器件的VHDL代码。加强了如何去例化元件。在实验过程中,我遇到了无法编译成功的困难,原因是:我生成的计数器代码和给的代码是不一样的,主要是接口不一样,例化的时候出现了接口不搭配,改正后就成功了。
指导教师意见
签名: 年 月 日
cnt_en1: IN STD_LOGIC ;
data1: IN STD_LOGIC_VECTOR (3 DOWNTO 0);
sclr1: IN STD_LOGIC ;
updown1: IN STD_LOGIC ;
cout1: OUT STD_LOGIC ;
q1: OUT STD_LOGIC_VECTOR (3 DOWNTO 0)
data: IN STD_LOGIC_VECTOR (3 DOWNTO 0);
sclr: IN STD_LOGIC ;
updown: IN STD_LOGIC ;
cout: OUT STD_LOGIC ;
q: OUT STD_LOGIC_VECTOR (3 DOWNTO 0)
);
END COMPONENT;
利用计数宏模块构建一个12进制计数器。
实验数据
1、由于软件之间的偏差,cnt4bb,需要重新设计,设计如下:
LIBRARY ieee;
USE ieee.std_logic_1164.all;
entity cnt4bb IS
PORT(aload1: IN STD_LOGIC ;
clock1: IN STD_LOGIC ;
sload: IN STD_LOGIC ;
updown: IN STD_LOGIC ;

第7章LPM参数化宏模块的应用

第7章LPM参数化宏模块的应用

【例8-28】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY Tone IS PORT ( Index : IN STD_LOGIC_VECTOR(7 DOWNTO 0); CODE : OUT INTEGER RANGE 0 TO 15; HIGH : OUT STD_LOGIC; Tone : OUT INTEGER RANGE 0 TO 16#7FF# ); END; ARCHITECTURE one OF Tone IS BEGIN Search : PROCESS(Index) BEGIN CASE Index IS -- 译码电路,查表方式,控制音调的预置数 WHEN "00000001" => Tone <= 773; CODE <= 1; HIGH <= '0'; WHEN "00000010" => Tone <= 912; CODE <= 2; HIGH <= '0'; WHEN "00000100" => Tone <= 1036; CODE <= 3; HIGH <= '0'; WHEN "00001000" => Tone <= 1116; CODE <= 4; HIGH <= '0'; WHEN "00010000" => Tone <= 1197; CODE <= 5; HIGH <= '0'; WHEN "00100000" => Tone <= 1290; CODE <= 6; HIGH <= '0'; WHEN "01000000" => Tone <= 1372; CODE <= 7; HIGH <= '0'; WHEN "10000000" => Tone <= 1410; CODE <= 1; HIGH <= '1'; WHEN OTHERS => Tone <= 2047; CODE <= 0; HIGH <= '0'; END CASE; END PROCESS; END;

宏功能模块与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的正常工作。

EDA 第6章 宏功能模块与IP应用

EDA 第6章 宏功能模块与IP应用

6.3 基于LPM的流水线乘法累加器设计
6.3.1 LPM加法器模块设置调用
6.3 基于LPM的流水线乘法累加器设计
6.3.1 LPM加法器模块设置调用
6.3 基于LPM的流水线乘法累加器设计
6.3.2 LPM乘法器模块设置调用
6.3 基于LPM的流水线乘法累加器设计
6.3.2 LPM乘法器模块设置调用
6.4.1 存储器初始化文件生成
1.建立.mif格式文件 (3)C等软件生成
6.4 LPM 随机存储器的设置和调用
6.4.1 存储器初始化文件生成
1.建立.mif格式文件 (4)专用mif文件生成器
6.4 LPM 随机存储器的设置和调用
6.4.1 存储器初始化文件生成
1.建立.mif格式文件 (4)专用mif文件生成器
EDA技术实用教程
第6章
宏功能模块与IP应用
LPM
参数可设置模块库 Library of Parameterized Modules
是一个EDA标准 参考:
7.1 宏功能模块概述
算术组件 门电路 I/O组件 累加器、加法器、乘法器和LPM算术函数 多路复用器和LPM门函数 时钟数据恢复(CDR)、锁相环(PLL)、双数据速率 (DDR)、千兆位收发器块(GXB)、LVDS接收器和发送器、 PLL重新配置和远程更新宏功能模块 FIFO Partitioner、RAM和ROM宏功能模块 存储器、移位寄存器宏模块和LPM存储器函数
6.3 基于LPM的流水线乘法累加器设计
6.3.2 LPM乘法器模块设置调用
6.3 基于LPM的流水线乘法累加器设计
6.3.2 LPM乘法器模块设置调用
6.3 基于LPM的流水线乘法累加器设计

LPM宏模块的应用

LPM宏模块的应用

E §7.1.1 计数器LPM模块文本代码的调用
D (3)设定计数器,含时钟使能和进位输出:单击Next,选中
A 技
Modulus,并选择12,表示模12计数器(若选择Plain binary 表示普通二进制计数器),选择时钟使能控制Clock Enable和 进位输出Carry-out。




§7.1 计数器LPM宏模块调用
lpm_counter_component.lpm_width=4;//计数位宽
endmodule
E
例化语句中,未设定的端口必须接上特定的电平。 计数器模块lpm_counter是一个可设定参数的封闭模块,只
D
能通过参数传递说明语句defparam将用户设定的参数通过
A
文件CNT4B.v传递进lpm_counter中。
lpm_counter_component.lpm_modulus=12,//模12计数器
lpm_counter_component.lpm_port_updown=“PORT_USED”,//使用加减计数
lpm_counter_component.lpm_type=“LPM_COUNTER”,//计数器类型

.aload(1`b0), .aset(1`b0), .cin(1`b1), .cnt_en(1`b1), .eq(), .sclr(1`b0), .sset(1`b0));

defparam lpm_counter_component.lpm_direction=“UNUSED”,//单方向计数参数未用
例7-2:24位寄存器(defparam语句应用示例)
E
module REG24B (input [23: 0] d, input clk, output[23: 0] q); lpm_ff U1 (.q(q[11: 0], .data(d[11: 0]), .clock(clk));

第7章 LPM参数化宏模块应用

第7章 LPM参数化宏模块应用
EDA技术与VHDL EDA技术与VHDL 技术与
第7章
LPM参数化宏模块应用 LPM参数化宏模块应用
7.1 宏功能模块概述
Altera提供的宏功能模块与 提供的宏功能模块与LPM函数有:类型类型类型类型描述描述 函数有: 提供的宏功能模块与 函数有 类型类型类型类型描述描述 描述描述 • 算术组件: 包括累加器、加法器、乘法器和 算术组件: 包括累加器、加法器、乘法器和LPM算术函数; 算术函数; 算术函数 门电路: • 门电路: 包括多路复用器和LPM门函数。 门函数。 包括多路复用器和 门函数 组件: 包括时钟数据恢复(CDR)、锁相环 • I/O组件: 包括时钟数据恢复 组件 、锁相环(PLL)、双数据速 、 接收器和发送器、 率(DDR)、千兆位收发器块 、千兆位收发器块(GXB)、LVDS接收器和发送器、PLL重新 、 接收器和发送器 重新 配置和远程更新宏功能模块。 配置和远程更新宏功能模块。 存储器编译器:包括FIFO Partitioner、RAM和ROM宏功能模块。 宏功能模块。 • 存储器编译器:包括 、 和 宏功能模块 存储组件: • 存储组件: 包括存储器、移位寄存器宏模块和 存储器函数。 包括存储器、移位寄存器宏模块和LPM存储器函数。 存储器函数
LPM模块应用实例 7.2 LPM模块应用实例
7.2.2 定制 定制LPM_ROM初始化数据文件 初始化数据文件
2.建立.hex格式文件 .建立 格式文件
将波形数据填入mif文件表中 图7-2 将波形数据填入 文件表中
7.2.2 定制 定制LPM_ROM初始化数据文件 初始化数据文件
2.建立.hex格式文件 .建立 格式文件
以下列出了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例化示例。 例化示例。 • <输出文件 输出文件 例化示例

宏模块和LPM函数的应用

宏模块和LPM函数的应用

FPGA-CPLD原理及应用
第6章 宏模块和LPM函数的应用
三种不同形式的IP核
IP核有三种不同的存在形式:HDL语言形式、网表形式 和版图形式。 HDL语言形式是讲这种电路单元用HDL语言描述出来, 由于直接是HDL代码,因此可修改性最高,甚至可以在功 能上大修改,所以是“软”的。 而被做成版图的IP核基本不可修改,只能对应特定的工 艺库,所以是“硬”的。 做成网表的IP从功能上来说基本不可修改,但是没有和 特定的工艺库绑定,从选择工艺库的角度来说是可改的。 所以借鉴了“固件”的说法,是一种介于“软”和“硬” 之间的状态。
存储器编译器:包括FIFO、RAM和ROM宏功能模块
存储组件: 包括存储器、移位寄存器宏模块和LPM存储器 函数
FPGA-CPLD原理及应用
第6章 宏模块和LPM函数的应用
6.1 宏功能模块概述
6.1.1 知识产权(IP)核的应用
AMPP程序 MegaCore函数 OpenCore评估功能 OpenCore Plus硬件评估功能
FPGA-CPLD原理及应用
第6章 宏模块和LPM函数的应用
第6章 宏模块和LPM函数的应用
固核(Firm Core)
固核比软核有更大的设计深度,己完成了门级综合、时序 仿真并经过硬件验证,以门级网表的形式提交使用。 只要用户提供相同的单元库时序参数,一般就可以正确完 成物理设计。
固核的缺点是它与实现工艺的相关性和网表的难读性。前 者限制了固核的使用范围,后者则使得布局布线后发生的 时序问题难以排除。
FPGA-CPLD原理及应用
第6章 宏模块和LPM函数的应用
第6章 宏模块和LPM函数的应用
FPGA-CPLD原理及应用

第7章 LPM宏模块的应用

第7章 LPM宏模块的应用

E D A 技 术 与 应 用
通过Quartus II设置DSP模块构建:Assignments→Setting,在 左栏选择Analysis&Synthesis Settings项,在对话框中按More Settings按钮,在弹出的对话框中选择DSP Block Balancing项 的DSP blocks。
(2)文件直接编辑法:
使用Quartus II以外的编辑器设计.mif文件
E D A 技 术 与 应 用
例7-5:编辑器设计.mif文件
DEPTH=128; :数据深度,即存储的数据个数 WIDTH=8; :输出数据宽度 ADDRESS_RADIX=HEX;:地址数据类型,HEX表示选择十六进制 数据类型 DATA_RADIX=HEX;:存储数据类型,HEX表示选择十六进制数据 类型 CONTENT :此为关键词 BEGIN :此为关键词 0000 : 0080; 0001 : 0086; 0002 : 008C; …(数据略去) 007E : 0073; 007F : 0079; END;
1. .mif格式文件
E D A 技 术 mif数据表格中键入数据。 表格中的数据格式可通过右击 窗口边缘的地址数据所弹出的 窗口中选择。
表中任一数据对应的地址为左 列数与顶行数之和。
完成数据输入后,选择 File→Save As,保存此数据文 件,如取名为data7X8.mif。
E D A 技 术 与 应 用
例化语句中,未设定的端口必须接上特定的电平。
计数器模块lpm_counter是一个可设定参数的封闭模块,只 能通过参数传递说明语句defparam将用户设定的参数通过 文件CNT4B.v传递进lpm_counter中。

第7章 宏功能模块的应用

第7章  宏功能模块的应用

为读出数据请求信号,clock为时
钟信号,q[7..0]为数据输出端,full 为存储器溢出指示信号,empty为 FIFO空指示信号, usedw[5..0]为当前已使用的地址数指示,
图7.26 FIFO原理图
完成端口连接的FIFO原理图如图7.26所示。
7.2 存储器设计
7.2.3 FIFO设计
例如,表中任意一个数据87对应的地址为左 列16,顶行3,则地址为16+3=19, 若 用16进制表示为13H,表示存储器地址为13 H内的数据为87。完成数据输入后,保存文件并 命名名为“rom.mif”。
7.: (1)在Quartus Ⅱ主界面下单击“Tools” 菜单,选择“MegaWizard Plug_In Mange” 命令,弹出如图7.5所示对话框。
7.2 存储器设计
7.2.1 ROM设计
(5) 建立一个图形输入文件,然后点击左边(symbol tool)按钮 ,如 图7.12所示。
图7.12
7.2 存储器设计
7.2.1 ROM设计
打开Library栏中的Project下的ROM,生成的电路符号见图7.13 所示。
图7.13
7.2 存储器设计
7.2 存储器设计
7.2.1 ROM设计
lpm_type => "LPM_ROM", lpm_width => 8, lpm_widthad => 6) PORT MAP ( outclock => outclock, address => address, inclock => inclock, q => sub_wire0 ); END SYN;
7.2 存储器设计

第7章宏模块与IP应用

第7章宏模块与IP应用

组成
地址发生器:计数器(6位) VHDL顶层文件

输出频率:f = f0 /64
f :输出频率 f0:计数器时钟频率
7.2.1 正弦信号发生器设计
2、正弦信号发生器结构框图
f f0
7.2
宏模块应用实例
7.2.2 设计步骤
第一步:定制初始化数据文件 1、建立mif格式文件方法:
法① : Quartus中利用New-Other-Memory Initialization file 法② :其它编辑器设计 见例7-1 法③ : C语言设计 见例7-2 等等。
完成
7.2.2宏功能块设计步骤
6) LPM_ROM设计完成后所需的设置框
—对大多器件以下设置可以省略,只有采用CycloneⅡ需要以下设置。
注释:
生成的ROM文件可以打开,打开文件方式: 键入:init_file => “文件的目录及名称”或直接从File\open即可。 书上给出了ROM文件内容:P167.[7-3]—自看
(2)顶层原理图文件设计
■ 将LPM乘法器设置为流水线工作方式
其他模块按照顶层设计的电路一一提取,并连接完成,再编译仿真,下载 即完成全部设计。
第 7 章
宏功能模块与IP应用
7.7 LPM嵌入式锁相环调用
7.7.1 建立嵌入式锁相环元件
■ 选择输入参考时钟为20MHz
时钟为20MHz
7.7 LPM嵌入式锁相环调用
(1)建立.mif格式文件 (2)建立.hex格式文件
2.建立.hex格式文件方法:
法①:Quartus中利用 New-Other File-Hexadecimal file 见图7-2 法②:利用8051单片机编辑器设计 见图7-3

实验九 LPM应用设计

实验九   LPM应用设计

实验九LPM应用设计
一、实验目的:
掌握LPM设计方法。

二、实验内容:
用LPM设计一个3X3乘法器。

三、实验原理:
LPM 是参数可设置模块库Library of Parameterized Modules 的英语缩写,Altera 提供的可参数化宏功能模块和LPM 函数均基于Altera 器件的结构做了优化设计。

在许多实用情况中,必须使用宏功能模块才可以使用一些Altera 特定器件的硬件功能。

例如各类片上存储器、DSP 模块、LVDS 驱动器、嵌入式PLL 以及SERDES 和DDIO 电路模块等等。

这些可以以图形或硬件描述语言模块形式方便调用的宏功能块,使得基于EDA 技术的电子设计的效率和可靠性有了很大的提高。

设计者可以根据实际电路的设计需要,选择LPM 库中的适当模块,并为其设定适当的参数,就能满足自己的设计需要,从而在自己的项目中十分方便地调用优秀的电子工程技术人员的硬件设计成果。

LPM 功能模块内容丰富,每一模块的功能、参数含义、使用方法、硬件描述语言模块参数设置及调用方法都可以在Quartus Ⅱ中的Help 中查阅到,方法是选择“Help”菜单中的“Megafunctions/LPM”命令。

按照上面要求设置各项参数即可,可以通过仿真或发光二极管来验证结果。

仿真波形
思考题:
1、什么是LPM?
2、实验过程中碰到了什么问题?你是怎么解决的?。

宏功能模块应用

宏功能模块应用

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)。


硬件验证:用8个按键来表示乘数和被乘数(高4位和低4位) 如2*3,0010 0011,用8个LED表示乘机,00000110 。 该 部分请同学们自行完成
三、利用lpm_multi设计一个8位有 符号乘法器
主要参数表
序号 1 2 3 4 5 6 7 8 9 10 11 12 端口名称 dataa datab sum Clock Clken aclr result Lpm-widtha Lpm-widthb Lpm-widths LPMREPRESENTATION LPM-PIPELINE 功能描述 被乘数 乘数 部分和 输出时钟 时钟使能 异步清零 result=data*datab+sum dataa端口数据线宽度 datab端口数据线宽度 sum端口数据线宽度 选择“有符号数乘法”或者“无符号 数乘法” 流水线实现乘法器时,一次运算所需 时钟周期数

波形仿真(续) 设置乘数、被乘数
分离窗口 选择工具 文字编辑 移动工具 全屏 查找 未初始化 设置低电平0 高阻态 弱逻辑0 无关 数据总线设置 未定义信号 设置高电平1 弱未知 弱逻辑1 反转 时钟设置 随机值
选择数制 设置数值 取消数值加1操作
二、利用lpm-rom设计一个乘法器

波形仿真(续) 设置完成后保存波形文件,仿真
2、实验原理

二、利用lpm-rom设计一个乘法器

设置存储单元数目与数据宽度
存储单 元数目 数据位 宽
二、利用lpm-rom设计一个乘法器
3、实验步骤

配置乘法表数据文件
File→New→Memory Files→Memory Initialization File (或者Hexadecimal Intel Format File)
二、利用lpm-rom设计一个乘法器

设置数据文件显示格式 View→Cells Per Row
改变表格每行 显示单元个数
地址显示进制
存储数据显示 进制
二、利用lpm-rom设计一个乘法器

完成数据文件(九九乘法表)
地址低4位, 十六进制表示 9
地址高4位, 十六进制表示 9
存储数据 9 ×9=81

完成lpm_rom设置
添加定制 结果到当 前工程中
二、利用lpm-rom设计一个乘法器
例1 :采用 VHDL语言 顶层文件的设计
library ieee; use ieee.std_logic_1164.all; 两种形式:VHDL语言或者原理图调用lpm_rom模块 entity multip is --定义顶层实体 port(clk :in std_logic; a :in std_logic_vector(3 downto 0); --乘数a,即rom地址低4位 b :in std_logic_vector(3 downto 0); --乘数b,即rom地址高4位 q :out std_logic_vector(7 downto 0)); --乘积q ,即存储单元内存储数据为a×b end; architecture one of multip is component rom0 --调用rom0,即rom0.vhd声明 port(address :in std_logic_vector(7 downto 0); clock :in std_logic; q :out std_logic_vector(7 downto 0)); end component; begin u1:rom0 port map (clock=>clk,address(7 downto 4)=>b,address(3 downto 0)=>a,q=>q); end;

一、参数可设置模块库(续1)
1、ALTERA提供的宏功能模块
算术组件
如:累加器、加法器、乘法器、LPM算 术函数
门电路
如:多路复用器和LPM门函数
I/O组件
如:时钟数据恢复(CDR)、锁相环(PLL)、千兆位 收发器块(GXB)、LVDS接收器和发送器等
存储组件和存储器编译器
如:LPM_ROM、RAM
保存,文件名romdata.hex
二、利用lpm-rom设计一个乘法器

定制lpm_rom元件 Tools→MegaWizard Plug-In Manager
二、利用lpm-rom设计一个乘法器

选择元件及保存位置等
二、利用lpm-rom设计一个乘法器

设置lpm_rom参数
数据 位宽 存储单 元数目
一、参数可设置模块库(续2)

算数组件
序号 模块名称 1 2 3 4 5 6 7 8 9 10 11 12 13 altfp_add_sub altfp_div altfp_mult altmemmult altmult_accum altmult_add altfp_sqrt divide lpm_abs lpm_add_sub lpm_compare lpm_counter lpm_divide 功能描述 浮点加法器、减法器模块 浮点参数化除法器宏模块 浮点参数化乘法器宏模块 参数化存储乘法器宏模块 参数化乘累加器宏模块 参数化乘加器宏模块 参数化整数平方根运算宏模块 参数化除法器宏模块 参数化绝对值运算宏模块( Altera 推荐使用) 参数化加法器-减法器宏模块(Altera推荐使 用) 参数化比较器宏模块(Altera推荐使用) 参数化计数器宏模块(Altera推荐使用) 参数化除法器宏模块(Altera推荐使用)

由地址线(adderss)数量确定存储单元个数,如:8根地址 线address(7..0),共有256个存储单元 每个存储单元能够保存一定位数的二进制数,成为数据位 宽 写存储单元时,地址和数据的表达形式 地址:数据
8位地址 高 4位 8位地址 低 4位 0010,1000 : 0001,1000 乘数 a=2 乘数 b=8 乘积 C=16 存储的 数据
二、利用lpm-rom设计一个乘法器
例2:采用原理图
需要在打开rom0.vhd文件的情况下,选择File→Create/Update→Create Symbol Files for Current File,将其转化为原理图元件
注意:另存为与 rom0不同名的文件 名即可!
总线形式结构
二、利用lpm-rom设计一个乘法器
实验2
参数ke 设置宏功能 模块LPM的应用
一、参数可设置模块库

参数可设置模块库(Library of Parameterized Modules, LPM)是Altera公司提供的以图形或者硬件描述语言模块 形式方便调用的宏功能块

设计者可以根据设计电路的需要,选择LPM库中的适当模 块,通过对其设置参数,完成自己的设计需要。 不必进行重复模块的设计,而将更多的精力放在其他功能 的实现上,极大地提高了电子设计的效率和可靠性。
参数化锁存器宏模块
参数化双端口RAM模块 参数化ROM宏模块
一、参数可设置模块库(续6)
2、调用宏功能模块的方法
新建原理图编辑文件,双 击打开Symbol对话框调用
也可通过菜单Tools→MegaWizard Plug-In Manager
二、利用lpm-rom设计一个乘法器
1、ROM工作原理

二、利用lpm-rom设计一个乘法器

设置lpm_rom参数(续)
是否添加 使能信号
是否添加 清零信号
本例中可以不选择使 能信号和清零信号, 直接NEXT进入下一 步设置
二、利用lpm-rom设计一个乘法器

设置lpm_rom参数(续)
单击 Browse 选择数 据文件
二、利用lpm-rom设计一个乘法器
一、参数可设置模块库(续4)

I/O组件
序号 1
2 3 4 5 6
模块名称 alt4gxb
altdq altdqs altlvds_rx altlvds_tx altpll
功能描述 千兆位收发器模块
数据滤波模块 参数化的双向数据滤波器模块 低电压差分信号接收器 低电压差分信号发送器 参数化的锁相环模块
一、参数可设置模块库(续5)

存储组件
序号 1 2 3 4 模块名称 lpm_dff lpm_ff lpm_fifo lpm_fifo_dc 功能描述 参数化D触发器和移位寄存器模块 参数化触发器宏模块 参数化单时钟FIFO宏模块 参数化双时钟FIFO宏模块
5
6 7
lpm_latch
lpm_ram_dp lpm_rom

波形仿真 新建波形文件→调入节点端口→设置仿真激励(过程同全 加器波形仿真) 设置时钟信号
分离窗口 选择工具 文字编辑 移动工具 全屏 查找 未初始化 设置低电平0 高阻态 弱逻辑0 无关 数据总线设置 未定义信号 设置高电平1 弱未知 弱逻辑1 反转 时钟设置 随机值
时钟周期 设置
二、利用lpm-rom设计一个乘法器
一、参数可设置模块库(续3)

门电路
序号
1 2 3 4 5 6 7
模块名称
功能描述
lpm_and/or/xor 参数化与门模块/或门/异或门模块 lpm_bustri lpm_clshift lpm_constant lpm_decode lpm_inv lpm_mux 参数化三态缓冲器模块 参数化组合逻辑转化模块 参数化常数发生器模块 参数化解码器模块 参数化反向器模块 参数化多路转化器模块
相关文档
最新文档