Quartus_II_学习笔记.doc
上传人:sy****28 上传时间:2024-09-14 格式:DOC 页数:2 大小:28KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

Quartus_II_学习笔记.doc

Quartus_II_学习笔记.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

QuartusII学习笔记时钟部分:1.clockskew时钟偏斜,指同一个时钟源到达不同寄存器时钟端的时间的差别。主要原因在于时钟路径到达不同的寄存器的长度不同。FPGA有全铜层的全局时钟网络驱动,全局时钟的CLOCKSKEW很小。2.全局时钟设置:Assignments---setting---Analysis&SynthesisSetting的FitterSetting的Moresetting里AUTOGlobalClock.选中的话会在布线时,自动把一些高扇出的时钟信号走到全局网络上,则可以显著提高这些扇出结点的性能,同时也节省了普通的布线资。“AUTOGlobalRegisterControlSignals”选项打开,那么会把高扇出的寄存器控制信号走到全局网络上,包括请零和复位和时钟使能等。用户可以通过QUARTUS的Assignments---setting来对内部走线进行增加约束,决定是否让其走到全局网络上,详细部分参考《ALTERAFPGA/CPLD设计(高级篇)》的第2章的时序问题。3.当我在这些寄存器间再添加一级寄存器做流水线优化,并且需要在QuartusII的SynthesisNetlistOptimizations设置选项中,使能PeRFormgate-levelregisterretiming;同时在QuartusII的PhysicalSynthesisOptimizations设置选项中,使能Performregisterduplication和Performregisterretiming两个选项,Quartus会自动优化寄存器间的组合逻辑。语法部分:signalstate:integerrange0to4;q<=(others=>0):把信号q所有的位赋值libraryieee;useieee.std_logic_1164.all;useieee.std_unsigned.all;useieee.std_numeric.all;实现+和-的操作在vhdl语句中,如果if语句包含对两个时钟上升沿的检测,比如说底下p1程序中clk1,clk2的情况.那么quartusii软件是无法综合该语句的。Becausethestatementtestsfortheclockedgesofmultipleclocks,theQuartusII,softwarecannotsynthesizelogicforthestatement.p1:PROCESS(clk1,clk2,reset)BEGINIF(reset='0')THENQ1<='0';Q2<='0';ELSEIF(rising_edge(clk1))THENQ1<=data1;ELSEIF(rising_edge(clk2))THENQ2<=data2;ENDIF;ENDPROCESS;解决方法:可以将这种语句因式分解成if多个语句,每个语句监视单个时钟上升沿。factorsthintosth2:因式分解sth.PROCESS(clk1,clk2,reset)BEGINIF(reset='0')THENq1<='0';ELSEIF(rising_edge(clk1))THENq1<=data1;ENDIF;IF(reset='0')THENq2<='0';ELSEIF(rising_edge(clk2))THENq2<=data2;ENDIF;ENDPROCESS;仿真部分:1.精确的时钟约束(timingconstraints)可以引导布线布局引擎优化你的设计。当完成一次布局布线,用quartusii的classictiminganalyzerorthetimequesttiminganalyzer用于分析关键路径的弛豫。如果你用timinganalyzer用assignmenteditor来创建timingconstraints.方法如下:进入assignmentedtor,在categorylist里选择timing并且设置timingassignment在下拉列表中。有两种方式可以用来处理timingconstraints一种是classictiminganalyzer用assignmenteditor来创建。另一种方式使用TimeQuestTimingAnalyzer,这种方式用(.sdc)file.来编辑。