硬件描述语言6.ppt

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

GUET School of Information Communications 主讲:信息与通信学院谢跃雷(副教授) 基本存储单元 常用时序逻辑电路 状态机设计 4.1 时序逻辑电路设计:基本存储单元 时序逻辑电路:输出不仅仅取决于输入,还和电路的状态有关。电路结构看由存储电路和组合逻辑电路构成,而构成存储电路的基本单元有锁存器、触发器。 一、门级原语建模 或非门交叉耦合构成的SR锁存器结构如图: 电平触发SR触发器结构如图: 二、连续赋值语句建模 三、行为建模  与组合逻辑电路类似,时序逻辑电路也可以采用简捷的行为建模来描述。如D锁存器:  边沿触发D触发器:  同步置数清零边沿触发D触发器:  异步置数清零边沿触发D触发器: 4.2 时序逻辑电路设计:常用时序逻辑电路 一、移位寄存器 二、双端移位寄存器 三、计数器 十进制计数器 可逆计数器 四、RAM 五.分频器 时序逻辑电路中需要各种频率时钟,利用分频器可以产生所需时钟。 分频器是利用计数器来实现,所产生的时钟占空比50%。 输入时钟:clk_in 输出时钟:clk_out 分频系数:div_cof 在数字电路中我们已经学习过通过建立有限状态转换图来进行数字逻辑的设计,而在Verilog HDL 硬件描述语言中,这种设计方法得到进一步的发展。 状态机可用于产生在时钟跳变沿时刻开关的复杂的控制逻辑,是数字逻辑的控制核心。通常用case语句设计实现,注意以下三点: 状态编码。 状态在各种输入下的转移次态 当前状态下输出 至此,只要得到任意一个数字系统的状态转换图,都可以用Verilog来进行设计 例:设计一个自动报纸销售机 电路要求: 状态机设计 必须为该数字电路设置一些要求,如下所示: 当投入硬币时,一个两位的信号coin[1:0]被传送到数字电路。该信号在全局clk信号的一个下降沿取值,并且准确地保持一个时钟周期。 数字电路的输出是一位的。每次当投入的硬币总数为15分或者超过15分时输出信号newspaper变为高电平,并且保持一个时钟周期,售卖机的门也被打开。 可以用一个reset信号复位状态机,设为同步复位。 可以用有限状态机表示该数字电路的功能。 输入:2位coin[1:0],没有硬币时,x0=2’b00;有一个5角的硬币时x5=2’b01;一个1元的硬币时,x10=2’b10。 输出:1位,newspaper,当newspaper=l’b1时,打开门。 状态:4个状态。s0=0;s5=5角;s10=1元;s15=1.5元。 module vend( coin,clock,reset,newspaper); //声明输入输出端口 input [1:0] coin; input clock, reset; output newspaper; wire newspaper; wire [1:0] next_state; reg [1:0] pres_state; //状态编码 Parameter s0=2b00, s5=2b01; s10=2b10, s15=2b11; //状态机函数 function [2:0] fsm; input [1:0] fsm_coin; input [1:0] fsm_pres_state; reg fsm_newspaper; reg [1:0] fsm_next_state; begin case (fsm_pres_state) s0: begin if(fsm_coin==2b10) begin fsm_newspaper=1b0; fsm_next_state=s10; end else if (fsm_coin==2b01) begin fsm_newspaper=1b0; fsm_next_state=s5; end else begin fsm_newspaper =1b0; fsm_next_state= s0; end end s5: begin if (fsm_coin==2b10) begin fsm_newspaper=1b0; fsm_next_state=s15; end else if (fsm_coin==2b01) begin fsm_newspaper=1b0; fsm_next_state=s10; end else

文档评论(0)

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

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

1亿VIP精品文档

相关文档