拼接赋值和移位赋值区别

拼接赋值: assign test_1 = {1'b1,{(1 - 1){1'b0}}};

结论:拼接系数为0是,赋值结果是3'b010,与想象中的结果不一样。

移位赋值:assign test_2 = (1'b1 << (1 - 1));

结论:左移个数为0时,结果是3'b001,与想象中的结果一样。

仿真结果:

仿真源代码:

`timescale 1ns / 1ps
module tb_spi();
parameter   C_SIZE  = 1 ;//读写&字节个数控制
reg spi_clk;
reg spi_reset;
reg spi_wr_en_pos;
reg spi_rd_en_pos;
reg [C_SIZE-1:0] spi_cmd;
initial begin
spi_clk = 1;
spi_reset = 1;
spi_wr_en_pos = 0;
spi_rd_en_pos = 0;
#300
spi_reset = 0;
#300
spi_rd_en_pos = 1;
#200
$finish;
end
always #100 spi_clk = ~spi_clk;
always@(posedge spi_clk)
begin
    if(spi_reset)
        spi_cmd <= (1'b0 << (C_SIZE - 1));
    else if(spi_wr_en_pos)
        spi_cmd <= (1'b0 << (C_SIZE - 1));
    else if(spi_rd_en_pos)
        spi_cmd <= (1'b1 << (C_SIZE - 1));
    else
        spi_cmd <= spi_cmd;
end
//
wire [2:0] test_1,test_2;
assign test_1 = {1'b1,{(1 - 1){1'b0}}};
assign test_2 = (1'b1 << (1 - 1));
endmodule
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值