第11章DSP Builder设计规则_第1页
第11章DSP Builder设计规则_第2页
第11章DSP Builder设计规则_第3页
第11章DSP Builder设计规则_第4页
第11章DSP Builder设计规则_第5页
已阅读5页,还剩49页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第11章DSPBuilder设计规则,11.1位宽设计规则11.2频率设计规则11.3DSPBuilder设计的取名规则11.4定点数据下标说明11.5在SBF中二进制小数点的位置11.6GoTo和From模块的支持特性,11.1位宽设计规则,在设计中,必须根据具体情况规定输入和输出数据口的位宽,即源端口与目标端口的数据位宽。一旦确定了输入端的数据位宽,SignalCompiler就会通过各中间模块把数据位宽从源端口向目标端口传递。在一定条件下,设计者也可以对所通过的各模块中的数据位宽作一定的设定。例如,在第三章中介绍的调幅设计中,Sinln和SinDelay模块的位宽是16,所以Signal

2、Compiler就自动将这16位宽的数据类型赋予了中间模块Delay。,应该注意,每一个DSPBuilder模块都有自身的设计规则。在每一模块的使用说明中都包含了其位宽增长的规则。DSPBuilder具有双位字类型,这种类型能支持的最大数据位宽是51位。如果希望位宽超过51位,则必须将数据总线分成多套,每套都不超过51位。如11-1所示的是一个60位加法器设计系统,分成了两个30位总线。,图11-1两套总线方式的60位硬件加法器,11.2频率设计规则,11.2.1单时钟设计规则如果一项设计中不包含来自RateChange库的锁相环模块PLL,则在Simulink设计转换成硬件系统的过程中,DS

3、PBuilder将使用同步设计规则,即在设计系统中的所有DSPBuilder时序模块,如Delay模块,都以单一时钟的上升沿同步工作,这个时钟频率即为整个系统的采样频率。,然而需要注意的是,对于这些同步时序的模块,其时钟引脚都不会直接显示在Simulink设计图上,但当SignalCompiler将设计系统转化为VHDL文件时,才自动地把时序模块的时钟引脚都连在一起,并与系统的单一时钟相接。,但是,如果设计者希望在Simulink图上显示相关的信号端,并能直接控制这些信号端口,可以在DSPBuilder时序模块的参数控制对话框中打开“UseControlInputs”参数表来实现。为了保持Si

4、mulink设计域至VHDL域的设置时钟周期的精确性,必须将“Solver”选项设定在“Fixed-step”和“discrete”状态上,并设模式为“SingleTasking”(如图11-2所示)。,图11-2仿真延时参数设置,仅从Simulink仿真的观点来看,所有的DSPBuilder模块,包括时序模块,都有一固有的采样频率,这个频率值可以通过I/O口,从源模块传送到目标模块,也可以从源模块的输出脚向目标模块的输入脚传送。如果某一DSPBuilder模块没有输入端口(如Increment或Pattern模块),这种传送机制是无法进行的。所以,对于这些情况,必须在模块参数表中设定时钟信号

5、的周期。具体步骤如下:,(1)用鼠标右键击该模块;(2)选中弹出菜单中的“BlockParameters”项;(3)在“S-Function”栏键入所希望的时钟周期(默认为1);(4)点击“OK”,保存所设数据,并关闭之。如果某一模块具有来自多个模块的不同频率的时钟驱动,则此模块(目标模块)将在Simulink仿真文件中采用其中最高频率的时钟。图11-3是一项SingleClockDelay的Simulink设计图。,图11-3SingleClockDelay设计图,也有许多其它方式可用来规定源模块的工作频率。如图11-4所示,可以使用Sampletime编辑窗来设置正弦波模块的工作频率。,图

6、11-4正弦波模块参数设置,在图11-3的设计中,使用的是单一时钟,这里DSPBuilder没有使用PLL模块,所以所有的DSPBuilder模块的采样周期都是相同的,并且,如果已打开了仿真参数中的采样时间色彩显示控制,则这些模块都以相同颜色显示。在此图中(仿真设计文件为SingleClockdelay.mdl),SineWavea和SineWaveb模块的时间值都设定在le-6,即1000ns。如果使用SignalCompiler将此项设计转换成RTL硬件电路描述,其设计报告将包括诸如位宽、仿真采样时钟周期值,以及可能的出错信息等(如图11-5所示)。,图11-5仿真报告,图11-6是此项设

7、计的RTL电路图,是由LeonardoSpectrum综合器输出的。由图可见,时序模块Delaya和Delayb由单一clock提供时钟。,图11-6示例SingleClockDelay的RTL电路图,11.2.2多时钟设计如果设计系统中包含了来自Ratechange库中的锁相环模块PLL,DSPBuilder模块就将根据PLL输出时钟组中的某一时钟的上升沿来工作。图11-7是一个多时钟Delay设计系统实例,该例含多时钟支持电路。对于含有PLL的系统,DSPBuilder将Simulink中PLL模块映射到硬件器件中的PLL核,即在设计模块中使用PLL的条件是目标器件中必须含PLL核。支持P

