用verilog hdl语言编写一个8—3译码器程序

 我来答
棠棠球
推荐于2017-05-27 · TA获得超过940个赞
知道小有建树答主
回答量:290
采纳率:0%
帮助的人:85万
展开全部
首先要纠正一下,相对多的输入转化成为相对少的输出,一般叫编码器;相对少的输入转化成为相对多的输出,一般叫译码器。所以,确切地说你要做的应该是8-3编码器(还是3-8译码器)。
//8-3编码器verilog代码
module enc_83(datain, dataout, en);
input [7:0] datain;
input en;

output [2:0] dataout;
reg [2:0] dataout;

always @*
if (~en)

dataout = 3'b0;

else case(datain)
8'b0000_0001: dataout = 3'b000;

8'b0000_0010: dataout = 3'b001;
8'b0000_0100: dataout = 3'b010;
8'b0000_1000: dataout = 3'b011;
8'b0001_0000: dataout = 3'b100;
8'b0010_0000: dataout = 3'b101;
8'b0100_0000: dataout = 3'b110;
8'b1000_0000: dataout = 3'b111;
default: dataout = 3'b000;

endcase

endmodule

//关于上述代码的说明
1) 上述实现的是8-3普通编码器,即同一时刻输入保证只有一位有效;
2) 上述代码没有输出编码有效的标识位,如果需要的话可自行添加。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式