ImageVerifierCode 换一换
格式:PPT , 页数:112 ,大小:1.58MB ,
资源ID:456622      下载积分:12 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-456622.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(VHDL代码风格.ppt)为本站会员(ga****84)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

VHDL代码风格.ppt

1、何宾2008.09,E - mail: ,EDA原理及应用,本章首先介绍基于Xilinx芯片的HDL高级设计技术。在高级设计技术中主要对提高HDL性能的一些设计方法进行了比较详细的介绍,其中包括逻辑复制和复用技术、并行和流水技术、系统同步和异步单元、逻辑结构的设计方法和模块的划分原则。 本章也对IP核技术进行了比较详细的说明和介绍,其中包括IP核分类、IP核优化、IP核生成和IP应用技术。 这部分虽然在本书中的篇幅不是很多,但是内容非常重要,读者在学习该部分内容时要仔细的领会。,第五章,VHDL高级设计技术-主要内容,第 5章, VHDL代码风格是指两个方面的内容: 一方面是VHDL语言描述规

2、范,即在使用VHDL语言描述逻辑行为时必须遵守VHDL语言的词法和句法规范,该描述风格不依赖于EDA软件工具和可编程逻辑器件PLD类型,仅仅是从VHDL语言出发的代码风格; 另一方面则是VHDL语言对于一特定逻辑单元的描述,即用VHDL语言的哪一种描述风格进行逻辑行为描述,才能使电路描述得更准确,布局布线后产生的电路设计最优,该描述风格不仅需要关注EDA软件在语法细节上的差异,还要紧密依赖于固有的硬件结构。,VHDL高级设计技术-VHDL代码风格,第五章,VHDL高级设计技术-VHDL代码风格,从本质上讲,使用哪种描述风格描述电路的逻辑行为,主要取决于两个关键问题: 1、速度和面积问题; 2、

3、功耗问题;,第五章,VHDL高级设计技术-VHDL代码风格,首先,先说明速度和面积问题。 这里的“面积”主要是指设计所占用的FPGA逻辑资源数目,即所消耗的触发器和查找表数目。 “速度”是指在芯片上稳定运行时所能够达到的最高频率。 面积和速度这两个指标始终贯穿着PLD的设计,是评价设计性能的最主要标准。,第五章,VHDL高级设计技术-VHDL代码风格,面积和速度呈反比关系。 如果要提高速度,就需要消耗更多的资源,即需要更大的面积; 如果减少了面积,就会使系统的处理速度降低。 所以在设计中不可能同时实现既显著提高PLD工作频率,又显著减少所占用PLD的逻辑资源的数目。,第五章,VHDL高级设计技

4、术-VHDL代码风格,在实际设计时,需要在速度和面积之间进行权衡,使得设计达到面积和速度的最佳结合点。 本章介绍通过采用逻辑复制和复用技术、并行和流水线技术、同步和异步电路处理技术、逻辑结构处理技术等方法,在速度和面积之间进行权衡,达到最佳的性能和资源要求。,第五章,VHDL高级设计技术-VHDL代码风格,其次,说明功耗问题。 随着PLD工作频率的显著提高,功耗成为一个引起EDA设计人员密切关注的问题。 由于PLD工作频率的提高,逻辑单元的切换频率也相应提高,相应的会引起PLD功耗增大。 这样就存在着频率和功耗之间的矛盾,因此必须在逻辑单元的切换速度和功耗之间进行权衡,通过合理的设计,减少逻辑

5、单元不必要的切换,这样可以在一定程度上降低功耗。,第五章,VHDL高级设计技术-扇出,扇出是指某一器件的输出驱动与之相连的后续器件的能力。众所周知,一个器件的扇出数是有限制的。扇出数目越多,所要求的驱动能力越高。在PLD芯片内,如果一个逻辑单元的扇出数过多的话,会降低其工作速度,并且会对布线造成困难。因此,在PLD逻辑资源允许的情况下,要尽量降低扇出数。,第五章,VHDL高级设计技术-逻辑复制,逻辑复制是通过增加面积而改善设计时序的优化方法,经常用于调整信号的扇出。如果信号具有高的扇出,则要添加缓存器来增强驱动能力,但这会增大信号的时延。 通过逻辑复制,使用多个相同的信号来分担驱动任务。这样,

