可编程ASIC设计及应用[电子科大]模块化硬件与进程模型.ppt

可编程ASIC设计及应用[电子科大]模块化硬件与进程模型.ppt

  1. 1、本文档共52页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
可编程ASIC 模块化硬件与进程模型 目的 第三部分(模块化硬件与进程模型)与第四部分(信号传输模型)均是讲述vhdl硬件描述语言的原理 这两部分的学习目的是为了让大家了解硬件描述语言的运行机制,了解硬件仿真的原理,有利于在以后的设计中使用多语言进行各种级别的建模; 对于打算从事EDA工具软件设计的学员也有一定的参考价值。 数字电路的信号跳变特点 数字电路的信号跳变特点 本节假设 为了问题分析的方便,本节暂时假设,输出的跳变与输入的跳变之间无延迟,跳变无过渡。 用软件方法来仿真硬件行为 用软件方法来仿真硬件行为 用软件方法来仿真硬件行为 时间方案(调用方案)1 时间方案(调用方案)2 ASIC仿真时间方案 基本上是采用第二种方案。 以下的仿真讨论均使用第二种方案。 波形记录举例 仿真算法流程 考虑复杂的情况: 多元件(多模块) 进程调度(方案1) 进程调度(方案2) VHDL中process的定义 ModuleName:Process( 敏感信号列表 ) Begin -- 进程描述语句。 End process; Process例子 假设U2为非门,则例子程序如下: U2: process( c ) Begin if( c = ‘1’ ) then f = ‘0’; else f = ‘1’; end if; End process; VHDL的进程调度 VHDL的进程调度 VHDL的进程调度 VHDL的进程调度 联想:SARS隔离检测 VHDL进程调度算法 1.如果仿真事件(有信号发生变化)有哪些信誉好的足球投注网站完,则结束仿真;否则,跳到下一个信号事件点,此时进入一个新的仿真周期; 2.找出所有对发生变化的信号敏感的进程,进入一个新的子仿真周期,依次对这些进程调度一次; 3.如果进程调度后出现新的事件,则回到第2步;否则回到第1步。 VHDL仿真思想 子仿真周期的时间就是一个Delta延时,而Delta延时为0延时。 显然,一个仿真周期可以包含多个子仿真周期,也就是包含多个Delta延时。 Delta延时数目的增加,并不会推进仿真时钟。也即“微观时间增量不改变宏观时间”;只有仿真周期的增加才会推进仿真时钟。 硬件模块的运行之间是并行的关系;软件进程的调度之间是并发的关系。硬件的并行是通过软件的并发来仿真。 补充:并发与并行 并发: 补充:并发与并行 并行就是真正的同时,在任何时刻(瞬间),多个进程都在同时地运行。 VHDL软件体系 进程结构体(即vhdl源代码)里已经描述了整个硬件的形态,所以它可以被综合器综合成硬件; 并不是所有描述方式的vhdl代码都可以被综合成硬件。太抽象的描述只适合做系统建模和仿真。 显然综合器是不会去关心敏感信号量的,因为它不存在进程调度的问题,而是直接根据进程体内的代码来形成硬件电路。 但是要注意,即使编写的是面向综合的代码,敏感信号量仍然需要补全。因为敏感信号的缺漏对于仿真器来说是一个错误,会导致仿真时应该被调度的进程没有得到调度。 而综合器形成的综合后仿真用的网表源文件,是保证不丢失敏感信号的。 如果设计者丢失了敏感信号,就会造成设计级别的代码和综合后的代码之间仿真结果不相符。 对于敏感信号 一个模块,并非所有的输入都必须作为敏感信号,只有引起硬件动作的信号才必须作为敏感信号。 对于敏感信号 将所有的输入信号放入进程的敏感信号表中,在逻辑上并没有什么错误,但是会引起进程调度频繁而导致仿真效率降低(cpu负担太重)。 事情结束了吗? 事情结束了吗? 尝试加上时钟变成时序电路 尝试加上时钟变成时序电路 尝试加上时钟变成时序电路 尝试加上时钟变成时序电路 问题 我们发现,调度顺序的不同,会导致截然不同的仿真结果; 以下是这个问题的另外一种形式的表述…… 元件合并 这是为什么?如何解决? 作业(挑战免考题的基础) 以下是一个数字硬件系统的模块框图。 要求 1. 为输入输出信号定义一种波形记录文件格式,编写函数,能够根据文件自动画出信号波形; 2. 编写rising_edge函数: bool rising_edge(std_log

文档评论(0)

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

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

1亿VIP精品文档

相关文档