当前位置:文档之家› 参数可设置宏功能模块lpm的应用

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



硬件验证:用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 参数化三态缓冲器模块 参数化组合逻辑转化模块 参数化常数发生器模块 参数化解码器模块 参数化反向器模块 参数化多路转化器模块
相关主题