您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业财务 > 第7章 LPM参数化宏模块应用07
1EDA技术与VHDL第7章LPM参数化宏模块应用HQUEDA中心HQUEDA中心27.1宏功能模块概述Altera提供的宏功能模块与LPM函数有:类型类型类型类型描述描述描述描述算术组件:包括累加器、加法器、乘法器和LPM算术函数;门电路:包括多路复用器和LPM门函数。I/O组件:包括时钟数据恢复(CDR)、锁相环(PLL)、双数据速率(DDR)、千兆位收发器块(GXB)、LVDS接收器和发送器、PLL重新配置和远程更新宏功能模块。存储器编译器:包括FIFOPartitioner、RAM和ROM宏功能模块。存储组件:包括存储器、移位寄存器宏模块和LPM存储器函数。HQUEDA中心37.1宏功能模块概述7.1.1知识产权(IP)核的应用AMPP程序MegaCore函数OpenCore评估功能OpenCorePlus硬件评估功能HQUEDA中心47.1宏功能模块概述7.1.2使用MegaWizardPlug-InManager以下列出了MegaWizardPlug-InManager为用户生成的每个自定义宏功能模块变量而生成的文件。输出文件.bsf:BlockEditor中使用的宏功能模块的符号(元件)。输出文件.cmp:组件申明文件。输出文件.inc:宏功能模块包装文件中模块的AHDL包含文件。输出文件.tdf:要在AHDL设计中实例化的宏功能模块包装文件。输出文件.vhd:要在VHDL设计中实例化的宏功能模块包装文件。输出文件.v:要在VerilogHDL设计中实例化的宏功能模块包装文件。输出文件_bb.v:VerilogHDL设计所用宏功能模块包装文件中模块的空体或black-box申明,用于在使用EDA综合工具时指定端口方向。输出文件_inst.tdf:宏功能模块包装文件中子设计的AHDL例化示例。输出文件_inst.vhd:宏功能模块包装文件中实体的VHDL例化示例。输出文件_inst.v:宏功能模块包装文件中模块的VerilogHDL例化示例。HQUEDA中心57.1宏功能模块概述7.1.3在QuartusII中对宏功能模块进行例化1、在VerilogHDL和VHDL中例化2、使用端口和参数定义3、使用端口和参数定义生成宏功能模块计数器加法/减法器乘法器乘-累加器和乘-加法器RAM移位寄存器HQUEDA中心67.2LPM模块应用实例7.2.1电路设计原理图7-1正弦信号发生器结构框图f=f0/64HQUEDA中心77.2LPM模块应用实例7.2.2定制LPM_ROM初始化数据文件1.建立.mif格式文件【例7-1】WIDTH=8;DEPTH=64;ADDRESS_RADIX=HEX;DATA_RADIX=HEX;CONTENTBEGIN0:FF;1:FE;2:FC;3:F9;4:F5;…(数据略去)3D:FC;3E:FE;3F:FF;END;HQUEDA中心87.2LPM模块应用实例7.2.2定制LPM_ROM初始化数据文件1.建立.mif格式文件【例7-2】#includestdio.h#includemath.hmain(){inti;floats;for(i=0;i1024;i++){s=sin(atan(1)*8*i/1024);printf(%d:%d;\n,i,(int)((s+1)*1023/2));}}把上述程序编译成程序后,可在DOS命令行下执行命令:romgensin_rom.mif;HQUEDA中心97.2LPM模块应用实例7.2.2定制LPM_ROM初始化数据文件2.建立.hex格式文件图7-2将波形数据填入mif文件表中HQUEDA中心107.2.2定制LPM_ROM初始化数据文件2.建立.hex格式文件图7-3ASM格式建hex文件HQUEDA中心117.2.2定制LPM_ROM初始化数据文件2.建立.hex格式文件图7-4sdata.hex文件的放置路径7.2LPM模块应用实例HQUEDA中心127.2.3定制LPM_ROM元件图7-5定制新的宏功能块7.2LPM模块应用实例HQUEDA中心137.2.3定制LPM_ROM元件图7-6LPM宏功能块设定HQUEDA中心147.2.3定制LPM_ROM元件图7-7选择data_rom模块数据线和地址线宽度7.2LPM模块应用实例HQUEDA中心157.2.3定制LPM_ROM元件图7-8选择地址锁存信号inclock7.2LPM模块应用实例HQUEDA中心167.2.3定制LPM_ROM元件图7-9调入ROM初始化数据文件并选择在系统读写功能HQUEDA中心177.2.3定制LPM_ROM元件图7-10LPM_ROM设计完成7.2LPM模块应用实例HQUEDA中心18【例7-3】修改后的用于例化的波形数据ROM文件:data_rom.vhdLIBRARYieee;USEieee.std_logic_1164.all;LIBRARYaltera_mf;USEaltera_mf.altera_mf_components.all;--使用宏功能库中的所有元件ENTITYdata_romISPORT(address:INSTD_LOGIC_VECTOR(5DOWNTO0);inclock:INSTD_LOGIC;q:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDdata_rom;ARCHITECTURESYNOFdata_romISSIGNALsub_wire0:STD_LOGIC_VECTOR(7DOWNTO0);COMPONENTaltsyncram--例化altsyncram元件,调用了LPM模块altsyncramGENERIC(--参数传递语句intended_device_family:STRING;--类属参量数据类型定义width_a:NATURAL;widthad_a:NATURAL;numwords_a:NATURAL;operation_mode:STRING;outdata_reg_a:STRING;address_aclr_a:STRING;outdata_aclr_a:STRING;width_byteena_a:NATURAL;init_file:STRING;lpm_hint:STRING;lpm_type:STRING);PORT(clock0:INSTD_LOGIC;--altsyncram元件接口声明address_a:INSTD_LOGIC_VECTOR(5DOWNTO0);q_a:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDCOMPONENT;接下页HQUEDA中心HQUEDA中心19【例7-3】BEGINq=sub_wire0(7DOWNTO0);altsyncram_component:altsyncramGENERICMAP(intended_device_family=Cyclone,--参数传递映射width_a=8,--数据线宽度8widthad_a=6,--地址线宽度6numwords_a=64,--数据数量64operation_mode=ROM,--LPM模式ROMoutdata_reg_a=UNREGISTERED,--输出无锁存address_aclr_a=NONE,--无异步地址清0outdata_aclr_a=NONE,--无输出锁存异步清0width_byteena_a=1,--byteena_a输入口宽度1init_file=./dataHEX/SDATA.hex,--ROM初始化数据文件,此处已修改过lpm_hint=ENABLE_RUNTIME_MOD=YES,INSTANCE_NAME=NONE,lpm_type=altsyncram)--LPM类型PORTMAP(clock0=inclock,address_a=address,q_a=sub_wire0);ENDSYN;HQUEDA中心207.2.4完成顶层设计【例7-4】正弦信号发生器顶层设计LIBRARYIEEE;--正弦信号发生器源文件USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYSINGTISPORT(CLK:INSTD_LOGIC;--信号源时钟DOUT:OUTSTD_LOGIC_VECTOR(7DOWNTO0));--8位波形数据输出END;ARCHITECTUREDACCOFSINGTISCOMPONENTdata_rom--调用波形数据存储器LPM_ROM文件:data_rom.vhd声明PORT(address:INSTD_LOGIC_VECTOR(5DOWNTO0);--6位地址信号inclock:INSTD_LOGIC;--地址锁存时钟q:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDCOMPONENT;SIGNALQ1:STD_LOGIC_VECTOR(5DOWNTO0);--设定内部节点作为地址计数器BEGINPROCESS(CLK)--LPM_ROM地址发生器进程BEGINIFCLK'EVENTANDCLK='1'THENQ1=Q1+1;--Q1作为地址发生器计数器ENDIF;ENDPROCESS;u1:data_romPORTMAP(address=Q1,q=DOUT,inclock=CLK);--例化END;7.2LPM模块应用实例HQUEDA中心217.2.4完成顶层设计7.2LPM模块应用实例图7-11仿真波形输出图7-12嵌入式逻辑分析仪获得的波形HQUEDA中心227.3在系统存储器数据读写编辑器应用图7-13In-SystemMemoryContentEditor编辑窗HQUEDA中心237.3在系统存储器数据读写编辑器应用图7-14与实验系统上的FPGA通信正常情况下的编辑窗界面HQUEDA中心247.3在系统存储器数据读写编辑器应用图7-15从FPGA中的ROM读取波形数据HQUEDA中心257.3在系统存储器数据读写编辑器应用图7-16下载编辑数据后的SignalTapII采样波形图7-16编辑波形数据HQUEDA中心267.4编辑SignalTapII的触发信号图7-17选择高级触发条件HQUEDA中心277.4编辑SignalTapII的触发信号图7-18进入“触发条件函数编辑”窗口HQUEDA中心287.4编辑SignalTapII的触发信号图7-19编辑触发函数HQUEDA中心297.5.1RAM定制7.5其它存储器模块的定制与应用图7-20编辑定制RAMHQUEDA中心307.5.1RAM定制7.5其它存储器模块的定制与应用图7-21LPM_RAM的仿真波形HQUEDA中心317.5.2FIFO定制7.5其它存储器模块的定制与应用图7-22FIFO编辑窗HQUEDA中心327.5.2FIFO定制7.5其它存储器模块的定制与应用图7-23FIFO的仿真波形HQUEDA中心337.5.3基于LPM_ROM的4位乘法器设计7.5其它存储器模块的定制与应用【例7-5】WIDTH=8;DEPTH=256;ADDRESS_RADIX=HEX;DATA_RADIX=HEX;CONTENTBEGIN00: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
本文标题:第7章 LPM参数化宏模块应用07
链接地址:https://www.777doc.com/doc-4582438 .html