6、每路信号的扇出就会变低,就不需要额外的缓冲器来增强驱动,即可减少信号的路径延迟。,第五章,VHDL高级设计技术-逻辑复制,通过逻辑单元的复制,减少扇出数,可以解决下面两个方面的问题:减少网络延迟;多个器件分布在不同的区域,这样可以大大降低布线阻塞情况的发生。 在使用增加器件减少扇出数目的时候,必须要注意的是,如果是异步单元的话,必须对该单元进行同步处理。,第五章,VHDL高级设计技术-逻辑复制,第五章,VHDL高级设计技术-逻辑复用技术,逻辑复用是指在完成相同的功能下,尽量减少所使用的逻辑单元的数目。这样在不影响设计性能的情况下,可以降低资源的使用。下面通过一个乘法器的例子来说明这个问题。,第

7、五章,VHDL高级设计技术-逻辑复用技术,第五章,VHDL高级设计技术-逻辑复用技术,先选择后乘法的结构,在实现这样一个功能时需要使用两个乘法器和一个选择器,对该结构进行观察可以发现,在该设计中被乘数都是B,只有乘数是不一样的,那么可以在不影响该设计实现的功能的前提下,可以考虑将系统改为先选择后相乘的结构采用该结构,在实现相同功能的前提下,所使用的乘法器数目由2个减少为1个。 从该设计可以看出,在进行设计时,如果对设计进行优化,很多的功能都可以通过逻辑复用技术,提高设计效率和减少逻辑资源消耗量。,第五章,VHDL高级设计技术-并行处理技术,串行设计是最常见的一种设计。当一个功能模块对输入的处理

