版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验要求:LPM定制方法实现。信号数字值存储在ROM中,可以是64个或128个,位长8位。产生的信号可以是正弦波或方波、三角波、锯齿波等,自选。用SignalTap逻辑分析。实验六(一)信号发生器1.LPM模块应用设计原理
正弦信号发生器结构框图
f=f0/64举例:正弦信号发生器2.定制LPM_ROM初始化数据文件
建立.mif格式文件
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;
#include<stdio.h>#include"math.h"main(){inti;floats;for(i=0;i<1024;i++){s=sin(atan(1)*8*i/1024);printf("%d:%d;\n",i,(int)((s+1)*1023/2));}}把上述程序编译成程序后,可在DOS命令行下执行命令:romgen>sin_rom.mif;建立.hex格式文件
将波形数据填入mif文件表中
ASM格式建hex文件
3.定制LPM_ROM元件
定制新的宏功能块
LPM宏功能块设定
选择data_rom模块数据线和地址线宽度
选择地址锁存信号inclock调入ROM初始化数据文件并选择在系统读写功能
LPM_ROM设计完成
修改后的用于例化的波形数据ROM文件:data_rom.vhdLIBRARYieee;USEieee.std_logic_1164.all;LIBRARYaltera_mf;USEaltera_mf.altera_mf_components.all;--使用宏功能库中的所有元件ENTITYdata_romIS PORT(address :INSTD_LOGIC_VECTOR(5DOWNTO0); inclock :INSTD_LOGIC; q :OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDdata_rom;ARCHITECTURESYNOFdata_romIS SIGNALsub_wire0 :STD_LOGIC_VECTOR(7DOWNTO0); COMPONENTaltsyncram--例化altsyncram元件,调用了LPM模块altsyncram GENERIC(--参数传递语句 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;KX康芯科技接下页BEGIN q<=sub_wire0(7DOWNTO0); altsyncram_component:altsyncram GENERICMAP(intended_device_family=>"Cyclone",--参数传递映射 width_a=>8,--数据线宽度8 widthad_a=>6,--地址线宽度6 numwords_a=>64,--数据数量64 operation_mode=>"ROM",--LPM模式ROM outdata_reg_a=>"UNREGISTERED",--输出无锁存 address_aclr_a=>"NONE",--无异步地址清0 outdata_aclr_a=>"NONE",--无输出锁存异步清0 width_byteena_a=>1,--byteena_a输入口宽度1 init_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;KX康芯科技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;仿真波形输出
嵌入式逻辑分析仪获得的波形
采用流水线技术完成高速数字相关器设计。具体要求如下:输入为两路16位串行序列;先设计并行16位数字相关器,估计最大延时,并计算可能运行的最高频率;使用流水线技术在1位数字相关器的输入、输出及每一级组合逻辑的结果处加入流水线寄存器,改善其运行速度,估计最大延时,并计算可能运行的最高频率;实验六(二)数字相关器速度优化方法1.流水线设计
图9-5未使用流水线
图9-6使用流水线图9-7流水线工作图示
LIBRARYieee;USEieee.std_logic_1164.all;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;ENTITYadder4ISPORT(clk:instd_logic;a0,a1,a2,a3:instd_logic_vector(7downto0);yout:outstd_logic_vector(9downto0));ENDadder4;ARCHITECTUREnormal_archOFadder4ISsignalt0,t1,t2,t3:std_logic_vector(7downto0);signaladdtmp0,addtmp1:std_logic_vector(8downto0);BEGINprocess(clk)beginif(clk'eventandclk='1')thent0<=a0;t1<=a1;t2<=a2;t3<=a3;endif;endprocess;addtmp0<='0'&t0+t1;addtmp1<='0'&t2+t3;process(clk)beginif(clk'eventandclk='1')thenyout<='0'&addtmp0+addtmp1;endif;endprocess;ENDnormal_arch;KX康芯科技图9-8不合理的结构
LIBRARYieee;USEieee.std_logic_1164.all;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;ENTITYpipeaddISPORT(clk:instd_logic;a0,a1,a2,a3:instd_logic_vector(7downto0);yout:outstd_logic_vector(9downto0));ENDpipeadd;ARCHITECTUREpipelining_archOFpipeaddISsignalt0,t1,t2,t3:std_logic_vector(7downto0);signaladdtmp0,addtmp1:std_logic_vector(8downto0);BEGINprocess(clk)beginif(clk'eventandclk='1')thent0<=a0;t1<=a1;t2<=a2;t3<=a3;endif;endprocess;process(clk)beginif(clk'eventandclk='1')thenaddtmp0<='0'&t0+t1;addtmp1<='0'&t2+t3;yout<='0'&addtmp0+addtmp1;endif;endprocess;ENDpipelining_arch;
KX康芯科技2.寄存器配平
图9-9寄存器配平的结构
3.关键路径法
图9-10关键路径示意
优化设置与时序分析1.Settings设置
1.修改工程设置。2.指定HDL设置。3.指定时序设置。4.指定编译器设置。5.指定仿真器设置。6.指定软件构建设置。7.指定HardCopy时序设置。2.Analysis&Synthesis的优化设置
进行WYSIWYG(所见即所得类型)基本单元再综合。
进行逻辑门级寄存器重新设置。Tsu/Tco和Fmax之间进行折中取舍。
3.适配器Fitter设置
图9-11适配器Fitter设置
4.增量布局布线控制设置
图9-12反标设置
5.使用DesignAssistant检查设计可靠性
图9-13DesignAssistant设置
6.时序设置与分析
图9-14全编译前时序条件设置(设置时钟信号CLK不低于130MHz)
图9-15由TimingWizard窗口设置时序条件
)
7.查看时序分析结果
图9-16时序分析报告窗
图9-17TimingAnalyzerTool项进入的时序分析报告窗
适配优化设置示例
LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYSINGTISPORT(CLK:INSTD_LOGIC;DOUT:OUTINTEGERRANGE255DOWNTO0);END;ARCHITECTUREDACCOFSINGTISSIGNALQ:INTEGERRANGE63DOWNTO0;SIGNALD:INTEGERRANGE255DOWNTO0;BEGINPROCESS(CLK)BEGINIFCLK'EVENTANDCLK='1'THENIFQ<63THENQ<=Q+1;ELSEQ<=0;ENDIF;ENDIF;ENDPROCESS;PROCESS(Q)BEGINCASEQISWHEN00=>D<=255;WHEN01=>D<=254;WHEN02=>D<=252;WHEN03=>D<=249;WHEN04=>D<=245;WHEN05=>D<=239;WHEN06=>D<=233;WHEN07=>D<=225;WHEN08=>D<=217;WHEN09=>D<=207;WHEN10=>D<=197;WHEN11=>D<=186;WHEN12=>D<=174;WHEN13=>D<=162;WHEN14=>D<=150;WHEN15=>D<=137;WHEN16=>D<=124;WHEN17=>D<=112;WHEN18=>D<=99;WHEN19=>D<=87;WHEN20=>D<=75;WHEN21=>D<=64;WHEN22=>D<=53;WHEN23=>D<=43;WHEN24=>D<=34;WHEN25=>D<=26;WHEN26=>D<=19;WHEN27=>D<=13;WHEN28=>D<=8;WHEN29=>D<=4;WHEN30=>D<=1;WHEN31=>D<=0;WHEN32=>D<=0;WHEN33=>D<=1;WHEN34=>D<=4;WHEN35=>D<=8;WHEN36=>D<=13;WHEN37=>D<=19;WHEN38=>D<=26;WHEN39=>D<=34;WHEN40=>D<=43;WHEN41=>D<=53;WHEN42=>D<=64;WHEN43=>D<=75;WHEN44=>D<=87;WHEN45=>D<=99;WHEN46=>D<=112;WHEN47=>D<=124;WHEN48=>D<=137;WHEN49=>D<=150;WHEN50=>D<=162;WHEN51=>D<=174;WHEN52=>D<=186;WHEN53=>D<=197;WHEN54=>D<=207;WHEN55=>D<=217;WHEN56=>D<=225;WHEN57=>D<=233;WHEN58=>D<=239;WHEN59=>D<=245;WHEN60=>D<=249;WHEN61=>D<=252;WHEN62=>D<=254;WHEN63=>D<=255;WHENOTHERS=>NULL;ENDCASE;ENDPROCESS;DOUT<=D;END;
KX康芯科技图9-18未用乘积项前的编译报告
图9-19针对工程选择LocateinAssignmentEditor图9-20选用乘积项逻辑优化
图9-21在floorplan中可以看到使用了32个ESB图9-22使用了乘积项的编译报告
8.SlowSlewRate设置
图9-23SlowSlewRate选择
9.LogicLock优化技术
QuartusII提供了一种非常优秀的优化技术,即逻辑锁定技术(LogicLock)。
QuartusII支持逻辑锁定技术的FPGA器件系列有APEX20K、APEXII、Excalibur、Cyclone和Stratix等。
由一个4位十进制数码管(含小数点)显示结果;测量范围为1Hz~9999KHz;能自动根据7位十进制的结果,自动选择有效数据的高4位进行动态显示(即量程自动转换),小数点表示是千位,即KHz;为检测设计正确与否,应将第2时钟通过PLL和手控分频器产生宽范围的多个频率来测试自动换档频率计功能。实验六(三)自动换挡频率计频率计原理:测定信号的频率必须有一个脉宽为1秒的输入信号脉冲计数允许的信号;1秒计数结束后,计数值被锁入锁存器,计数器清0,为下一测频计数周期作好准备。测频控制信号可以由一个独立的发生器来产生,即图7-34中的FTCTRL。设计要求是:FTCTRL的计数使能信号CNT_EN能产生一个1秒脉宽的周期信号,并对频率计中的32位二进制计数器COUNTER32B(图7-34)的ENABL使能端进行同步控制。当CNT_EN高电平时允许计数;低电平时停止计数,并保持其所计的脉冲数。在停止计数期间,首先需要一个锁存信号LOAD的上跳沿将计数器在前1秒钟的计数值锁存进锁存器REG32B中,并由外部的16进制7段译码器译出,显示计数值。设置锁存器的好处是数据显示稳定,不会由于周期性的清0信号而不断闪烁。锁存信号后,必须有一清0信号RST_CNT对计数器进行清零,为下1秒的计数操作作准备。
8位16进制频率计设计举例图7-34频率计电路框图
LIBRARYIEEE;--测频控制电路USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYFTCTRLISPORT(CLKK:INSTD_LOGIC;--1HzCNT_EN:OUTSTD_LOGIC;--计数器时钟使能RST_CNT:OUTSTD_LOGIC;--计数器清零Load:OUTSTD_LOGIC);--输出锁存信号ENDFTCTRL;ARCHITECTUREbehavOFFTCTRLISSIGNALDiv2CLK:STD_LOGIC;BEGINPROCESS(CLKK)BEGINIFCLKK'EVENTANDCLKK='1'THEN--1Hz时钟2分频Div2CLK<=NOTDiv2CLK;ENDIF;ENDPROCESS;PROCESS(CLKK,Div2CLK)BEGINIFCLKK='0'ANDDiv2CLK='0'THENRST_CNT<='1';--产生计数器清零信号ELSERST_CNT<='0';ENDIF;ENDPROCESS;Load<=NOTDiv2CLK;CNT_EN<=Div2CLK;ENDbehav;
KX康芯科技LIBRARYIEEE;--32位锁存器USEIEEE.STD_LOGIC_1164.ALL;ENTITYREG32BISPORT(LK:INSTD_LOGIC;DIN:INSTD_LOGIC_VECTOR(31DOWNTO0);DOUT:OUTSTD_LOGIC_VECTOR(31DOWNTO0));ENDREG32B;ARCHITECTUREbehavOFREG32BISBEGINPROCESS(LK,DIN)BEGINIFLK'EVENTANDLK='1'THENDOUT<=DIN;ENDIF;ENDPROCESS;ENDbehav;
LIBRARYIEEE;--32位计数器USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCOUNTER32BISPORT(FIN:INSTD_LOGIC;--时钟信号CLR:INSTD_LOGIC;--清零信号ENABL:INSTD_LOGIC;--计数使能信号DOUT:OUTSTD_LOGIC_VECTOR(31DOWNTO0));--计数结果ENDCOUNTER32B;ARCHITECTUREbehavOFCOUNTER32BISSIGNALCQI:STD_LOGIC_VECTOR(31DOWNTO0);BEGINPROCESS(FIN,CLR,ENABL)BEGINIFCLR='1'THENCQI<=(OTHERS=>'0');--清零ELSIFFIN'EVENTANDFIN='1'THENIFENABL='1'THENCQI<=CQI+1;ENDIF;ENDIF;ENDPROCESS;DOUT<=CQI;ENDbehav;KX康芯科技LIBRARYIEEE;--频率计顶层文件LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYFREQTESTISPORT(CLK1HZ:INSTD_LOGIC;FSIN:INSTD_LOGIC;DOUT:OUTSTD_LOGIC_VECTOR(31DOWNTO0));ENDFREQTEST;ARCHITECTUREstrucOFFREQTESTISCOMPONENTFTCTRLPORT(CLKK:INSTD_LOGIC;--1HzCNT_EN:OUTSTD_LOGIC;--计数器时钟使能RST_CNT:OUTSTD_LOGIC;--计数器清零Load:OUTSTD_LOGIC);--输出锁存信号ENDCOMPONENT;COMPONENTCOUNTER32BPORT(FIN:INSTD_LOGIC;--时钟信号CLR:INSTD_LOGIC;--清零信号ENABL:INSTD_LOGIC;--计数使能信号DOUT:OUTSTD_LOGIC_VECTOR(31DOWNTO0));--计数结果ENDCOMPONENT;COMPONENTREG32B接下页KX康芯科技PORT(LK:INSTD_LOGIC;DIN:INSTD_LOGIC_VECTOR(31DOWNTO0);DOUT:OUTSTD_LOGIC_VECTOR(31DOWNTO0));ENDCOMPONENT;SIGNALTSTEN1:STD_LOGIC;SIGNALCLR_CNT1:STD_LOGIC;SIGNALLoad1:STD_LOGIC;SIGNALDTO1:STD_LOGIC_VECTOR(31DOWNTO0);SIGNALCARRY_OUT1:STD_LOGIC_VECTOR(6DOWNTO0);BEGINU1:FTCTRLPORTMAP(CLKK=>CLK1HZ,CNT_EN=>TSTEN1,RST_CNT=>CLR_CNT1,Load=>Load1);U2:REG32BPORTMAP(LK=>Load1,DIN=>DTO1,DOUT=>DOUT);U3:COUNTER32BPORTMAP(FIN=>FSIN,CLR=>CLR_CNT1,ENABL=>TSTEN1,DOUT=>DTO1);ENDstruc;
KX康芯科技图7-33频率计测频控制器FTCTRL测控时序图
实验六(四)直接数字式频率合成器
DDS设计
图12-41DDS基本结构
图12-42相位累加器位宽和采样点关系
接下页LIBRARYIEEE;--DDS顶层设计USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYDDS_VHDLISPORT(CLK:INSTD_LOGIC;FWORD:INSTD_LOGIC_VECTOR(7DOWNTO0);--频率控制字PWORD:INSTD_LOGIC_VECTOR(7DOWNTO0);--相位控制字FOUT:OUTSTD_LOGIC_VECTOR(9DOWNTO0));END;ARCHITECTUREoneOFDDS_VHDLISCOMPONENTREG32BPORT(LOAD:INSTD_LOGIC;DIN:INSTD_LOGIC_VECTOR(31DOWNTO0);DOUT:OUTSTD_LOGIC_VECTOR(31DOWNTO0));ENDCOMPONENT;COMPONENTREG10BKX康芯科技PORT(LOAD:INSTD_LOGIC;DIN:INSTD_LOGIC_VECTOR(9DOWNTO0);DOUT:OUTSTD_LOGIC_VECTOR(9DOWNTO0));ENDCOMPONENT;COMPONENTADDER32BPORT(A:INSTD_LOGIC_VECTOR(31DOWNTO0);B:INSTD_LOGIC_VECTOR(31DOWNTO0);S:OUTSTD_LOGIC_VECTOR(31DOWNTO0));ENDCOMPONENT;COMPONENTADDER10BPORT(A:INSTD_LOGIC_VECTOR(9DOWNTO0);B:INSTD_LOGIC_VECTOR(9DOWNTO0);S:OUTSTD_LOGIC_VECTOR(9DOWNTO0));ENDCOMPONENT;COMPONENTSIN_ROMPORT (address :INSTD_LOGIC_VECTOR(9DOWNTO0); inclock :INSTD_LOGIC;接下页KX康芯科技 q :OUTSTD_LOGIC_VECTOR(9DOWNTO0) );ENDCOMPONENT;SIGNALF32B,D32B,DIN32B:STD_LOGIC_VECTOR(31DOWNTO0);SIGNALP10B,LIN10B,SIN10B:STD_LOGIC_VECTOR(9DOWNTO0);BEGINF32B(27DOWNTO20)<=FWORD;F32B(31DOWNTO28)<="0000";P10B(1DOWNTO0)<="00";F32B(19DOWNTO0)<="00000000000000000000";P10B(9DOWNTO2)<=PWORD;u1:ADDER32BPORTMAP(A=>F32B,B=>D32B,S=>DIN32B);u2:REG32BPORTMAP(DOUT=>D32B,DIN=>DIN32B,LOAD=>CLK);u3:SIN_ROMPORTMAP(address=>SIN10B,q=>FOUT,inclock=>CLK);u4:ADDER10BPORTMAP(A=>P10B,B=>D32B(31DOWNTO22),S=>LIN10B);u5:REG10BPORTMAP(DOUT=>SIN10B,DIN=>LIN10B,LOAD=>CLK);END;KX康芯科技LIBRARYIEEE;--32位加法器模块USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYADDER32BISPORT(A,B:INSTD_LOGIC_VECTOR(31DOWNTO0);S:OUTSTD_LOGIC_VECTOR(31DOWNTO0));ENDADDER32B;ARCHITECTUREbehavOFADDER32BISBEGIN S<=A+B;ENDbehav;LIBRARYIEEE;--32位寄存器模块USEIEEE.STD_LOGIC_1164.ALL;ENTITYREG32BISPORT(Load:INSTD_LOGIC;DIN:INSTD_LOGIC_VECTOR(31DOWNTO0);DOUT:OUTSTD_LOGIC_VECTOR(31DOWNTO0));ENDREG32B;ARCHITECTUREbehavOFREG32BISBEGINPROCESS(Load,DIN)BEGINIFLoad'EVENTANDLoad='1'THENDOUT<=DIN;ENDIF;
ENDPROrom_data.mif10位正弦波数据文件,读者可用MATLAB/DSPBuilder生成WIDTH=10;DEPTH=1024;ADDRESS_RADIX=DEC;DATA_RADIX=DEC;CONTENTBEGIN0:512;1:515;2:518;3:521;4:524;5:527;6:530;7:533;8:537;9:540;10:543;11:546;12:549;13:552;14:555;......(略去部分数据)1018:493;1019:496;1020:499;1021:502;1022:505;1023:508;END;LIBRAR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 道德讲堂活动总结
- 管理人员的年度工作计划8篇
- 开学学生演讲稿范文(33篇)
- 高三冲刺的加油稿范文(3篇)
- 责任胜于能力读后心得体会
- 设计承诺书15篇
- 陕西省西安市2024-2025学年高一上学期期中物理试卷(无答案)
- 广东省汕头市潮阳区2024-2025学年高一上学期11月期中英语试题(无答案)
- 广东高考语文三年模拟真题(21-23年)知识点汇编-文学类文本阅读
- 标准劳务外包协议
- 麟北煤矿数据中心技术方案
- 六年级上册英语试题- Module1 Family and friends单元测试 牛津上海版(含答案及解析)
- 农产品市场营销智慧树知到期末考试答案章节答案2024年东北农业大学
- 人工智能的好处和坏处
- 安全隐患规范依据查询手册22大类12万字
- 中华民族共同体概论课件专家版6第六讲 五胡入华与中华民族大交融(魏晋南北朝)
- 储能电站安全教育培训
- 2024中小企业ESG信息披露指南
- 2024年食品安全考试题库及答案
- 巨量直播电商运营认证考试64题
- 高职专业人才培养方案-护理专业人才培养方案
评论
0/150
提交评论