网站大量收购独家精品文档,联系QQ:2885784924

第七章.verilog例子ppt.ppt

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

VERILOG例子 主讲人:杨学友 教授 第七章 VERILOG例子 本章主要内容: 全加器的几种实现方式 编码器和解码器的实现 一个简单的状态机(自动售货机) VERILOG一些疑问 7.1全加器的几种实现方式 纯组合方式 输入 CIN,INA ,INB 输出 COUT,SUM 优点:实现简单 缺点:输入容易出现竞争,输出容易出 现冒险 竞争和冒险简介 当同一个变量经过不同通道到达同一个逻辑门时,产生竞争 竞争的输出就是冒险 如何避免冒险 变成时序逻辑 输出加上一个小电容 小电容滤波原理:门电路的输出电阻和小电容组成低频滤波器。 H=1/(1+SC) S=2Πf 全加器的时序实现 输入:CLK,CIN,INA,INB 输出:COUT,SUM 实际相当于一级流水线 优点:消除冒险 速度较快 缺点:速度相对多级流水线慢 全加器的4级流水线实现 流水线的执行过程 假设输入INA变化,则当时钟上升沿来到时,低2位先被计算,同时,高6位被打入第1级数据缓冲;此时如果INA再变化,则当时钟上升沿来到,第一次的低2位打入第1级缓冲,且第1次的3~4位被计算,第2次INA变化的低2位被计算;依次论推,则4个沿后,第1次INA的变化值被完全计算,第2次INA的变化被计算到低6位 简单说明 采用5级锁存、4级加法 每个加法器实现2位数据和一个进位相加 整个加法器只受2位全加器的工作速度限制,平均完成一个加法只需一个时钟周期的时间。 7.2编码器和解码器的实现 Module encoder (in , out); Input [3:0] in; output[1:0] out; always@ ( in ) Case (in) 4’b0001: out =0; 4’b0010:out = 1; 4’b0100: out =2; 4’b1000:out = 3; Default : out = 0; Endcase endmodule Module decoder (in , out); Input [1:0] in; output[3:0] out; always@ ( in ) Case (in) 2’b00: out =1; 2’b01:out = 2; 2’b10: out =4; 2’b11:out = 8; Endcase endmodule 7.3自动售货机的实现 说明:这是一个典型的状态机实现的例子。假定每瓶饮料售2.5元。只可使用1元和5角硬币。 输入:one, half, reset, clock 输出:dispense //售出一瓶饮料 collect //led灯提示取走饮料 half_out //找5角 设备图示 售货机面板图 状态转换 Reset状态:将数据清零 Idle状态: 投入5角,进入half态;投入1元,进入one态 Half状态:投入5角,进入one态;投入1元,进入one_half状态 One状态:投入5角,进入one_half态;投入1元,进入two态 状态转换续 One_half状态:投入5角,进入two态;投入1元,进入售出饮料,进入idle态。 Two状态:投入5角,售出饮料,同时进入idle态;投入1元,售出饮料,找钱,同时进入idle态。 3计数器状态图 (复位后,)状态进入0 来一个时钟沿,进入1 再来一个时钟沿,进入状态2 再来一个时钟沿,进入状态0 依次循环,0?1?2?0 3计数器的实现 Module cnt3(clk,out); Input clk; output out; Reg out; reg[1:0] state; Always@(posedge clk) Case(state) 0: begin state=1;out=0;end 1:begin state=2;out=0;end 2:begin state=0;out=1;end Default: begin state=0;out=0;end Endcase endmodule 7.4 VERILOG释疑 Always @ (敏感量) 组合逻辑电路中,敏感量是电平,只要电平变化,always语句就要执行。这里,电平变化指的是电平的连续变化,例子如下图。 时序逻辑电路中,敏感量是时钟的上升沿(posedge)或者下降沿(negedge),只要时钟的沿来到,always语句就要执行。这里的时钟变化是突变的沿。 -------具体关于时钟和电平的

文档评论(0)

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

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

1亿VIP精品文档

相关文档