8可靠设计与高速设计.ppt

  1. 1、本文档共194页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
可靠设计与高速设计 学时分配:6 声明 本部分内容是数字电子系统的芯片级设计中要遇到的特殊问题,虽不是考试重点,但却是实际设计中的关键注意事项。 精选自一部分出版书籍、网络资料以及个人的一些设计经验,仅仅是众多设计原则和设计技巧中的沧海一粟,并且错误在所难免。 艺无止境,讲授本部分的目的仅仅是带领入门,修行仍靠自身。要熟练使用这些技巧,并且有进一步的提高,必须经过大量的项目实践去积累。 OUTLINE 正确设计 同步设计 异步设计 高速设计的其他手段 OUTLINE 正确设计 同步设计 异步设计 高速设计的其他手段 OUTLINE 正确设计 同步设计 异步设计 高速设计的其他手段 VHDL结构体描述风格 行为描述风格 可进行系统仿真,少数可用于综合。 RTL描述风格 寄存器传输级描述,也能为数据流描述风格。一般可被综合器综合。 结构描述风格 多用于顶层的模块连接。 行为描述风格 这种风格的描述往往以以下语句为主要特征: 使用延时语句,包括惯性延时和传输延时; 在多驱动的处理上采取判决函数; 使用Generic语句对时序参数建模; 使用其它具备行为级特性的语句如wait for等语句。 这部分属于高级仿真内容,在此不作讲述。 结构体描述风格 特征语句: PORT MAP; GENERIC MAP。 不作详细讲述。 RTL描述风格 面向可综合的设计,处于抽象设计与门级设计之间的层次。 其对应的硬件层次为寄存器云图 OUTLINE 正确设计 同步设计 异步设计 高速设计的其他手段 RTL描述风格注意事项 “X”状态的传递 时钟沿描述限制 关联性强的信号应该放在一个进程中 1. “X”状态的传递(1) 不确定态“X”在前仿真中经常会出现。当然综合以后的时序仿真中一般是不会出现的。 在RTL级的描述中,要做好“X”状态的处理,以使得前仿真和后仿真的结果一致。 1. “X”状态的传递(2) 例子: if( sel = ‘1’ ) then y = ‘0’; else y = ‘1`; end if; 1. “X”状态的传递(3) 例子: if( sel = ‘1’ ) then y = ‘0’; elsif( sel = ‘0’ ) then y = ‘1’; else y = ‘X`; end if; 1. “X”状态的传递(4) 实际上,第一种描述方式在设计中也是很经常见的,但是这个时候要尽力避免不确定态的出现: 电路初始化要完善,特别是时序电路中要有可靠的复位描述; 尽量少用组合回环或反馈; 测试矢量要完善。 1. “X”状态的传递(5) 时序电路的复位例子:时钟处理模块(2分频) Process( clk ) Begin If( clk’event and clk = ‘1’ ) then clk2d = not clk2d; End if; End process; 1. “X”状态的传递(5) 时序电路的复位例子:时钟处理模块(2分频) Process( clk, reset_n ) Begin if( reset_n = ‘0’ ) then clk2d = ‘0’; elsIf( clk’event and clk = ‘1’ ) then clk2d = not clk2d; End if; End process; 1. “X”状态的传递(6) 组合回环的避免 2. 时钟沿描述限制(1) 一个进程中,只能有一个时钟沿判断语句! Process(clk1, clk2) Begin if( clk1’event and clk1 = ‘1’) then … end if; if( clk2’event and clk2 = ‘1’ ) then end if; End process; 2. 时钟沿描述限制(2) 一个进程中,只能有一个时钟沿判断语句! Process(clk) Begin if( clk’event and clk = ‘1’) then … end if; if( clk’event and clk = ‘1’ ) then end if; End process; 2. 时钟沿描述限制(3) 所以,不能在一个进程中判断两次或以上的时钟沿,甚至是判断同一个时钟的同一个沿也不行。 OUTLINE 正确设计 同步设计 异步设计 高速设计的其他手段 敏感信号的问题(1) 敏感信号表只对前仿真引擎起作用,对综

文档评论(0)

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

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

1亿VIP精品文档

相关文档