EDA 与数字系统设计 第2版 教学课件 ppt 作者 李国丽 等编著 CH3ch3-7

上传人:w****i 文档编号:92484729 上传时间:2019-07-10 格式:PPT 页数:21 大小:116.50KB
返回 下载 相关 举报
EDA 与数字系统设计 第2版 教学课件 ppt 作者 李国丽 等编著 CH3ch3-7_第1页
第1页 / 共21页
EDA 与数字系统设计 第2版 教学课件 ppt 作者 李国丽 等编著 CH3ch3-7_第2页
第2页 / 共21页
EDA 与数字系统设计 第2版 教学课件 ppt 作者 李国丽 等编著 CH3ch3-7_第3页
第3页 / 共21页
EDA 与数字系统设计 第2版 教学课件 ppt 作者 李国丽 等编著 CH3ch3-7_第4页
第4页 / 共21页
EDA 与数字系统设计 第2版 教学课件 ppt 作者 李国丽 等编著 CH3ch3-7_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《EDA 与数字系统设计 第2版 教学课件 ppt 作者 李国丽 等编著 CH3ch3-7》由会员分享,可在线阅读,更多相关《EDA 与数字系统设计 第2版 教学课件 ppt 作者 李国丽 等编著 CH3ch3-7(21页珍藏版)》请在金锄头文库上搜索。

1、第三章 Verilog HDL硬件描述语言,3.1 Verilog HDL概述 3.2 Verilog HDL语言要素 3.3 Verilog HDL基本语句 3.4 Verilog HDL门元件和结构描述 3.5 仿真验证 3.6 可综合性描述 3.7 设计实例,3.7 设计实例,3.7.1 译码电路 3.7.2 编码电路 3.7.3 数据分配器 3.7.4 同步计数器 3.7.5 移位寄存器 3.7.6 有限状态机的设计 3.7.7 复杂逻辑电路设计,3.7.1 译码电路,例3-7-1 3-8译码器 module decoder(a,b,c,cntl,y); input a,b,c; in

2、put 2:0 cntl; output 7:0 y; wire a,b,c; wire 2:0 cntl; reg 7:0 y; wire 2:0 data_in; assign data_in=c,b,a; always (data_in or cntl) endmodule,if ( cntl = 3b100 ) case (data_in) 3b000: y=8b1111_1110; 3b001: y=8b1111_1101; 3b010: y=8b1111_1011; 3b011: y=8b1111_0111; 3b100: y=8b1110_1111; 3b101: y=8b110

3、1_1111; 3b110: y=8b1011_1111; 3b111: y=8b0111_1111; endcase else y=8b1111_1111;,module coder(data_in, data_out, enable); input 7:0 data_in; input enable; output 2:0 data_out; wire 7:0 data_in; reg 2:0 data_out; always ( data_in or enable ) if ( enable ) data_out=3bz; else if ( data_in0 ) data_out=3b

4、000; else if ( data_in1 ) data_out=3b001; else if ( data_in2 ) data_out=3b010; else if ( data_in3 ) data_out=3b011; else if ( data_in4 ) data_out=3b100; else if ( data_in5 ) data_out=3b101; else if ( data_in6 ) data_out=3b110; else if ( data_in7 ) data_out=3b111; else data_out=3bz; endmodule,3.7.2 编

5、码电路,module demux (reset, cntl, d,dp1,dp2,dp3,dp4); input reset; /复位信号 input 1:0 cntl; /控制信号 input 3:0 d; /输入数据 output 3:0 dp1; /数据通道1 output 3:0 dp2; /数据通道2 output 3:0 dp3; /数据通道3 output 3:0 dp4; /数据通道4 wire reset; wire 1:0 cntl; wire 3:0 d; reg 3:0 dp1, dp2, dp3, dp4;,3.7.3 数据分配器,always (reset or c

6、ntl or d) if (reset) begin /复位 dp1=4b0; dp2=4b0; dp3=4b0; dp4=4b0; end else case (cntl) /通道选通 2b00: dp1 = d; 2b01: dp2 = d; 2b10: dp3 = d; 2b11: dp4 = d; default: begin dp1=4bzzzz; dp2=4bzzzz; dp3=4bzzzz; dp4=4bzzzz; end endcase endmodule,module counter(clk,en,clr,result); input clk, en , clr; outpu

