硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3166|回复: 0
收起左侧

组合逻辑电路(2)-----译码器/数据分配器

[复制链接]

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2013-1-25 15:21:51 | 显示全部楼层 |阅读模式
比较常用的38译码器功能表如下:
1.jpg
【例9.6】3-8译码器
module decoder_38(out,in);
output[7:0] out;
input[2:0] in;
reg[7:0] out;
always @(in)
  begin
   case(in)
3'd0: out=8'b11111110;
3'd1: out=8'b11111101;
3'd2: out=8'b11111011;
3'd3: out=8'b11110111;
3'd4: out=8'b11101111;
3'd5: out=8'b11011111;
3'd6: out=8'b10111111;
3'd7: out=8'b01111111;
   endcase
  end
endmodule


module ym_3_8(a,g1,g2,g3,y);
input[2:0] a;                        //3位2进制编码输入端
input g1,g2,g3;                        //3个使能输入端
output[7:0] y;                        //8位编码输出端
reg[7:0] y;
always@(a or g1 or g2 or g3)        //电平触发方式
begin
    if(g1==0) y=8'b11111111;            //如果g1为0,则y输出为11111111
    else if(g2==1) y=8'b11111111;    //如果g2为1,则y输出为11111111
    else if(g3==1) y=8'b11111111;    //如果g3为1,则y输出为11111111
    else
    case(a[2:0])                              //判断a的值,并通过a的值来给y设置输出值
    3'b000:y[7:0]=8'b11111110;        
    3'b001:y[7:0]=8'b11111101;
    3'b010:y[7:0]=8'b11111011;
    3'b011:y[7:0]=8'b11110111;
    3'b100:y[7:0]=8'b11101111;
    3'b101:y[7:0]=8'b11011111;
    3'b110:y[7:0]=8'b10111111;
    3'b111:y[7:0]=8'b11111111;
    endcase
end

endmodule

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-12 03:38 , Processed in 0.052041 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表