您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业财务 > 参数可设置宏功能模块lpm的应用
实验2参数ke设置宏功能模块LPM的应用一、参数可设置模块库参数可设置模块库(LibraryofParameterizedModules,LPM)是Altera公司提供的以图形或者硬件描述语言模块形式方便调用的宏功能块设计者可以根据设计电路的需要,选择LPM库中的适当模块,通过对其设置参数,完成自己的设计需要。不必进行重复模块的设计,而将更多的精力放在其他功能的实现上,极大地提高了电子设计的效率和可靠性。一、参数可设置模块库(续1)1、ALTERA提供的宏功能模块算术组件如:累加器、加法器、乘法器、LPM算术函数门电路如:多路复用器和LPM门函数I/O组件如:时钟数据恢复(CDR)、锁相环(PLL)、千兆位收发器块(GXB)、LVDS接收器和发送器等存储组件和存储器编译器如:LPM_ROM、RAM一、参数可设置模块库(续2)算数组件序号模块名称功能描述1altfp_add_sub浮点加法器、减法器模块2altfp_div浮点参数化除法器宏模块3altfp_mult浮点参数化乘法器宏模块4altmemmult参数化存储乘法器宏模块5altmult_accum参数化乘累加器宏模块6altmult_add参数化乘加器宏模块7altfp_sqrt参数化整数平方根运算宏模块8divide参数化除法器宏模块9lpm_abs参数化绝对值运算宏模块(Altera推荐使用)10lpm_add_sub参数化加法器-减法器宏模块(Altera推荐使用)11lpm_compare参数化比较器宏模块(Altera推荐使用)12lpm_counter参数化计数器宏模块(Altera推荐使用)13lpm_divide参数化除法器宏模块(Altera推荐使用)一、参数可设置模块库(续3)门电路序号模块名称功能描述1lpm_and/or/xor参数化与门模块/或门/异或门模块2lpm_bustri参数化三态缓冲器模块3lpm_clshift参数化组合逻辑转化模块4lpm_constant参数化常数发生器模块5lpm_decode参数化解码器模块6lpm_inv参数化反向器模块7lpm_mux参数化多路转化器模块一、参数可设置模块库(续4)I/O组件序号模块名称功能描述1alt4gxb千兆位收发器模块2altdq数据滤波模块3altdqs参数化的双向数据滤波器模块4altlvds_rx低电压差分信号接收器5altlvds_tx低电压差分信号发送器6altpll参数化的锁相环模块一、参数可设置模块库(续5)存储组件序号模块名称功能描述1lpm_dff参数化D触发器和移位寄存器模块2lpm_ff参数化触发器宏模块3lpm_fifo参数化单时钟FIFO宏模块4lpm_fifo_dc参数化双时钟FIFO宏模块5lpm_latch参数化锁存器宏模块6lpm_ram_dp参数化双端口RAM模块7lpm_rom参数化ROM宏模块一、参数可设置模块库(续6)2、调用宏功能模块的方法也可通过菜单Tools→MegaWizardPlug-InManager新建原理图编辑文件,双击打开Symbol对话框调用二、利用lpm-rom设计一个乘法器1、ROM工作原理由地址线(adderss)数量确定存储单元个数,如:8根地址线address(7..0),共有256个存储单元每个存储单元能够保存一定位数的二进制数,成为数据位宽2、实验原理写存储单元时,地址和数据的表达形式地址:数据0010,1000:0001,10008位地址低4位8位地址高4位存储的数据乘数a=2乘数b=8乘积C=16二、利用lpm-rom设计一个乘法器设置存储单元数目与数据宽度存储单元数目数据位宽二、利用lpm-rom设计一个乘法器3、实验步骤配置乘法表数据文件File→New→MemoryFiles→MemoryInitializationFile(或者HexadecimalIntelFormatFile)二、利用lpm-rom设计一个乘法器设置数据文件显示格式View→CellsPerRow改变表格每行显示单元个数地址显示进制存储数据显示进制二、利用lpm-rom设计一个乘法器完成数据文件(九九乘法表)保存,文件名romdata.hex地址低4位,十六进制表示9地址高4位,十六进制表示9存储数据9×9=81二、利用lpm-rom设计一个乘法器定制lpm_rom元件Tools→MegaWizardPlug-InManager二、利用lpm-rom设计一个乘法器选择元件及保存位置等二、利用lpm-rom设计一个乘法器设置lpm_rom参数数据位宽存储单元数目二、利用lpm-rom设计一个乘法器设置lpm_rom参数(续)是否添加使能信号是否添加清零信号本例中可以不选择使能信号和清零信号,直接NEXT进入下一步设置二、利用lpm-rom设计一个乘法器设置lpm_rom参数(续)单击Browse选择数据文件二、利用lpm-rom设计一个乘法器完成lpm_rom设置添加定制结果到当前工程中二、利用lpm-rom设计一个乘法器顶层文件的设计两种形式:VHDL语言或者原理图调用lpm_rom模块例1:采用VHDL语言libraryieee;useieee.std_logic_1164.all;entitymultipis--定义顶层实体port(clk:instd_logic;a:instd_logic_vector(3downto0);--乘数a,即rom地址低4位b:instd_logic_vector(3downto0);--乘数b,即rom地址高4位q:outstd_logic_vector(7downto0));--乘积q,即存储单元内存储数据为a×bend;architectureoneofmultipiscomponentrom0--调用rom0,即rom0.vhd声明port(address:instd_logic_vector(7downto0);clock:instd_logic;q:outstd_logic_vector(7downto0));endcomponent;beginu1:rom0portmap(clock=clk,address(7downto4)=b,address(3downto0)=a,q=q);end;二、利用lpm-rom设计一个乘法器例2:采用原理图需要在打开rom0.vhd文件的情况下,选择File→Create/Update→CreateSymbolFilesforCurrentFile,将其转化为原理图元件总线形式结构注意:另存为与rom0不同名的文件名即可!二、利用lpm-rom设计一个乘法器波形仿真新建波形文件→调入节点端口→设置仿真激励(过程同全加器波形仿真)设置时钟信号时钟周期设置设置高电平1设置低电平0高阻态未定义信号时钟设置数据总线设置未初始化弱未知弱逻辑1弱逻辑0反转随机值文字编辑移动工具全屏选择工具分离窗口查找无关二、利用lpm-rom设计一个乘法器波形仿真(续)设置乘数、被乘数设置高电平1设置低电平0高阻态未定义信号时钟设置数据总线设置未初始化弱未知弱逻辑1弱逻辑0反转随机值文字编辑移动工具全屏选择工具分离窗口查找无关选择数制设置数值取消数值加1操作二、利用lpm-rom设计一个乘法器波形仿真(续)设置完成后保存波形文件,仿真硬件验证:用8个按键来表示乘数和被乘数(高4位和低4位)如2*3,00100011,用8个LED表示乘机,00000110。该部分请同学们自行完成三、利用lpm_multi设计一个8位有符号乘法器序号端口名称功能描述1dataa被乘数2datab乘数3sum部分和4Clock输出时钟5Clken时钟使能6aclr异步清零7resultresult=data*datab+sum8Lpm-widthadataa端口数据线宽度9Lpm-widthbdatab端口数据线宽度10Lpm-widthssum端口数据线宽度11LPM-REPRESENTATION选择“有符号数乘法”或者“无符号数乘法”12LPM-PIPELINE流水线实现乘法器时,一次运算所需时钟周期数主要参数表
本文标题:参数可设置宏功能模块lpm的应用
链接地址:https://www.777doc.com/doc-7187312 .html