Verilog学习日志(2021.7.5)

2021.7.5

今天白天去拔智齿了,所以学习时间受到了一定影响。尽量看能做多少做多少,

(32)在always过程块之中可以用case语句来代替多个if-else语句。

①case语句和C语言里面的switch case写法稍有不同,应该注意。

②switch case里面有break语句,case语句只能执行一个语句,如果要执行多条要使用begin...end语句块。

③case语句允许条件重合,然后执行程序匹配到的第一个,而switch case语句不允许。

④case语句是串行执行的。

(33)写一个把4位优先编码器,当给定输入向量时,输出其中右边第一个1的位置。

(34)在always过程块的case语句中引入了无关项(don’t-care bits)”z”。”?”也可以用来表示无关项。

//注意!引入了无关项的case语句变成了casez语句,关键字要改过来!

奇怪了,我这么写是错在哪里了?

module top_module (

    input [7:0] in,

    output reg [2:0] pos  );

    always @ (*)

        begin

            casez (in)

                8'b00000000 : pos = 3'b000;

                8'b1zzzzzzz : pos = 3'b111;

                8'b01zzzzzz : pos = 3'b110;

                8'b001zzzzz : pos = 3'b101;

                8'b0001zzzz : pos = 3'b100;

                8'b00001zzz : pos = 3'b011;

                8'b000001zz : pos = 3'b010;

                8'b0000001z : pos = 3'b001;

                8'b00000001 : pos = 3'b000;

            endcase

        end

endmodule

算了先放着,之后复习一下优先编码器的知识再整。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值