HDLBITS Three moudles&HDL BITS Module shifit8

该博客介绍了如何使用Verilog HDL连接一个多级位移寄存器,包括一个基本的3位寄存器实例和一个进阶的8位寄存器,其中包含了选择输入的功能。通过case语句实现不同选择下的输出切换,casez和casex关键字用于处理高阻态和不定位的情况。
摘要由CSDN通过智能技术生成

题目描述:连接一个长度为3的位移寄存器。my_dff模块已给出

module top_module ( input clk, input d, output q );
    wire q1,q2;
    my_dff D0(.clk(clk),
              .d(d),
              .q(q1)
             );
    my_dff D1(.clk(clk),
              .d(q1),
              .q(q2)
             );
    my_dff D2(.clk(clk),
              .d(q2),
              .q(q));
endmodule

HDL BITS Module shifit8

进阶版本

 

module top_module ( 
    input clk, 
    input [7:0] d, 
    input [1:0] sel, 
    output [7:0] q 
);
    wire[7:0] q1,q2,q3;
    my_dff8 D0(.clk(clk),
               .d(d),
               .q(q1)
              );
    my_dff8 D1(.clk(clk),
               .d(q1),
               .q(q2)
              );
    my_dff8 D2(.clk(clk),
               .d(q2),
               .q(q3)
              );
    always@(*)begin
        case(sel)
            2'd0:
            begin
                q=d;
            end
            2'd1:
            begin
                q=q1;
            end
            2'd2:
            begin
                q=q2;
            end
            2'd3:
            begin
                q=q3;
            end
        endcase
    end
            
endmodule

case语句:

 case语句以case关键字开始,以endcase关键字结束。在括弧内的表达式将被精确地评估一次,并按其编写顺序与备选方案列表进行比较,与给定表达式匹配的备选方案的语句将被执行。一块多条语句必须分组,并在 begin 和 end 范围内。

casez进行控制表达式与分支表达式的比较时,不关注高阻态位(不管是控制表达式还是条件表达式,这些位均默认为匹配);
casex进行控制表达式与分支表达式的比较时,不关注高阻态,以及不定位(不管是控制表达式还是条件表达式,这些位均默认为匹配);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值