打印

四选一逻辑

[复制链接]
55|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
34af9uc|  楼主 | 2024-3-31 23:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
<div class="blockcode"><blockquote>/****************四选一逻辑**********************************/
/****************ID:共同学习stm8**********************************/
/**************************************************/
/*************20240329*************************************/
/*
当sel为00时y<=a&b;
当sel为01时y<=a|b;
当sel为10时y<=a^b;
当sel为11时y<=~(a^b);
*/
`timescale 1ns/10ps
module fn_sw_4(a, b, sel, y);
input                a;
input                b;
input[1:0]        sel;
output                y;

reg                y;

always@(a or b or sel)
begin
        case(sel)
               
                2'b00:begin        y<=a&b;                end
                2'b01:begin        y<=a|b;                end
                2'b10:begin        y<=a^b;                end
                //2'b11:begin        y<=~(a^b);        end
                2'b11:begin        y<=a~^b;        end                //同或
        endcase
end

endmodule
/**************testbench of fn_sw_4************************************/
module fn_sw_4_tb;
reg[3:0]        absel;
wire                y;

fn_sw_4        fn_sw_4
        (
        .a(absel[0]),
        .b(absel[1]),
        .sel(absel[3:2]),
        .y(y)
        );
initial
        begin
        absel        <=0;       
        #200        $stop;
        end
       
        always        #10        absel<=absel+1;
endmodule
/**************************************************/
/**************************************************/
/**************************************************/


使用特权

评论回复

相关帖子

发新帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

285

主题

442

帖子

55

粉丝