编码器verilog实现

编码器的作用:将高低电平输出为二进制代码

常用的编码器有:普通编码器和优先编码器

8-3编码器verilog代码实现

难点:
1、if语句的判定:
①需要知道真值表
②需要知道if语句的写法,8种输出结果,需要8次if,if eles的用法需要熟练

module coder8_3;
input [7:0] a;
output [2:0] b;
wire [7:0] a;//定义输入变量类型,可以写成 input wire [7:0] a吗?
reg [2:0] b;
always@(*)
if (a[7]==1),b=3'b111;//初步的想法写成了8'b0000 0001<=000;可以直接用,这里的if没有tab格式,可以和always左对齐嘛?
//错误写法:if a[7]=1,b=[111];①使用if判定条件时,需要使用();②不能使用===才表示等于;③3位二进制输出是3'b111,而不是3'111;
//最开始写成if else(a[0]==1),b=3'b001;。根本不能直接写成if else,这个需要if和else中间插入语句。
else if(a[0]==1),b=3'b000;//第一个判定最容易出错,需要对真值表记清楚 else if(a[0]==1),b=3'b001;
else if(a[1]==1),b=3'b001;
else if(a[2]==1),b=3'b010;
else if(a[3]==1),b=3'b011;
else if(a[4]==1),b=3'b100;
else if(a[5]==1),b=3'b101;
else if(a[6]==1),b=3'b110;
else b=3'b000;//最后这一句很容易忘记,直接写成b=000有没有问题?
end
endmodule//最后这一句一定不能忘
  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值