8、LL模块设计的目标器件系列有:Stratix系列(支持6个输出时钟)和Cyclone系列(支持6个输出时钟)。,图11-7的设计显示的是PLL模块的配置情况。其中PLL输出时钟pllclock1设定为1000ns,而pllclock2设定为100ns,这可由多种方法来设置。图中数据路径A工作在pllclock1上,而数据路径B工作在pllclock2上。据此,可以在SampleTime编辑窗中设置pllclock1和pllclock2,分别为le-6和le-7(图11-8)。,图11-7多时钟设计系统,图11-8PLL设置,DSPBuilder将系统转化为RTL电路后,将产生一个报告文件,该报

9、告将列出系统中所有DSPBuilder模块的数据位宽和仿真采样时钟周期。在多时钟设计系统的DSPBuilder编译中,如果发现模块仿真时钟周期与PLL的输出时钟周期不符,将在报告中给出警告。图11-9是LeonardoSpectroum综合器产生的此设计系统的RTL电路,从中可以看出Delaya和Delayb模块分别工作在两个PLL输出时钟上,其中clock是PLL的参考时钟。,图11-9多时钟设计系统的RTL电路,11.2.3使用PLL的高级特性要想使用PLL的高级特性,可以通过对DSPBuilder模块的设置来实现,这些设置支持对PLL分频与倍频因子的设定。此外如果希望改变PLL时钟信号的

10、其它特性,如相移,占空比等,都可以编辑SignalCompiler产生的pll.vhd文件,从而在VHDL的顶层设计中对PLL作必要的修改。,11.3DSPBuilder设计的取名规则,DSPBuilder模块的命名必须遵循VHDL的命名规则。以下的一些规则是必须遵循的:(1)必须注意大小写的一致性,但模块名的大小写不一致是没有关系的,例如实体名Mydesign与MYDESIGN是相同的。(2)不要使用VHDL的关键词来命名DSPBuilder模块。,(3)注意不要使用非法文字,特别是VHDL的实体名只能包含QZ,09,以及下划线(_)。(4)模块名的起始文字必须是字母az,因为VHDL的实体

11、名是不允许以英语字母以外的任何字符作为首字符的。(5)不允许连续使用两个下划线“_”,因为这在VHDL中是非法的。(6)模块文件名中的空格将在SignalCompiler的编译中被忽略掉。,此外,SignalCompiler对于每一个DSPBuilder的HDL子系统模块产生一个单独的VHDL文件,而这些文件都有独立的实体和结构体。DSPBuilder产生的VHDL文件中的实体名位置具有全局性,所以,所有的子系统名必须是唯一的。,11.4定点数据下标说明,在将Simulink文件向VHDL文件转化中,对数据的定点标注的说明可见表11-1所述。,表11-1数据下标说明,图11-10是几种下标情况

12、对应的不同数据类型的数据比较,其中有8位有符号二进制小数、有符号二进制数,以及无符号二进制数的示例。,图11-10数据格式比较,11.5在SBF中二进制小数点的位置,对于硬件设计,Simulink信号必须转化成与硬件结构相对应的总线格式,所以Simulink的浮点值必须转换成定点值并能在目标硬件中实现。这种转换是硬件实现的关键步骤,因为需要硬件来表示定点值的位数以及小数点的位置不但会影响构成硬件系统的资源利用率,还影响系统的特性。,一般较大的位数(宽位总线)能产生更好的硬件特性,即定点值与浮点值基本相同,但却会耗用更多的硬件资源。作为一个设计者来说,他的基本任务就是在好的资源利用率和良好的系统

13、性能间找到可接受的折衷方案。而DSPBuilder正是在同一设计环境中既能使用定点信号又能使用浮点信号进行仿真,从而缩短了系统设计周期。,AltBus模块将双精度类型的浮点Simulink信号转变成定点信号。即定点信号是以以下的有符号的二进制小数SBF的方式表示的:位数.表示小数点以左包括符号位的总的位宽数。.位数表示小数点以右的位宽数。在VHDL中,信号是以STD_LOGIC_VECTOR表达的。例如,4位二进制数1101可以表达为:Simulink:作为有符号整数可以解释为-3(补码);,VHDL:作为有符号STD_LOGIC_VECTOR数据类型也被解释为-3,但如果改变此数小数点的位置

