欢迎来到天天文库
浏览记录
ID:39389879
大小:340.50 KB
页数:52页
时间:2019-07-02
《可编程ASIC设计及应用 [李广军]模块化硬件与进程模型》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、可编程ASIC模块化硬件与进程模型电子科技大学目的第三部分(模块化硬件与进程模型)与第四部分(信号传输模型)均是讲述vhdl硬件描述语言的原理这两部分的学习目的是为了让大家了解硬件描述语言的运行机制,了解硬件仿真的原理,有利于在以后的设计中使用多语言进行各种级别的建模;对于打算从事EDA工具软件设计的学员也有一定的参考价值。电子科技大学数字电路的信号跳变特点数字电路din0din1dout输出(dout)的值只有在输入(din0,din1)发生变化的时候才会变化(可能有所延迟)理想情况下是瞬间变化,没有过渡时间。din0din1dout电子科技大学数字电路的信号跳变特点数字电路
2、din0din1dout输出(dout)的值只有在输入(din0,din1)发生变化的时候才会变化(可能有所延迟)理想情况下是瞬间变化,没有过渡时间。din0din1dout电子科技大学本节假设为了问题分析的方便,本节暂时假设,输出的跳变与输入的跳变之间无延迟,跳变无过渡。电子科技大学用软件方法来仿真硬件行为数字电路元件din0din1doutdin0din1dout问题:如何用软件的方法来仿真这个硬件元件的行为?电子科技大学用软件方法来仿真硬件行为数字电路元件din0din1doutdin0din1doutFunct(){if(din0和din1满足某种条件){dout=‘0
3、’;}Else{dout=‘1’;}}//在这里假设din0,din1和dout为全局量电子科技大学用软件方法来仿真硬件行为数字电路元件din0din1doutdin0din1dout问题:何时调用Funct?Funct(){if(din0和din1满足某种条件){dout=‘0’;}Else{dout=‘1’;}}//在这里假设din0,din1和dout为全局量电子科技大学时间方案(调用方案)1数字电路元件din0din1doutdin0din1doutt按照特定的分辨率对时间轴作细划分,调用funct。继承了传统电子系统(模拟,平滑系统)的仿真思想。缺点:调用频繁,仿真时
4、cpu负担过重。电子科技大学时间方案(调用方案)2数字电路元件din0din1doutdin0din1doutt(理想数字系统仿真)只需要对输入跳变点调用Funct。缺点:只适合于理想数字波形。电子科技大学ASIC仿真时间方案基本上是采用第二种方案。以下的仿真讨论均使用第二种方案。电子科技大学波形记录举例数字电路din0din1doutdin0din1doutttDin0din1001t011t110t201………t0t1t2电子科技大学仿真算法流程读取波形文件中时间st时的输入值(din0,din1…)调用Funct往波形文件记录St时的输出值(dout,…)st为仿真时间指
5、针时间t结束?St指向波形文件中的下一个时间点退出St指向波形文件中的起始时间点YN电子科技大学考虑复杂的情况:多元件(多模块)u1u3u2abcefgVHDL解决方案:一个硬件模块对应一个软件进程。U1:process(a,b)…U2:process(c)…U3:process(e,f)…电子科技大学进程调度(方案1)u1u3u2abcefg方案1:偷懒方法。当任何一个输入(a,b,c)发生变化时,均将所有的进程调度一次。问题:用什么来决定调度的顺序?方案1修补:根据信号流向来确定调度顺序。问题:当存在信号反馈的时候又如何处理?电子科技大学进程调度(方案2)u1u3u2ab
6、cefg方案2:对每一个模块,只有当该模块的输入发生变化时,该模块才被调用。问题:当模块的输入发生变化,但是又没有引起模块的硬件动作时,这种方法会有什么缺点?例子:寄存器的时钟发生变化时,寄存器才会产生硬件动作,而数据输入发生变化时,寄存器并不产生任何动作。电子科技大学VHDL中process的定义ModuleName:Process(敏感信号列表)Begin--进程描述语句。Endprocess;当敏感信号列表中的任何一个信号发生变化,该进程都会被调度电子科技大学Process例子假设U2为非门,则例子程序如下:U2:process(c)Beginif(c=‘1’)then
7、f<=‘0’;elsef<=‘1’;endif;Endprocess;当c发生变化时,该进程被调度.表示信号赋值。电子科技大学VHDL的进程调度u1u3u2abcefgabcef电子科技大学VHDL的进程调度u1u3u2abcefgabcef进入一个新的仿真周期U1_process被调度的进程:一个子仿真周期电子科技大学VHDL的进程调度u1u3u2abcefgabcef被调度的进程:进入一个新的仿真周期U1_processU3_process子仿真周期1子仿真周期2电子科技大学VHDL的进
此文档下载收益归作者所有