EDA设计仿真与硬件描述语言.ppt

  1. 1、本文档共93页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
EDA设计仿真与硬件描述语言 张德学 2010年6月1日 前堂回顾 基于FPGA开发的基本流程 QuartusII工具流程基本概念(综合、管脚分配) 开发板介绍 Usb-blaster编程介绍 实例演示 //以组合逻辑为例,先将FPGA流程实验了一遍,随后的课程边学习边实验 //实验情况? 不动手 === 0 实验室全天开放 第五章 时序逻辑描述与实现 由基本门构建时序逻辑 同步电路概念 数字电路中基本部件描述举例 演示 1. 由基本门构建时序逻辑 组合电路定义? 组合电路: 电路的输出仅是当前输入的函数,与先前值无关。 怎样与先前值有关? 反馈 最简单的方式:反馈! 奇数个反相器连接,结果? 偶数个反相器连接,结果? //Lab_inv_loop //简介脚本方式 vsim –do sim.do 奇数个反相器连接: 震荡,可以作为频率源 偶数个反相器连接: 两个稳定状态 时序电路 Cross-coupled 两个稳定状态 (a)与(b)实际一样,仅画法不同 两个稳定状态,但没有控制 // 需要仿真时赋初值 SR Latch NOR门 Cross-coupled //Lab_SR_Latch 缺点: R=1,S=1时表现怪异 D Latch SR Latch基础上改进,避免R、S同时为1 Lab_D_Latch //层次化设计 Latch缺点 在CLK=1的时间内,D的变化均会传递到Q 实际更需要的是CLK由0?1或者1?0的边沿触发D?Q,即触发器Flip-flop Latch是level-sensitive, Flip-flop是edge-triggered D Flip-Flop (DFF) 可由两个D Latch构成DFF //Lab_D_FF //有更简单的写法,此处只是演示原理 DFF仅在时钟上升沿时将D?Q Enabled DFF (带使能功能) 稍加改造DFF;a、b两种方式实现 带reset的DFF Latch 与 FF比较 2. 同步电路概念 同步电路 vs 异步电路? 系统中若存在多个DFF,采用的时钟是同一个? synchronous sequential circuit 电路的每一条路径中至少包含一个register 所有register由同一时钟源驱动 //准确的说法:各个register的时钟间有固定的相位关系 同步电路较异步电路容易设计,因而大部分采用同步电路 // why ? 通信电路中,有时必须采用异步电路(不同的信号源) 3. 数字电路中基本部件描述举例 复杂电路均建立在简单电路基础上 基本电路的描述方法 Clocked D latch 上图电路如何用verilog表达? //多种描述方法 module latch(d,c,q,q_b); //门级表达 input d; input c; output q; output q_b; wire _r; wire _s; and #1 g1(_s,d,c); and #1 g2(_r,~d,c); nor #2 g3(q_b,_s,q); nor #2 g4(q,q_b,_r); endmodule module latch(d,c,q,q_b); //连续赋值表达 input d; input c; output q; output q_b; assign #3 q = c?d:q; assign q_b = ~q; endmodule module latch(d,c,q,q_b); //过程赋值表达 input d; input c; output q; output q_b; reg q; reg q_b; always@(c or d) begin if(c) begin #4 q = d; q_b = ~d; end end endmodule D Latch 演示 //Lab4 注意时延设置,可以自己修改,看看结果 补充:阻塞赋值与非阻塞赋值 D Latch与 DFF更常用非阻塞(zu se,新华字典)赋值来表达 前面课程中介绍 过程块(initial,always)时,未涉及到时序电路,未介绍非阻塞赋值! //从仿真器工作原理开始,可选讲解 仿真器工作原理 intitial 执行一次 always循环执行(只要满足触发条件) always a=b; 如何执行? 各block的执行是concurrent,执行顺序不确定 begin……end中的阻塞赋值按顺序执行,非阻塞赋值在当前时间槽事件队列结束时同时执行 fork …… join中语句并行执行 always a=b; 仿真器时间不能前进! Procedural assignments 在过程块中的赋

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档