第5章 基于FPGA的DSP开发技术 SOPC技术与应用
更新时间:2023-07-17 08:59:01 阅读量: 实用文档 文档下载
DSP Builder可以帮助用户完成基于FPGA的DSP系统设计,除了可以进行图形化的系统建模外,DSP Builder还可以自动完成大部分的设计过程和仿真,直至把设计文件下载到FPGA芯片中。
DSP Builder可以帮助用户完成基于FPGA的DSP系统设计,除了可以进行图形化的系统建模外,DSP Builder还可以自动完成大部分的设计过程和仿真,直至把设计文件下载到FPGA芯片中。
第1节 基于 MATLAB/DSP Builder的DSP模块设计流程
DSP Builder是一个系统级(算法级)设计工具,但同时它把系统级(算法仿真建模)和RTL级(硬件实现)的设计工具连接起来,使算法开发到硬件的实现可 以无缝地过渡。使用Matlab/DSP Builder进行DSP系统的开发必须要安装Matlab和DSP Builder软件。
DSP Builder设计包括两套流程:自动流程和手动流程:
设计流程的第一步
在Matlab/Simulink中进行设计输入,在Matlab/Simulink中建立一个模型文件(mdl文件),用图形方式调用DSP Builder和其它Simulink库中的模块,构成系统级或算法级设计框图。利用Simulink的图形化仿真、分析功能,分析此设计模型的正确性, 完成模型仿真。第一步设计同一般的
DSP Builder可以帮助用户完成基于FPGA的DSP系统设计,除了可以进行图形化的系统建模外,DSP Builder还可以自动完成大部分的设计过程和仿真,直至把设计文件下载到FPGA芯片中。
Matlab/Simulink建模过程几乎没什么区别,所不同的是,设计采用了DSP Builder库。
设计流程第二步
通过SignalCompiler把Simulink的模型文件转化为硬件描述语言文件,以供其它的EDA(Quartus II、ModelSim 等)软件处理,这些软件不能直接处理Matlab/Simulink产生的模型文件,那么DSP Builder中的
SignalCompiler模块用于完成模型文件到硬件描述语言文件的转换,转换之后的HDL文件是RTL级(寄存器传输级,即可综 合的格式)。
设计流程的第三步
执行RTL级的仿真,DSP Builder 支持自动流程的ModelSim仿真。用户也可以利用第二步产生的VHDL文件使用其它的仿真工具软件手动地进行仿真。
设计流程的第四步
使用第二步SignalCompiler产生的VHDL文件进行RTL级的综合,网表产生和适配等处理,DSP Builder支持自动流程和手动流程两种方式:自动流程中可以选择让DSP Builder自动调用Quartus II等EDA软件来完成相应的工作;手动模式允许用户选择相应的软件来完成相应的工作,手动模式需要更多的干预,同时提供了更大的灵活性,用户可以指定综 合、适配等过程的条件。 第三步和第四步可以不分先后。
设计流程的第五步
在Quartus II中编译用户的设计,最后将设计下载,进行测试验证。 经过测试、验证的设计可以单独执行相应的DSP功能。如果DSP Builder产生的DSP模型只是整个设计中的一个子模块,那么可以在设计中调用DSP Builder产生的VHDL文件,以构成完成的设计。
第2节 正弦发生器模块的设计
DSP Builder可以帮助用户完成基于FPGA的DSP系统设计,除了可以进行图形化的系统建模外,DSP Builder还可以自动完成大部分的设计过程和仿真,直至把设计文件下载到FPGA芯片中。
通过本例的学习可以掌握DSP Builder的使用方法。这个简单的正弦波发生器,主要由4部分构成:IncCount是阶梯信号发生模块,产生一个按时钟线性递增的地址信号,送往 SinLUT。SinLUT是一个正弦函数值的查找表模块,由递增的地址获得正弦波的离散值输出。由SinLUT输出的8位正弦波数据经过一个延时模块 Delay后,送往Product乘法模块,与SinCtrl相乘,SinCtrl是一位输入,SinCtrl通过Product完成对正弦波输出有无的 控制。SinOut是整个正弦波发生器模块的输出,送往D/A即可获得正弦波模拟输出信号。
5.2.1 建立设计模型
(1)运行Matlab,Matlab的主窗口被分成3部分:Command Window、Workspace/Current Directory、Command History。
(2)建立工作目录。在建立一个新的设计模型前,先要建立一个文件夹,作为工作目录,来保存相应的设计文件,在进行设计之前要先切换到该文件夹下。新建和切换到工作目录可以在命令窗口中使用Matlab 命令,也可以在Current Directory窗口中实现。
(3) 启动Simulink,建立模型。
在命令窗口中,键入Simulink,按回车键,启动Matlab图形化仿真工具Simulink,出现了Simulink Library Browser窗口,在窗口的左侧为Simulink Library 列表,右侧窗口显示的则是,被选中的库中的组件、子模块列表。安装完DSP Builder之后,在Simulink 库列表中可以看到Altera DSP Builder的库出现在列表中。在下面设计中,主要使用该库中的组件、模块来完成各项设计,再使用Simulink库来完成模型的仿真和验证。
选择File菜单,然后单击new,在弹出的子菜单中选择Model,出现了一个未命名的模型窗口。
(4) 放置 SignalCompiler。单击Simulink库列表中的Altera DSP ,单击Altlab项,使之展开。选中右侧窗口中的SignalCompiler组件,按住鼠标左键拖放到新模型窗口中。也可以单击右键,选择Add to ‘untitled’,这里’untitled’是指我们新建的未命名的模型文件。
在选中SignalCompiler模块后,在Simulink窗口中的提示栏里会显示对应模块的说明,简单的功能介绍。可以看到 SignalCompiler的介绍为 “Converts Model Files to VHDL files.” 即为进行模型文件mdl到VHDL文件的转换,所
DSP Builder可以帮助用户完成基于FPGA的DSP系统设计,除了可以进行图形化的系统建模外,DSP Builder还可以自动完成大部分的设计过程和仿真,直至把设计文件下载到FPGA芯片中。
以SignalCompiler是进行任何DSP系统设计必须要添加的模块。选中
SignalCompiler选中Help for the ‘SignalCompiler’ block。可以了解怎样使用SignalCompiler的具体信息。也可以按照此方法获得其它的模块相应的帮助信息。
(5)添加Increment Decrement模块。Increment Decrement模块是DSP Builder库中Arithmetic子库中的模块。选中Altera DSP Builder中的Arithmetic子库,然后在其中选择Increment Decrement模块。然后按照添加SignalCompiler的方法将Increment Decrement添加到模型文件中。
(7)添加正弦查找表。在Altera DSP Builder库的Gate &Control子库中找到查找表模块LUT,把LUT拖放到新建模型窗口,将LUT模块的名字修改为“SinLUT”。
双击SInLUT模块,打开模块参数设置对话框“Block Parameters: SinLUT”。把输出位宽设为8;查找表地址设为6;总线数据类型Bus Type选择为有符号整数 Signed Integer;在Matlab Array编辑框中输入计算查找表内容的计算式。
DSP Builder可以帮助用户完成基于FPGA的DSP系统设计,除了可以进行图形化的系统建模外,DSP Builder还可以自动完成大部分的设计过程和仿真,直至把设计文件下载到FPGA芯片中。
在这里使用sin函数,sin函数的调用格式为:
sin([起始值:步进值:结束值])
,步进值为,计算式可写成: SinLUT是一个输入地址为6位,输出值位宽为8位的正弦查找表模块,且输入地址总线为有符号数,所以设置起始值为0,结束值为2
127*sin([0:2*pi/2^6:2*pi])
,这是Matlab中的语法。上式的数值变化范围是-127~+127,恰好是8位二进制数可以表示的最大值,所以8位的输出值位宽可以表示上式所描述的正弦波形。 其中pi就是常数
如果将SinLUT模块的总线数据类型设置为无符号整数Unsigned Integer,且输出位宽改为10,若想得到完成满度的波形输出,应将表达式改为:
511*sin([0:2*pi/2^6:2*pi])+512
选中”Use LPM”(LPM: Library of Parameterized Modules 参数化模块),如果选中”Use LPM”的话,Quartus II 将利用目标器件中的嵌入式RAM来构成SinLUT,即将生成的正弦波数据放在嵌入式RAM构成的ROM中,这样可以节省大量的逻辑资源,否则 SinLUT只能用芯片中的LCs来构成。
选中”Register Address”,选中此选项会生成输入地址总线,如果目标器件是Straitix或者Cyclone,并且选中了LPM选项,用户必须选中”Register Address”选项。
(8)添加Delay模块。在Altera DSP Builder库中,选中Storage子库下的
DSP Builder可以帮助用户完成基于FPGA的DSP系统设计,除了可以进行图形化的系统建模外,DSP Builder还可以自动完成大部分的设计过程和仿真,直至把设计文件下载到FPGA芯片中。
Delay模块,拖放到新建模型窗口。Delay模块可以实现延时的功能,在这里可以使用其默认参数设置。
在Delay模块的参数设置的对话框中,参数Depth是描述信号延时深度的参数。当Depth为1,模块传输函数为 1/Z,通过Delay模块的信号被延时一个时钟周期;当Depth为整数n时,其传输函数为1/Zn,通过Delay模块的信号将被延时n个时钟周期。 Delay模块在硬件上采用寄存器来实现,所以Delay模块被放在Storage子库中。
Clock Phase Selection 参数主要是控制采样的。当设置为1表示Delay模块总处于使能状态,所用的数据都通过Delay模块。如果设置为10则每隔一个脉冲处于使能状态,那么 每隔一个的数据才能通过Delay模块。如设置为0100,表示Delay模块在每4个时钟中第二个时钟是处于使能,那么每4个数据只有第二个数据可以通 过。
(9)添加断口SinCtrl。在Altera DSP Builder库中选择IO & BUS子库,找到AltBus模块,拖放到新建模型窗口中。修改AltBus模块的名字为SinCtrl。SinCtrl是一个1位输入端口。双击 SinCtrl模块,打开模块参数设置对话窗口。设置SInCtrl的Bus Type为”Single Bit”,Node Type参数为”Input Port”。
DSP Builder可以帮助用户完成基于FPGA的DSP系统设计,除了可以进行图形化的系统建模外,DSP Builder还可以自动完成大部分的设计过程和仿真,直至把设计文件下载到FPGA芯片中。
(10)添加Product(乘法)模块。在Altera DSP Builder库中选择Arithmetic子库,找到Product模块。
将之拖放到新建模型窗口中去,这里Product有两个输入一个是经过Delay的SinLUT输出,另一个是一位端口 SinCtrl,Product实现了SinCtrl对SinLUT查找表输出的控制。双击Product模块,打开Product模块参数设置对话框。 其中Pipeline(流水线)参数指定该乘法器模块使用几级流水线,即乘积延时几个时钟周期后输出,选中”Use LPM”,表示使用参数化的模块库来实现,选择”Use Dedicated Circuitry”表示可以使用FPGA中的专用模块来实现.
(11) 添加输出端口Out。在Altera DSP Builder库中,选择IO & BUS子库,找到AltBus模块,拖放到信件模型窗口中,修改AltBus模块的名字为Out。
DSP Builder可以帮助用户完成基于FPGA的DSP系统设计,除了可以进行图形化的系统建模外,DSP Builder还可以自动完成大部分的设计过程和仿真,直至把设计文件下载到FPGA芯片中。
Out是一个8位输出端口,接到FPGA的输出引脚,与片外的8位D/A转换器相接,D/A转换模块将数字信号转化成模 拟信号。双击Out模块,打开参数设置对话框,设置Out的Bus Type为”Signed Integer”, Node Type参数为”Output Port”,然后单击Apply,然后修改”Number of bits”为8。。
Saturate选项如果被选中,则当输出大于要表达的值的最大正值或负值,则输出被强制为最大的正值或负值。若此选项未被选中,则最高位MSB被截断。此选项对输入端口和常数节点类型是无效的。
(12)保存设计文件。放置完Out模块,把新建模型中的DSP Builder模块连接起来,这样就完成了一个正弦波发生器的DSP Builder模型设计。在进行仿真验证和SignalCompiler编译之前,先把设计保存起来。单击File菜单,选择Save操作,取名并保存。 本例中,新建模型取名Sinout,生成模型文件Sinout.mdl。 模型保存之后,先要对模型进行仿真验证,如通过验证,则使用SignalCompiler进行编译将mdl文件转换为VHDL文件。
5.2.2 Simulink模型仿真
Matlab的Simulink环境具有强大的图形化仿真验证的功能。用DSP Builder模块设计好的模型,可以在simulink中进行算法级、系统级仿真验证。对一个模型进行仿真需要施加合适的激励,在特定的观察点添加必须的观察模块。
1. 加入Step模块
本例中,先加入一个step(阶跃模块),来实现模拟SinCtrl的按键使能操作。在simulink的simulink基本库中,选择Source子库,把其中的Step模块拖放到Sinout模型窗口中去,并将其与SinCtrl的输入端口相连。
注意:凡是来自Altera DSP Builder库以外的模块,SignalCompiler都不能将
DSP Builder可以帮助用户完成基于FPGA的DSP系统设计,除了可以进行图形化的系统建模外,DSP Builder还可以自动完成大部分的设计过程和仿真,直至把设计文件下载到FPGA芯片中。
其转换成硬件描述语言的模块。
2. 添加波形观察模块
在Simulink中选择Simulink库,展开Simulink库,选中其中的Sinks子库,把Scope(示波器)模块拖放到SinOut模型窗 口中去。双击该模块,打开的是一个Scope窗口。如图5-11所示,图中只有一个信号的波形观察窗口,若希望可以多观察记录信号,可以通过添加多个 Scope模块的方法来实现,也可以通过修改Scope的参数来实现Scope模块中的观察窗口数。
3. Scope模块参数设置
用鼠标单击Scope模块窗口上侧工具栏的第二个按钮:Parameters,弹出参数设置对话框,以进行参数设置。
在Scope参数设置对话框中有两个设置页:General和Data History。在General页中,改变Number of axes为2。在单击OK按钮后,可以看到Scope窗口出现了两个波形观察窗。每个观察窗可以独立地观察信号波形。同时Scope模块也多了一个输入 端,将SinCtrl的信号接到这一新增的输入端,作为参考信号。
4. 设置仿真激励
先设置模型的仿真激励。在SinOut模型中,只有一个输入端口SinCtrl,需要设置与之相连的Step模块。双击Step模块,在弹出的Step模块参数设置对话框中设置对其输入端口SinCtrl施加的激励。
DSP Builder可以帮助用户完成基于FPGA的DSP系统设计,除了可以进行图形化的系统建模外,DSP Builder还可以自动完成大部分的设计过程和仿真,直至把设计文件下载到FPGA芯片中。
各参数值的含义如下:
阶跃时刻(Step time):Step模块的输出在该时刻发生阶跃,默认值为1,单位为秒。
初始值(Initial value):在阶跃时刻的之前的Step模块的输出值,默认值为0。
终值(Final value):在阶跃时刻之后Step模块的输出值,默认值为1。 采样时刻(Sample time):Step模块输出的采样频率。
设置Step time为30,则在30秒时该模块会发生输出值的阶跃。初始值设为0,那么在30秒时刻之前,不输出正弦波;终值设为1。Sample time设为0,设为0的话,在大的和小的时间间隔都进行采样,设成0的模块被称作连续采样;设成1的话,则只在大的时间间隔上采样。选中底部的两项选 择:“Interpret vector parameters as 1-D” 和 “Enable zerocrossing detection”
在SInOut模型窗口中,单击Simulation菜单,在下拉菜单中选择Simulation parameters。将弹出SinOut模型的仿真参数设置对话框:”Configuration Parameters: SinOut/configuration”。
DSP Builder可以帮助用户完成基于FPGA的DSP系统设计,除了可以进行图形化的系统建模外,DSP Builder还可以自动完成大部分的设计过程和仿真,直至把设计文件下载到FPGA芯片中。
仿真参数设置对话框共有7个选项页:Solver、Data Import/Export、
Optimization、Diagnostics、Hardware Implementation、Model Referencing、Real-Time Workshop。其中”Solver” 页中完成仿真时的基本时间设置、计算器和解算器(solver)的步进方式及输出选项等设置。
5. 启动仿真
在SinOut模型窗口中,选恶Simulation菜单下的Start项,开始仿真。仿真结束后,双击Scope模块,打开Scope观察窗。出现如图5-15所示的仿真结果。可以看到SinOut受到了SinCtrl的控制。
6. 设计成无符号数据输出
127间变化,但一般的D/A器件的输入数据都是无符号的正数。因此为了能在硬件系统上D/A 由示波器的波形可以看到,输出的正弦波是有符号的数据,在 的输出也能观察到此波形,必须对此输出做一些改进,以便输出无符号数。最简单的方法就是将输出波形向上平移127即可,SinLut的Bus Type设置
为 ”Unsigned Integer”,SinLut的波形数据公式改为:
127*sin([0:2*pi/(2^6):2*pi])+128。然后将输出端口Out的Bus Type改
为”Unsigned integer”类型。修改完成之后,进行仿真,可以看到输出的波形都在0以上。
DSP Builder可以帮助用户完成基于FPGA的DSP系统设计,除了可以进行图形化的系统建模外,DSP Builder还可以自动完成大部分的设计过程和仿真,直至把设计文件下载到FPGA芯片中。
5.2.3 使用SignalCompiler进行从算法到硬件实现
在Matlab中完成仿真验证后,就要把设计转换到硬件上加以实现。通过DSP Builder可以获得针对特定FPGA芯片的HDL代码。
1. 分析模型
双击SinOut模型中的”SignalCompiler”图标启动DSP Builder,出现如下的窗口:
单击”Analyze”按钮,SignalCompiler将会对模型进行分析,检查模型有无错误。如果设计存在错误,将会停止分析过程,并在 Matlab软件的命令窗口中给出相关信息。如果设计不存在错误,则在分析结束后打开”SignalCompiler”窗口。Simulink具有强大的 错误定位能力,对许多错误可以在simulink模型中直接定位,用不同的颜色来标示有错误的模块。如果SignalCompiler分析当前的DSP模 型有错误时,必须修改正确才能继续下面的设计流程。
2. 设置SignalCompiler
在SignalCompiler窗口中,要进行一些必要的设置。SignalCompiler窗口大致上可以分为3个功能部分:
左上为项目设置选项——Project Setting Options;
右上为硬件的编译流程——Hardware Compilation;
下方为信息框——Messages。
DSP Builder可以帮助用户完成基于FPGA的DSP系统设计,除了可以进行图形化的系统建模外,DSP Builder还可以自动完成大部分的设计过程和仿真,直至把设计文件下载到FPGA芯片中。
SingalCompiler的设置集中在项目设置选项部分。
在Device下拉选择框中选择目标器件的系列。这里只能选择器件的系列,不能指定具体的器件型号,这需要由Quartus II自动决定使用该器件系列中的某一个具体型号的器件,或在手动流程中由用户指定。
在Synthesis(综合)下拉选择框中,可以选择综合器,共有3个选项: Mentor的LeonardoSpectrum综合器;
Synplicity的Synplify综合器;
Altera的Quartus II,Quartus II是FPGA/CPLD的集成开发环境,其内含综合功能。
在Optimization(优化)下拉选择框,指明在综合、适配过程中的优化策略,是优先对面积(Area)优化还是速度优化(Speed)的选择,即资源占用优先还是性能优先。
项目设置选项部分的下部是一些选项页,包括下面的内容:
Main Clock:系统主时钟的周期的设置;
Reset:系统复位信号的设置;
Signal Tap II:嵌入式逻辑分析仪的设置;
Testbench:仿真测试文件生成的选择;
SOPC info: SOPC相关设置。
Main Clock的缺省值为20ns,即对应50MHz的频率。如果要使用第三方的仿真软件(如ModelSim)则在Testbench页中,选 中”Generate Stimuli for VHDL Testbench.”,生成第三方VHDL仿真软件的激励测试文件。如若不然不要选择此选项,选择此选项的话,simulink运行会比没选中此选项的 情况下慢很多。
DSP Builder可以帮助用户完成基于FPGA的DSP系统设计,除了可以进行图形化的系统建模外,DSP Builder还可以自动完成大部分的设计过程和仿真,直至把设计文件下载到FPGA芯片中。
3. 把模型文件Mdl转化成VHDL文件
完成上面的设置之后,信息窗口会提示用户进行Mdl文件到VHDL文件的转换操作。
点击 1. Convert MDL to VHDL的图标,执行mdl模型文件到VHDL文件的转换。转换完成后,Message框中会出现如下的提示
> Generated top level file ‘Sinout.vhd’
> Completed MDL to VHDL conversion
> See ‘Sinout_DspBuilder_Report.html’ report file for additional information
以上提示说明了:产生了Sinout.vhd的顶层文件,完成了mdl文件到VHDL文件的转换,更多的信息,参看Sinout_DspBuilder_Report.htm文件,点击Report File按钮即可。
4. 综合
单击步骤2的图标,执行综合过程,这里选择的综合工具是Quartus II,综合后生成Atom Netlist(网表)文件,以供第三步适配过程使用。综合过程完成之后,信息框中会给出此项目的一些信息:如器件的系列,使用的逻辑宏单元的数目、触发 器的数目、引脚数、RAM容量等。详细的信息也是参照上面提到的项目报告文件。
5. Quartus II适配
单击步骤3的图标,调用Quartus II完成编译适配过程,生成编程文件:pof文件和sof文件。
单击Report按钮,查看详细的报告信息。以上的三个步骤可以分开单步执行,也可以点击’execute steps 1,2 and 3”,一步执行。
6. 编程
完成了以上三步操作之后,program device的图标由不可用编程可用(由灰变亮),连接好硬件便可以进行下载了。但在下在之前,还要做一些必要的仿真和测试:使用ModelSim进行RTL级仿真,使用Quartus II 进行时序仿真,进行硬件测试等。
5.2.4 使用ModelSim进行RTL级仿真
在Simulink中已经对模型进行过仿真验证,但是是属于系统级的验证,并没有对生成的VHDL代码进行过仿真。事实 上,由Mdl文件转化而来的VHDL描述是RTL级的,而在simulink中的模型仿真是算法级的,转换后的代码实现可能与mdl模型描述的情况不完全 相符。这就需要针对生成的RTL级VHDL代码进行功能仿真。
当在SignalCompiler设置窗口中的Testbench页中选中”Generate Stimuli for VHDL Testbench”,DSPBuilder在mdl转换到VHDL的过程中会生成对HDL仿真器ModelSim的测试文件。
ModelSim是Mentor Graphics的子公司Model Technology的产品,ModelSim是业界最优秀的HDL语言仿真器,具有快速的仿真性能和最先进的调试能力,支持众多的ASIC和FPGA厂 家库,是作FPGA、ASIC设计的RTL级和门级电路仿真的首选。是唯一的单内核支持VHDL和Verilog混合仿真的仿真器,全面支持VHDL和 Verilog语言的IEEE 标准,以及IEEE VITAL 1076.4-95 标准,支持C语言功能调用,支持 C模型、基于SWIFT的SmartModel逻辑模型和硬件模型的仿
DSP Builder可以帮助用户完成基于FPGA的DSP系统设计,除了可以进行图形化的系统建模外,DSP Builder还可以自动完成大部分的设计过程和仿真,直至把设计文件下载到FPGA芯片中。
真。它具有丰富而又易用的图形用户界面,提供最友好的调试环境,为加快调试提供强有 力的手段。
仿真方法:
启动ModelSim软件,选择Tools菜单下的Execute Macro ,在打开的文件选择对话框中切换到SinOut模型SinOut.mdl文件所在的目录,选择
tb_SinOut.tcl,ModelSim 执行tb_SinOut.tcl,开启仿真,随后会自动打开wave窗口,显示仿真结果。
但是显示的结果是以数字形式显示的,与simulink中的仿真结果没有可比性。为了能够进行对比,要改变输出波形的显 示方式。选中”tb_sinout/outu”,单击右键,在弹出菜单中选择properties ,出现wave properties窗口,缺省显示的View页面。
DSP Builder可以帮助用户完成基于FPGA的DSP系统设计,除了可以进行图形化的系统建模外,DSP Builder还可以自动完成大部分的设计过程和仿真,直至把设计文件下载到FPGA芯片中。
在对话框中将Radix项的内容设为”Unsigned”。然后点击Format页,在Format页中将Format设成 Analog,Height设成100,Scale设成0.4,然后点击OK。
DSP Builder可以帮助用户完成基于FPGA的DSP系统设计,除了可以进行图形化的系统建模外,DSP Builder还可以自动完成大部分的设计过程和仿真,直至把设计文件下载到FPGA芯片中。
5.2.5 使用Quartus II 进行时序仿真
ModelSim软件只能实现对设计电路的功能仿真,其仿真结果没有反映电路的硬件的真实情况。为了使我们的设计与真实 的电路更加接近,进行设计的时序仿真是非常必要的。SignalCompiler已经生成了用于quartus II进行时序仿真的激励文件sinout.vec和相关仿真文件,如sinout_quartus.tcl,可以很容易地在quartus II中实现时序仿真,在quartus II进行时序仿真的步骤如下: 启动quartus II集成开发环境,执行File菜单的Open Project 的操作,在弹出的Open Project的对话框中,选择Sinout模型所在的目录,打开该目录,打开DSP Builder为Quartus II建立的设计项目——Sinout,并在项目中打开VHDL顶层设计文件sinout.vhd。
在SignalCompiler中的编译过程中,我们已经指定了器件为Cyclone II系列了,但是在Quartus II中进行时序仿真时,需要指定器件的具体型号。执行
Assignments菜单的Device 命令,为本设计选择目标芯片EP2C35F672C8。 然后执行Processing菜单的Start Compilation命令对sinout.vhd顶层文件进行编译。
DSP Builder可以帮助用户完成基于FPGA的DSP系统设计,除了可以进行图形化的系统建模外,DSP Builder还可以自动完成大部分的设计过程和仿真,直至把设计文件下载到FPGA芯片中。
编译结束后,执行Processing菜单的Start Simulation命令,启动时序仿真。在仿真过程结束之后,出现quartus II 仿真波形界面,显示仿真结果。
通过观察仿真波形来检查设计的工程是否满足时序要求。也可以运行TimeQuest Timing Analyzer,生成时序分析报告,来获取时序仿真的数据。
DSP Builder可以帮助用户完成基于FPGA的DSP系统设计,除了可以进行图形化的系统建模外,DSP Builder还可以自动完成大部分的设计过程和仿真,直至把设计文件下载到FPGA芯片中。
5.2.6 硬件实现与测试
经过RTL级和时序仿真之后,还要将设计下载到芯片中进行实现和测试。 进行硬件测试时,需要使用开发平台上的DAC器件将正弦波信号发生器所输出的数字信号转换为模拟信号,然后将模拟信号接到示波器上。要使用DAC器件,需 要将平台上的拨码开关的MODUL_SEL1设置成“ON”状态,将MODUL_SEL2和MODUL_SEL3设置成“OFF”状态。
DSP Builder可以帮助用户完成基于FPGA的DSP系统设计,除了可以进行图形化的系统建模外,DSP Builder还可以自动完成大部分的设计过程和仿真,直至把设计文件下载到FPGA芯片中。
开发平台上的DAC模块由一个并行8位DAC器件和一个并行DAC电压基准源组成,并行8位DAC器件采用Analog Device 公司的AD7302芯片,工作电压为2.7伏到5.5伏,功耗小适合于电池驱动应用,具有高速寄存器和双缓冲接口逻辑以及可与并行微处理器和DSP兼容的 接口,
将产生的8位数据连接到并行ADC的输入管脚,再给三个功能选择管脚相应的输入信号,使得DAC能够正常工作。
三个功能管脚为ā/B、WR和CS。ā/B——通道选择信号,低电平选择A通道,高电平选择B通道;——写信号,低电平有效;——片选信号,低电平有效。 根据AD7302芯片的工作原理,需要在sinout.vhd文件中加入三个输出引脚,并且进行赋值。
在端口说明中加入如下的语句:
dac_ab : out std_logic;
dac_wr : out std_logic;
dac_cs : out_std_logic;
在结构体中加入如下的语句:
dac_ab <=’0’; 选择A通道
dac_wr <=’0’;
dac_cs <=’0’;
接下来进行引脚所定,如下表所示:
DSP Builder可以帮助用户完成基于FPGA的DSP系统设计,除了可以进行图形化的系统建模外,DSP Builder还可以自动完成大部分的设计过程和仿真,直至把设计文件下载到FPGA芯片中。
引脚锁定之后进行工程的编译,编译成功可以将设计下载到目标器件中去。此时在D/A输出通道可以用示波器观察到数字信号转换成的模拟信号波形。
5.2.7 使用嵌入式逻辑分析仪SignalTap II进行测试
只进行工程的软件仿真远远不够,必须还要进行硬件仿真,使用传统的硬件方法进行测试会有如下的一些缺点:
缺少空余I/O引脚。设计中器件的选择依据设计规模而定,通常所选器件的I/O引脚数目和设计的需求是恰好匹配的。
I/O引脚难以引出。设计者为减小电路板的面积,大都采用细间距工艺技术,在不改变PCB板布线的情况下引出I/O引脚非常困难。
接逻辑分析仪有改变FPGA设计中信号原来状态的可能,因此难以保证信号的正确性。
传统的逻辑分析仪价格昂贵,将会加重设计方的经济负担。
针对传统硬件测试的局限,Altera公司和Xilinx公司分别推出了基于JTAG的内部逻辑分析仪,Altera公司的嵌入式逻辑分析仪为 SignalTap。嵌入式逻辑分析仪可以随设计文件一起下载到目标芯片中,通过JTAG引脚捕捉目标芯片内部设计者感兴趣的信号节点处的信息,而又不影 响系统的正常工作。嵌入式逻
正在阅读:
第5章 基于FPGA的DSP开发技术 SOPC技术与应用07-17
暨南大学第四十二届田径运动会秩序册(1)01-03
论文封面01-14
教育教学名著读后感5篇04-07
工厂成本会计实习日记范文10-29
讨论接收预备党员支部大会主持词02-23
制程能力与制程指数07-19
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 开发技术
- 基于
- 应用
- 技术
- FPGA
- SOPC
- DSP
- 环评单位资质管理办法2015
- 高考易错题集锦 专题三 变异与进化
- 出国留学必知的注意事项
- 如何做灯光的设计
- 青年毛泽东的精神文化决定论思想
- 河北土地整治示范项目拨款专用表格1555
- 《装在套子里的人》教案
- 教师个人发声亮剑材料
- 2015-2016学年第一学期期中教学检查自查报告【模板】
- 百一测评——初三信息技术选择题100道--笔试试题(部分)
- 教育培训机构财务管理制度
- 水利部水总429号《水利工程设计概(估)算编制规定》(工程部分)
- “十三五”规划重点-柠檬茶饮料加工项目建议书(立项报告)
- 第3课 商朝与青铜文化(格致中学)
- 2014-2019年中国纯涤纱行业项目可行性研究及投资前景预测报告
- 大庆精神铁人精神教育小学学段课程标准
- 2014年国家司法考试试卷四参考答案
- 中国交通技术网_交通行业职场薪酬调查报告-最终发布
- PCF8563日历时钟芯片原理及应用设计
- 成型车间5S作业指导书