1. 1、本文档共103页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章??????? VHDL基本语句 VHDL语言面向所有的EDA工具,因此,它也是面向仿真的语言。VHDL不仅可以方便地描述设计,而且还提供了很强的仿真能力。在VHDL中,有一些语句就是为了进行仿真而设置的,在数字系统的设计过程中,可以利用VHDL的仿真功能进行设计验证。为了能够充分理解这些VHDL语句的功能和语法,先简要介绍一些与仿真有关的概念。 3.1 仿真与延迟 在第一章中已经提到,为了验证“描述”和“综合”的结果能否满足设计功能的要求,必须在设计过程的不同阶段,对不同设计层次的设计模块进行“验证”,以便及时对设计进行修改。当前的主要验证手段是逻辑模拟,也称之为仿真。 在数字系统的设计过程中,系统仿真通常有3个阶段:行为级仿真、寄存器传输级(RTL)仿真和门级仿真。 行为级仿真:目的是验证系统的数学模型和行为描述是否正确,抽象程度较高,一般不必考虑电路中的延迟问题; 在行为级仿真之后,要对行为描述进行高层次综合(也称之为行为综合),也就是将较高层次的行为描述转换成较低层次的RTL描述,以便后续的逻辑综合; RTL仿真:目的是使RTL描述能够符合逻辑综合工具的要求,使其能够生成门级电路(门级网表),因此在RTL仿真中要考虑传输延迟、负载延迟等因素; 当RTL仿真完毕,就可以对RTL描述及其约束条件以及包含工艺参数的工艺库进行逻辑综合,即将RTL描述转换成门级网表; 门级仿真:不仅要考虑传输延迟和负载延迟,还要考虑门电路的固有延迟(也称之为惯性延迟)。 仿真与描述、综合的关系:行为描述→行为仿真→行为综合→RTL仿真→逻辑综合→门级仿真→输出门级网表。 行为级仿真只验证设计模块的数学模型和逻辑功能的设计描述是否正确,是功能仿真; RTL仿真和门级仿真则要包含设计模块所采用的工艺参数才能更精确地模拟电路模块运行时的真实特性,是时序仿真。 因为时序仿真要包含电路的硬件特性参数(工艺参数),所以对于规模比较大的设计项目,在计算机上仿真是很耗时的,如果从设计之初就对每一次的描述、修改进行时序仿真的话,会大大降低开发效率。所以先对设计模块进行耗时较短的功能仿真,在验证了设计模块的数学模型和逻辑功能都正确之后,再进行耗时的时序仿真,就能够提高开发效率。 3.1.1 仿真Δ机制 在行为级仿真时,是不必考虑电路的延迟问题的。因为行为级仿真是功能仿真,仿真器仅仅对设计模块的行为功能进行逻辑模拟验证,所以仿真器假定电路中所有的延迟时间均为零。在零延迟条件下,所有的并行语句是同时被执行的,因此其仿真结果应当与并行语句的仿真顺序无关。然而仿真是利用计算机软件来进行的,即便对于并行语句的仿真,也存在仿真执行上的先后次序,这样就会出现不同的仿真顺序会导致不同的仿真结果——即出现错误的仿真结果的现象。 例如,如图3.1a所示的组合逻辑电路炉的VHDL描述如例3-1所示: 图3.1a 组合逻辑电路 例3-1 组合逻辑电路的VHDL描述 ENTITY sample IS PORT (a, b: IN Bit; d: OUT Bit); END sample; ARCHITECTURE behavl OF sample IS SIGNAL c: Bit; BEGIN c = NOT(a AND b); d = NOT(a AND c); END behavl; 在例3-1的结构体中,2条信号赋值语句都是并行语句,在书写的顺序上没有限制。当输入信号a或/和b发生变化时,相应的门电路会发生翻转(对应的赋值语句将被执行一次),但最终结果应当与这2条语句的仿真执行顺序无关。然而由于假设门电路的延迟为零,使得仿真结果随着仿真执行的顺序不同而出现了不同的情况。 例如,在t0时刻之前,输入信号a=0、b=1,此时c=1,d=1;假设在t0时刻输入信号a 发生了从0到1的变化,a既是第一个语句也是第二个语句的敏感信号,因此要对2个语句进行仿真。计算机可以分两种情况进行仿真(假设每一个语句的仿真时间为Δ): 图3.1b 仿真时序1 第二种情况是先仿真第二个语句,然后仿真第一个语句。经过一个Δ时间(仿真第二个语句)之后,d由1变为0;再经过一个Δ时间(仿真第一个语句),c由1变为0;由于第二个语句的敏感信号c此时发生变化,必须对第二个语句再一次仿真,经过一个Δ时间(再次仿真第二个语句)之后,d由0

文档评论(0)

kabudou + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档