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
相关推荐
希言自然也18 小时前
赛灵思KU系列FPGA的EFUSE/BBRAM加密操作
fpga开发
Terasic友晶科技20 小时前
答疑解惑 | DE25-Nano开发板Uboot阶段与FPGA外设交互失败
fpga开发·led·uboot·de25-nano·terasic
雨霁初曦21 小时前
VHDL设计-基于四状态Moore型状态机
fpga开发
liuluyang5301 天前
clk_mux_seq sv改进
fpga开发·uvm
cmc10281 天前
222.ila窗口不出来----如果ad9361相连的rx_data_clk_in_p没有接匹配电阻,出来的时钟会不会很差,导致ila不正常工作呀
fpga开发
ALINX技术博客1 天前
【黑金云课堂】FPGA技术教程Vitis开发:RTC中断讲解
单片机·嵌入式硬件·fpga开发
unicrom_深圳市由你创科技1 天前
FPGA开发中的“时序约束“是什么?怎么写约束文件?
fpga开发
发发就是发1 天前
资源管理:I/O端口与内存映射
linux·服务器·驱动开发·单片机·嵌入式硬件·fpga开发
Soari2 天前
Ziggo-CaaS-Switch软件配置: undefined reference to pthread_create
java·开发语言·fpga开发·tsn·zynq·交换机配置
碎碎思2 天前
开源雷达做到20km?一个PLFM雷达项目的FPGA实现拆解
fpga开发