7、t 7:0 result; reg 7:0 result; always ( posedge clk ) begin if ( en ) if (clr | result = = 8b1111_1111) result = 8b0000_0000; else result = result+1; end endmodule,3.7.4 同步计数器,module shift_left( clk, en, clr, data_in, data_out ); input clk,en,clr; input 7:0 data_in; output 7:0 data_out; wire 7:0 data

8、_in; reg 7:0 data_out; always ( posedge clk ) if ( en ) if ( clr ) data_out7:0 = 8b0; else data_out7:0 = data_in 1 ; endmodule,3.7.5 移位寄存器,例3-7-7 自动售饮料机要求每次投币一枚,分为五角和一元两种,根据两种币值的投币信号指示售货机是否发货,以及是否找零。这是一个可以用状态机描述的问题,共定义了7个状态,根据每次投入的币值决定下一个状态的变化。 7个状态的含义: STATUS0: 投币时,售货机内没有硬币; STATUS1: 投币时,售货机内已有5角;

9、STATUS2: 投币时,售货机内已有1元; STATUS3: 投币时,售货机内已有1元5角; STATUS4: 投币时,售货机内已有2元; STATUS5: 投币时,售货机内已有2元5角; STATUS6: 投币时,售货机内已有3元;,3.7.6 有限状态机的设计,假定投币信号five_jiao和one_yuan不会同时为1,饮料价格为2.5元。 当已投入2.5元时,仍继续投币,则售一瓶饮料后转至STATUS1或STATUS2状态; 若已投入3元,则将找零的五角作为基数,状态转移至STATUS2或STATUS3 ,开始新的转移。,例:自动售货机的verilog描述,module auto_s

10、ell ( five_jiao,one_yuan, clk, reset, sum, sell, five_jiao_out); input five_jiao,one_yuan; input clk, reset; output sell, five_jiao_out; output 7:0 sum; reg sell, five_jiao_out; reg 7:0 sum; reg 2:0 state; define STATUS0 3b000 define STATUS1 3b001 define STATUS2 3b011 define STATUS3 3b010 define STA

11、TUS4 3b110 define STATUS5 3b111 define STATUS6 3b101,always (posedge clk) current_state = next_state; /cs always (current_state or reset or five_jiao or one_yuan) begin if (!reset) begin next_state = STATUS0; five_jiao_out = 0; sell=0; sum=8h00; end else case (current_state) STATUS0: begin five_jiao

12、_out = 0; sell=0; sum=8h00; if (five_jiao) next_state = STATUS1; else if (one_yuan) next_state = STATUS2; else next_state = STATUS0; end,STATUS1: begin five_jiao_out = 0; sell=0; sum=8h05; if (five_jiao) next_state = STATUS2; else if (one_yuan) next_state = STATUS3; else next_state = STATUS1; end ST

13、ATUS2: begin five_jiao_out = 0; sell=0; sum=8h10; if (five_jiao) next_state = STATUS3; else if (one_yuan) next_state = STATUS4; else next_state = STATUS2; end,STATUS3: begin five_jiao_out = 0; sell=0; sum=8h15; if (five_jiao) next_state = STATUS4; else if (one_yuan) next_state = STATUS5; else next_s

14、tate = STATUS3; end STATUS4: begin five_jiao_out = 0; sell=0; sum=8h20; if (five_jiao) next_state = STATUS5; else if (one_yuan) next_state = STATUS6; else next_state = STATUS4; end,STATUS5: begin sell=1; five_jiao_out=0; sum=8h25; if (five_jiao) next_state=STATUS1; else if ( one_yuan ) next_state =

15、STATUS2; else next_state=STATUS0; end,STATUS6: begin sell=1; sum=8h30; if (five_jiao) begin next_state=STATUS2; five_jiao_out=0; end else if ( one_yuan ) begin next_state = STATUS3; five_jiao_out = 0; end else begin next_state=STATUS0; five_jiao_out=1; end end,default: begin next_state=STATUS0; sell=0; sum=8h00; five_jiao_out=0; end endcase end endmodule,为了更加接近实际

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号