超大规模集成电路设计方法学复习要点.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
超大规模集成电路设计方法学复习要点

4.5 复杂数字系统设计 把数字系统划分为控制器和数据通道,有利于体系结构的清晰描述,简化系统的设计。 控制器用于组织、协调、同步数据通路的操作。例如:控制ALU和其他一些数据处理单元的操作,以及装载、读取、移动存储器或寄存器中的内容,产生多路复用器的控制信号和三态器件的控制信号等。 面向特定应用的数字系统的设计步骤: 分析应用,确定系统的体系结构。包括软件和硬件、控制器和数据通道等; 结合功能和硬件体系结构,设计面向功能的操作集,并标记出支持该操作集的数据通道操作顺序(控制状态); 编排上述操作顺序,从而规整出产生这些控制信号以及控制状态转换的状态机,即控制器状态机; 数据通道组件与控制器状态机详细设计; 集成上述组件并验证。 4.7 可综合的Verilog RTL设计 逻辑综合是特定的设计约束条件下,把高层次描述的设计转换为优化的门级网表的过程。 目前,这一过程都是由EDA工具软件基于预先定义的标准单元库自动处理完成。 除了直接的门级描述外,可综合的Verilog语言子集一般称为RTL集合,通常包括连续赋值语句和行为描述的一部分。 常用的RTL语法结构包括: (1)模块声明。 (2)端口信号声明。 (3)变量类型。 (4)参数定义。 (5)运算符:算术、逻辑、移位等。 (6)条件与分支语句。 (7)连续赋值语句。 (8)块语句。 (9)进程语句:always语句。 (10)任务与函数。 (11)for循环语句。 4.7.1 可综合的组合电路设计 Verilog中可综合的组合逻辑主要有以下表达方式: (1)结构化的基本门网表; (2)连续赋值语句; (3)电平敏感的周期性行为。 基本门网表显然是可综合的,在逻辑综合过程中,可以对原始网表进行化简、优化。 连续或条件赋值语句是可综合的,例如: assign out=(s) ? I0 : i1 可以综合为二选一选通器。 电平敏感周期性行为由always语句实现,但敏感列表中的信号不能是边沿信号,且所有触发信号都必须列举在敏感表中。例如:一位数据比较器 module comparator(gt,lt,eq,a,b); output gt,lt,eq; input a,b; reg gt,lt,eq; always @ (a or b) if(a!=b) begin gt=a;lt=b;eq=0; end else begin gt=0;lt=0;eq=1; end endmodule 可综合的组合逻辑电路要求无反馈结构。 在always语句中,不支持内嵌的时间控制(如#、@、wait)。 在always语句中被赋值的变量必须被说明为reg类型。 用always语句描述组合逻辑时应该使用阻塞型赋值语句。 组合逻辑必须针对所有可能的输入值组合给出输出赋值,否则综合工具可能导出锁存器。 在赋值表达式右端参与赋值的信号都必须在敏感电平列表中列出,否则综合工具可能导出锁存器。 举例:带锁存输出的2路选择器,见下页。 4.7.2 可综合的时序电路设计 时序逻辑可分为电平控制的锁存器类型和时钟边沿控制的触发器类型。 对于锁存器类型的时序逻辑设计,可用带反馈和条件操作符的连续赋值语句实现,例如,SRAM存储器单元可建模成: assign dataout=(cs==0)?(we==0)?datain:dataout:1’bz; 锁存器也可以由行为描述建模。例如: always@(latchenable or datain) if(latchenable) dataout=datain 不完全的case语句也会产生相同的效果。 带触发器的时序逻辑仅由边沿触发的行为描述综合而来,通常的同步时序电路是指时钟的上升沿或下降沿同步。一般不建议双边沿触发。 同步复位/置位,异步复位/置位。 4.8 代码书写风格 提倡良好代码书写风格的目的是:提高代码的可读性、可调试性和可维护性。 良好代码书写风格的要素: (1)文件头与注释。 (2)可移植性。 (3)模块化与分割。 (4)命名惯例。 (5)语句书写:采用缩进格式,体现层次,增强可读性。 (6)模块声明:模块端口排列顺序建议为双向端口、输出、输入,相同功能的端口防在一起。 (7)某些特殊结构:建议组合逻辑和时序逻辑放在不同的always块中,建议使用独热码和格雷码作状态编码。 (8)错误避免:无意识锁存器、不完整的敏感列表。 (9)阻塞与非阻塞赋值。 低功耗设计足一个复杂的综合性课题。就流程而言,包括功耗建模、评估以及优化等;就设计抽象层次而言,包括自

文档评论(0)

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

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

1亿VIP精品文档

相关文档