14、,即为在小数点的左边和右边都有两位,则此数的含义是:Simulink:表示有符号-0.75;VHDL:仍表示-3。,从系统级分析的观点来看,一个数乘以-0.75与乘以-3是截然不同的,尤其是乘积发生的位宽变化。在这两种情况中,前者导致乘法器的输出总线在MSB上发生增长,而后者在LSB上发生增长。事实上,在这两种情况中,二进制数值是完全相同的,然而小数点的位置影响了仿真器对结果的表达。因此,对于一个复杂的系统,设计者必须根据信号的应用范围判定小数点的位置。,11.6GoTo和From模块的支持特性,DSPBuilder支持来自基本Simulink库的GoTo和From模块,这两种模块的主要用途是

15、用于大的扇出信号,以便使得电路图的表述更清晰。DSPBuilder支持TagVisibilty=local模式的GoTo和From模块。图11-11是一个GoTo和From模块的应用的例子。GoTo模块(coef1、coef2、coef3、coef4)分别对应于From模块(coef1、coef2、coef3、coef4),它们都连在乘积模块上。,图11-11GoTo和From模块使用示例,11.7MegaCore功能块支持特性,从用户的角度来看,Simulink中的硬件IP核就是离散模块库的元件。DSPBuilder使用Altera的MegaWizardPlug-InManager技术配置S

16、imulink中的IP。MegaWizardPlug-InManager是独立的图形用户接口(GUI),把静态参数传递给HDL设计流程中的复杂IP。这项用于控制加密IP的技术已扩展到把参数传递给C+模型。,Simulink仿真引擎是基于状态的。Simulink通过S函数回调模式支持C+模型。每个离散模块的每个状态都包含一组模式。仿真器在初始化后输出结果,并在寄存器更新事件期间调度这项函数。一个VHDLIP模型包含一个说明静态参数类似于位宽或结构类型的通用部分,一个说明输入和输出信号端口部分,而另一个描述功能的结构部分。把C+模型转换为VHDL模型即能根据仿真器的状态正确地映射这些部分。,Alt

17、era的MegaCore功能块已在Altera器件中作了严格的测试以及功能与资源的优化。所有的MegaCore功能块都可以通过Quartus中的MegaWizardPlug-InManager进行全部功能参数的设置。MegaCore功能块支持Altera的免费IP核的评估特性,即可允许用户根据购买的license,改变功能块的功能与时序特性,即:,为了保护IP产权,在Simulink中将模型展开作为编译的动态连接库。在VHDL中,IP加密是基于Altera的OpenCoreR或OpenCorePlus评估工具。OpenCore评估功能让用户利用QuarutsII软件免费测试IP核。OpenCo

18、rePlus评估功则能支持免费的硬件评估,是增强了的OpenCore功能。该功能允许用户生成时间受限的包含AlteraMegaCore功能的设计编程文件。用户可以使用这些文件,在确定购买MegaCore功能许可证之前进行板级设计验证,即OpenCore评估特性允许用户使用QuartusII免费测试IP核,但却不能形成下载文件到硬件中去实测。,OpenCorePlus评估特性强化了OpenCore的评估特性,它支持免费的硬件评估。这一特性允许用户得到一个限时的对硬件的编程文件。有了这些包含了MegaCore的下载文件,就可以在决定购买IP核license之前进行硬件板级的功能测试。,有了这两种评

19、估功能的应用,当用户对IP核的功能和性能的测试完成后,即可购买license进入产品生产阶段。DSPBuilder支持各种不同的DSPIP核,如FIR核、Reed-Solomon核,IIR核等。如果希望使用基于DSPBuilder的IP核,可以从Altera的网页,11.8层次化设计,在Simulink软件中有子系统结构,所以DSPBuilder支持层次化设计。在设计中,可以通过将AltBus模块与Simulink的输入/输出模块相连接,来定义每一层次的衔接边界。SignalCompiler模块在VHDL设计文件中保留这些层次结构的信息,而每一层次的.mdl文件都被转变为一个单独的VHDL文件

20、(一个元件)。图11-12显示了一个层次化设计结构,该设计文件fir3tap.mdl使用了两个FIR滤波器。,图11-12层次化设计示例,11.9黑盒子化,设计者可以将自己的VHDL代码加入到Simulink设计中,并规定SignalCompiler把哪一个子系统模块转化成VHDL文件。这个过程就称为黑盒子化。在这个过程中,通过将AltBusNodeType设置成BlackBoxInputOutput在BlackBoxInputOutput模式中来使用AltBus模块。如在图11-13中,当处理子系统SubSysfem1时,SignalCompiler使用了在VHDL设计中的一个黑盒子来代替SubSysfem1。如图11-13所示为建立黑盒子作参数设置。,图11-13黑盒子设置,事实上,IP核也是一个黑盒子,也可以作为一个黑盒子来处理。如果要将一个已经定制完成的VHDL设计实体加入到DSPBuilder设计系统中,可以按照以下的步骤来完成:(1)在HDL文件中定义一个可定制的实体(如使用Generic类属映射语句)。(2)即使在原设计中已经使用了同步复位和时钟信号,也必须在该实体中定义同步清0和时钟输入

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论