HDLbits: Shift18

先补充一下算术移位寄存器和按位移位寄存器:

SystemVerilog具有按位和算术移位运算符。

按位移位只是将向量的位向右或向左移动指定的次数,移出向量的位丢失。移入的新位是零填充的。例如,操作8'b11000101 << 2将产生值8'b00010100。按位移位将执行相同的操作,无论被移位的值是有符号的还是无符号的。

算术左移位对有符号和无符号表达式执行与按位右移位相同的操作。算术右移位对"无符号"和"有符号"表达式执行不同的运算。如果要移位的表达式是无符号的,算术右移位的行为与按位右移相同,即用零填充输入位。如果表达式是有符号的,则算术右移将通过用符号位的值填充每个输入位来保持值的有符号性。

注意:有符号数的算术右移比较特殊,最右边补的位是符号位的值!

cpp 复制代码
module top_module(
    input clk,
    input load,
    input ena,
    input [1:0] amount,
    input [63:0] data,
    output reg [63:0] q); 
    
    always@(posedge clk)
        if(load)
            q <= data;
    	else if(ena)
            case (amount)
                2'b00: q <= q << 1 ;
                2'b01: q <= q << 8 ; 
                2'b10: q <= {q[63],q[63:1]};
                2'b11: q <= {{8{q[63]}},q[63:8]} ;
            endcase

endmodule
相关推荐
Turing_kun2 小时前
基于FPGA的SPI控制FLASH读写
fpga开发
hahaha601610 小时前
差模干扰 & 共模干扰
fpga开发
璞致电子11 小时前
【PZ-KU060-KFB】——Kintex UltraScale 纯 FPGA 开发平台,释放高速并行计算潜能,高性价比的 FPGA 解决方案
fpga开发·fpga
我爱C编程14 小时前
基于FPGA的16QAM软解调+卷积编码Viterbi译码通信系统,包含帧同步,信道,误码统计,可设置SNR
fpga开发·16qam·软解调·帧同步·卷积编码·viterbi译码
南棱笑笑生14 小时前
20250726让荣品的PRO-RK3566开发板使用TF卡启动
fpga开发
水果里面有苹果1 天前
1-FPGA的LUT理解
fpga开发
千宇宙航2 天前
闲庭信步使用图像验证平台加速FPGA的开发:第二十七课——图像腐蚀的FPGA实现
图像处理·计算机视觉·fpga开发·图像腐蚀
小白到大佬2 天前
High Speed SelectIO Wizard ip使用记录
fpga开发·lvds·高速接口
嵌入式-老费2 天前
再谈fpga开发(fpga开发的几个特点)
fpga开发
范纹杉想快点毕业2 天前
基于C语言的Zynq SOC FPGA嵌入式裸机设计和开发教程
c语言·开发语言·数据库·嵌入式硬件·qt·fpga开发·嵌入式实时数据库