8、是分步骤进行的,而且后一步骤只依赖于前一步骤的结果时,功能模块的设计就需要采用串行设计的思想。 并行处理就是采用几个处理流程同时处理到达的负载,提高处理的效率。并行处理要求这些处理任务之间是不相关的,彼此之间是不互相依赖的,如果存在相互依赖就很难用并行处理的方法。,第五章,VHDL高级设计技术-并行处理技术,第五章,VHDL高级设计技术-并行处理技术,下面以一个复杂的乘法运算为例,说明并行处理技术的使用。 首先给出该运算的数学表达式 , 下图给出了实现该功能的并行结构(该结构由XST综合工具给出。通过使用多个乘法器,使得四个乘法运算可以同时进行,但是需要注意的,这种速度的提高是以面积为代价的。

9、,第五章,VHDL高级设计技术-并行处理技术,第五章,VHDL高级设计技术- 并行乘法加法的HDL描述,例5-2乘法加法运算的实现则用VHDL语言描述如下:Library ieee;Use ieee.std_logic_1164.all;Use ieee.std_logic_unsigned.all;Use ieee.std_logic_arith.all;Entity mult_add is Port( clk : in std_logic; a0,a1,a2,a3 : in std_logic_vector(7 downto 0); b0,b1,b2,b3 : in std_logic_v

10、ector(7 downto 0); y : out std_logic_vector(15 downto 0);end multadd;,第五章,VHDL高级设计技术- 并行乘法加法的HDL描述,architecture behav of mult_add isbegin process(clk) begin if rising_edge(clk) then y=(a0*b0)+(a1*b1)+(a2*b2)+(a3*b3); end if; end process;end behav;,第五章,VHDL高级设计技术-流水线设计技术的使用,采用这样的流水线设计从宏观上来看平均每一个事件的处理

11、时间为一个单位时间。流水线的设计要求事件所分成的这n个步骤的处理时间是相同的,以保证流水线不会因为处理时间的不同而发生阻塞,见图5.2.2.3。,第五章,VHDL高级设计技术-流水线设计技术的使用,采用流水线设计的好处实在不提高系统运行频率的情况下,能够获得更好的处理效率。受制造工艺的影响,提高系统频率将会增加后端制造的难度。同时由于需要使用更先进的制造工艺,以及产品频率的下降,将会带来产品成本的提高。,第五章,VHDL高级设计技术-流水线设计技术的使用,如果假设在串行设计中系统处理效能正比于系统运行的频率,那么对于流水线设计,在不提高系统运行频率的情况下,n级流水线的处理效能可以用下面公式来

12、描述: 处理效能=系统运行频率流水线级数,第五章,VHDL高级设计技术-流水线设计技术的使用,由此可见,在不提高系统运行频率的情况下,提高流水线的级数将成倍地提高系统处理的效能。但是流水线的设计也是有一定的限制的: (1)只有对那些能分成n个步骤完成,并且对每个步骤都需要固定相同处理时间的操作来说才能采用流水线设计;,第五章,VHDL高级设计技术-流水线设计技术的使用(约束),(2)受硬件资源的限制,流水线的级数是有限制的; (3)对于存在处理分支预测流水线的设计(广泛应用于微处理器的设计中),流水线的处理效能还要取决于分支预测算法的设计。,第五章,VHDL高级设计技术-流水线设计技术的使用,

13、流水线能动态地提升器件性能,它的基本思想是对经过多级逻辑的长数据通路进行重新构造,把原来必须在一个时钟周期内完成的操作分成在多个周期内完成。,第五章,VHDL高级设计技术-流水线设计技术的使用,这种方法允许更高的工作频率,因而提高了数据吞吐量。 因为PLD的寄存器资源非常丰富,所以对PLD设计而言,流水线是一种先进的而又不耗费过多器件资源的结构。 但是采用流水线后,数据通道将会变成多时钟周期,所以要特别考虑设计的其余部分,解决增加通路带来的延迟。,第五章,VHDL高级设计技术-流水线设计技术的使用(特点),流水线的基本结构是将适当划分的N个操作步骤串连起来。流水线操作的最大特点是数据流在各个步

14、骤的处理,从时间上看是连续的; 其操作的关键在于时序设计的合理安排、前后级接口间数据的匹配。如果前级操作的时间等于后级操作的时间,直接输入即可; 如果前级操作时间小于后级操作时间,则需要对前级数据进行缓存,才能输入到后级;如果前级操作时间大于后者,则需要串并转换等方法进行数据分流,然后再输入到下一级。,第五章,VHDL高级设计技术-流水线乘法器的VHDL描述,首先给出流水线乘法器的结构图。从图中可以看出,该流水线乘法器,在每个时钟节拍下,均可以得到一个乘法结果的输出,乘法器的效率大大增加。,第五章,VHDL高级设计技术-流水线乘法器的VHDL描述,library ieee;use ieee.s

15、td_logic_1164.all;use ieee.numeric_std.all;entity multipliers_2 isgeneric(A_port_size : integer := 18; B_port_size : integer := 18); port(clk : in std_logic; A : in unsigned (A_port_size-1 downto 0); B : in unsigned (B_port_size-1 downto 0); MULT : out unsigned ( (A_port_size+B_port_size-1) downto 0

16、); attribute mult_style: string; attribute mult_style of multipliers_2: entity is pipe_lut; end multipliers_2;,第五章,VHDL高级设计技术-流水线乘法器的VHDL描述,architecture beh of multipliers_2 is signal a_in, b_in : unsigned (A_port_size-1 downto 0); signal mult_res : unsigned ( (A_port_size+B_port_size-1) downto 0);

17、signal pipe_1,pipe_2,pipe_3 : unsigned (A_port_size+B_port_size-1) downto 0); begin mult_res = a_in * b_in;,第五章,VHDL高级设计技术-流水线乘法器的VHDL描述,process (clk)begin if (clkevent and clk=1) then a_in = A; b_in = B; pipe_1 = mult_res; pipe_2 = pipe_1; pipe_3 = pipe_2; MULT b_clka_clkdata_datb_dat11b_dat2b_dat1

18、数据变化静态同步a_datb_dat2,第五章,VHDL高级设计技术-逻辑结构的设计方法,逻辑结构主要分为链状结构(Chain Architecture)和树状结构(Tree Architecture)。一般来讲,链状结构具有较大的时延,后者具有较小的时延。所谓的链状结构主要指程序是串行执行的,树状结构是串并结合的模式,具体如例3-7所示。表3-3给出具有链状结构和树状结构的4输入加法器的实现实例。,第五章,VHDL高级设计技术-逻辑结构的设计方法,第五章,VHDL高级设计技术-逻辑结构的设计方法,从上例可以明显看出树状结构的优势,它能够在同等资源的情况下,缩减运算时延,从而提高电路吞吐量以节

19、省面积。在书写代码时,要尽量采用树状结构,以减少时间延迟。,第五章,VHDL高级设计技术-if和case语句的使用,if语句指定了一个有优先级的编码逻辑,而case语句生成的逻辑是并行的,不具有优先级。 if语句可以包含一系列不同的表达式,而case语句比较的是一个公共的控制表达式。 if-else结构速度较慢,但占用的面积小,如果对速度没有特殊要求而对面积有较高要求,则可用if -else语句完成编解码。 case结构速度较快,但占用面积较大,所以用case语句实现对速度要求较高的编解码电路。,第五章,VHDL高级设计技术-if和case语句的使用,嵌套的if语句如果使用不当,就会导致设计的

20、更大延时,为了避免较大的路径延时,最好不要使用特别长的嵌套if结构。如想利用if语句来实现那些对延时要求苛刻的路径时,应将最高优先级给最迟到达的关键信号。 有时为了兼顾面积和速度,可以将if和case语句合用。,第五章,VHDL高级设计技术-关键路径信号处理,在VHDL设计中,经常会遇到由于信号路径过长或信号来的比较晚,从而造成建立时间不够的情况。这种引起电路建立时间不够的信号路径就称为关键路径。在复杂电路设计必须有效地处理关键信号,尽量减少其时延,提高电路的工作频率。,第五章,VHDL高级设计技术-简单组合电路关键路径的提取方法,简单组合电路的关键路径提取方法就是拆分逻辑,将复杂逻辑变成多个

21、简单组合电路的进一步组合,缩减关键信号的逻辑级数,如例3-10所示。例3-10 简单关键电路的提取实例。对于语句: y = a and b and c or d and e and b; 从中可以看出,信号b为关键信号。现将其简单路径计算,再经过关键路径逻辑。 temp= a and b and c and d; y = b and temp; 通过关键路径提取,将信号b的路径由2级变成1级。拆分逻辑可通过复制逻辑,缩短那些组合路径长的关键信号的路径延迟,从而提高工作频率。,第五章,VHDL高级设计技术-复杂触发块中关键路径的提取方法,对于触发模块中时间要求非常紧的信号,需要通过分布提取方法,

22、让关键路径先行,保证改写后的描述与原触发块逻辑等效。例3-11给出了提取并改善always模块中关键信号的实例。,第五章,VHDL高级设计技术-复杂触发块中关键路径的提取方法,Process(w,x,y,z,in1,in2) Begin if(w=0) then if(x and (not(y and z) then out=in1; else out=in2; end if; elsif(y and z) then out=in1; else out=0; end if; end process;,第五章,VHDL高级设计技术-复杂触发块中关键路径的提取方法,其中,若z=0,则原代码等效于i

23、f (!w) out = in1; else out =0;。若z=1,则源代码等效于if (!w 。对于信号y也有类似的分析结果,因此y、z都是关键信号。因此通过优先首先计算关键路径,改写为:,第五章,VHDL高级设计技术-复杂触发块中关键路径的提取方法,emp = y and z; Process(w,x,y,z,in1,in2) Begin if(temp=0) then if(x and (not w) then Out=in1; else Out=in2; end if; elsif(temp=1) then out=in1; else out=0; end process;,第五章

24、,VHDL高级设计技术-由if语句造成的意外的锁存器,【例3-12】给出使用if语句,但缺乏else分支而造成锁存器的情况。 Process(a,data) Begin If(a=1) then data_out=data_in; end if;End process;,第五章,VHDL高级设计技术-由if语句造成的意外的锁存器,【例3-12】给出了使用if语句,不缺少else分支而不会造成锁存器的情况。Process(a,data) Begin If(a=1) then data_out=data_in; else data_out data_out data_out; end case;e

25、nd process;,第五章,VHDL高级设计技术-由case语句造成的锁存器,【例3-13】给出了在process块中使用case语句,加入others分支的VHDL描述。 Process(a,data_in1,data_in2)begin case a is when “00”= data_out data_outdata_out=0; end case;end process;,第五章,VHDL高级设计技术-模块划分的设计原则,自顶向下的层次化设计方法中最关键的工作就是模块划分,将一个很大的工程合理地划分为一系列功能独立的部分,且具备良好的协同设计能力,以便快速地实现整个设计。 此外,

26、模块划分直接影响到所需的逻辑资源、时序要求以及实现效率。其基本的原则如下所示:,第五章,VHDL高级设计技术-模块划分的设计原则,1、信息隐蔽、抽象原则 上一层模块只负责为下一层模块的工作提供原则和依据,并不规定下层模块的具体行为,以保证各个模块的相对独立性和内部结构的合理性,使得模块之间层次分明,易于理解、实施和维护。 2、明确性原则 每个模块必须功能明确,接口明确消除多重功能和无用接口,整个设计过程中应具有统一的命名规范。,第五章,VHDL高级设计技术-模块划分的设计原则,3、模块时钟域区分原则 在设计中,经常采用多时钟设计,必然存在亚稳态,如果处理不当,将会给设计的可靠性带来极大的隐患。

27、这里需要通过异步FIFO以及双口RAM来建立接口,尽量避免让信号直接跨越不同时钟域。此外,由于时钟频率不同,其时序约束需求也不同,可以将低频率时钟域划分到同一模块,如多时钟路径等,则可以让综合器尽量节约面积。,第五章,VHDL高级设计技术-模块划分的设计原则,4、资源复用原则 在HDL设计中,要将可以复用的逻辑或者相关逻辑尽量放在同一模块,不仅可以节省硬件资源,还有利于优化关键路径。但在实际中,不能为了资源复用而将存储器逻辑混用。因为FPGA芯片生产商提供了各类存储器的硬件原语,使设计所需资源最小化。从概念上讲,模块越大越利于资源共享和复用,但庞大的模块在仿真验证时需要较长的时间和较高的PC机

28、配置,不利于修改,无法使用增量设计模式。,第五章,VHDL高级设计技术-模块划分的设计原则,5、同步时序模块的寄存器划分原则 即在设计时,尽量将模块中的同步时序逻辑输出信号以寄存器的形式送出,便于综合工具区分时序和组合逻辑;并且时序输出打寄存器符合流水线设计思想,能工作在更高的频率,极大地提高模块吞吐量。,第五章,VHDL高级设计技术-IP核技术,现在的FPGA设计,规模巨大而且功能复杂,设计人员不可能从头开始进行设计。现在采用的方式是,在设计中尽可能使用现有的功能模块,除非没有现成的模块可以使用时,设计人员才需要自己花时间和精力设计新的模块。 这些现有的功能模块,EDA设计人员把他们通常称为

29、IP(intellectual Property)核。IP核来源主要有三个方面: (1)前一个设计创建的模块; (2)FPGA生产厂商的提供; (3)第三方IP厂商的提供。,第五章,VHDL高级设计技术-IP核的分类,IP(Intelligent Property)核是具有知识产权核的集成电路芯核总称,是经过反复验证过的、具有特定功能的宏模块,与芯片制造工艺无关,可以移植到不同的半导体工艺中。到了SOC阶段,IP核设计已成为ASIC电路设计公司和FPGA提供商的重要任务,也是其实力体现。 对于FPGA开发软件,其提供的IP核越丰富,用户的设计就越方便,其市场占用率就越高。目前,IP核已经变成系

30、统设计的基本单元,并作为独立设计成果被交换、转让和销售。,第五章,VHDL高级设计技术-IP核的分类,从IP核的提供方式上,通常将其分为软核、硬核和固核这3类。从完成IP核所花费的成本来讲,硬核代价最大;从使用灵活性来讲,软核的可复用使用性最高。,第五章,VHDL高级设计技术-IP核的分类(软核),软核在EDA设计领域指的是综合之前的寄存器传输级(RTL)模型;具体在FPGA设计中指的是对电路的硬件语言描述,包括逻辑描述、网表和帮助文档等。软核只经过功能仿真,需要经过综合以及布局布线才能使用。其优点是灵活性高、可移植性强,允许用户自配置;缺点是对模块的预测性较低,在后续设计中存在发生错误的可能

31、性,有一定的设计风险。软核是IP核应用最广泛的形式。,第五章,VHDL高级设计技术-IP核的分类(固核),固核在EDA设计领域指的是带有平面规划信息的网表;具体在FPGA设计中可以看做带有布局规划的软核,通常以RTL代码和对应具体工艺网表的混合形式提供。将RTL描述结合具体标准单元库进行综合优化设计,形成门级网表,再通过布局布线工具即可使用。和软核相比,固核的设计灵活性稍差,但在可靠性上有较大提高。目前,固核也是IP核的主流形式之一。,第五章,VHDL高级设计技术-IP核的分类(硬核),硬核在EDA设计领域指经过验证的设计版图;具体在FPGA设计中指布局和工艺固定、经过前端和后端验证的设计,设

32、计人员不能对其修改。不能修改的原因有两个: 首先是系统设计对各个模块的时序要求很严格,不允许打乱已有的物理版图; 其次是保护知识产权的要求,不允许设计人员对其有任何改动。 IP硬核的不许修改特点使其复用有一定的困难,因此只能用于某些特定应用,使用范围较窄。,第五章,VHDL高级设计技术-IP核的优化,最常见到的情况就是IP核的厂商从RTL级开始对IP进行人工的优化。EDA的设计用户可以通过下面的几种途径购买和使用IP模块: (1)IP模块的RTL代码; (2)未布局布线的网表级IP核; (3)布局布线后的网表级IP核。,第五章,VHDL高级设计技术-未加密的RTL级IP,在很少的情况下,EDA

33、设计人员可以购买未加密的源代码RTL级的IP模块,然后将这些IP模块集成到设计的RTL级代码中。这些IP核已经经过了仿真、综合和验证。 但一般情况下,EDA设计人员很难得到复杂的IP核RTL级的描述,如果EDA人员想这样做的话,必须和IP核的提供厂商签订一个叫NDA(nondisclosure agreements)的协议。 在这一级上的IP核,EDA人员很容易的根据自己的需要修改代码,满足自己的设计要求。但是与后面优化后的网表IP相比,资源需求和性能方面的效率会比较低。,第五章,VHDL高级设计技术- -加密的RTL级IP,Altera和Xilinx这样的公司开发了自己的加密算法和工具,这样只有自己的FPGA厂商的工具加密后的RTL代码只能由自己的综合工具进行处理。,

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。