第3章——Verilog硬件描述语言4案例.ppt

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课堂练习 设计一个状态机实现在时钟clk的控制下检测输入的串行数据是否为“1101 ”,画出状态转移图,并写出设计实现程序。 要求:当串行数据是“1101”,flag_out =a,否则flag_out =b。 * * 第3章 Verilog硬件描述语言(四) 3.5 Verilog HDL设计举例 3.5.1 组合电路设计 常用的设计方法 1、用assign语句对wire型变量进行赋值,综合后的结果是组合逻辑电路。 2、用always@ (敏感信号表) 注意: always块内赋值语句左边的变量是reg或integer型 在生成组合逻辑的always块中被赋值的所有信号必须都在always@ (敏感信号表) 的敏感电平列表中列出 * 1.编码器和译码器 例3-56:BCD码将十进制的数字转化为二进制 module bin2bcd (data_in ,EN ,data_out ); input [3:0] data_in ; input EN ; output [6:0] data_out ; reg [6:0] data_out ; always @(data_in or EN ) begin data_out = {7{1b0}}; if (EN == 1) begin case (data_in) //根据共阳接法译码 4b0000 : data_out [6:0] = 7b1000000; 4b0001 : data_out [6:0] = 7b1111001; 4b0010 : data_out [6:0] = 7b0100100; 4b0011 : data_out [6:0] = 7b0110000; 4b0100 : data_out [6:0] = 7b0011001; 4b0101 : data_out [6:0] = 7b0010010; 4b0110 : data_out [6:0] = 7b0000010; 4b0111 : data_out [6:0] = 7b1111000; 4b1000 : data_out [6:0] = 7b0000000; 4b1001 : data_out [6:0] = 7b0011000; default : data_out [6:0] = {7{1b0}}; endcase end end endmodule 数据选择器 例3-57:设计一个数据选择器,实现在选择信号SEL,使能信号EN的控制下,从输入信号IN0,IN1,IN2,IN3中选择一个赋值到输出端口OUT。 `define width 8 module mux(EN ,IN0 ,IN1 ,IN2 ,IN3 ,SEL ,OUT ); input EN ; input [`width-1:0] IN0 ,IN1 ,IN2 ,IN3 ; input [1:0] SEL ; output [`width-1:0] OUT ; reg [`width-1:0] OUT ; always @(SEL or EN or IN0 or IN1 or IN2 or IN3 ) begin if (EN==0) OUT = {8{1b0}}; else case (SEL ) 2’b00: OUT=IN0 ; 2’b01: OUT=IN1 ; 2’b10: OUT=IN2 ; 2’b11 : OUT=IN3 ; default : OUT={8{1b0}}; endcase end endmodule wire[width-1 :0] OUT; assign OUT= (EN==0)?8b0 :(SEL==2b00) ? IN0 :(SEL==2b01) ? IN1 :(SEL==2b10) ? IN2 :(SEL==2b11) ? IN3 : 8b0; 3. 数值比较器 例3-58:设计比较器电路,实现两个多位数的比较,并将结果显示如下: 当ab 置a_great为1,其余输出端为0 当a=b 置a_equle_b为1,其余输出端为0 当ab 置b_great为1,其余输出端为0 `def

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档