安路FPGA的赋值报错——移位处理,加括号

author daisy.skye的博客_CSDN博客-嵌入式,Qt,Linux领域博主

在使用移位符号用来当作除以号使用时,发现如下问题

其中 cnt_8K 为偶数和奇数时输出的数据不一样

reg [10:0] cnt_8K;
reg [10:0] ram1_addra;
always@(posedge clk_16M)
begin
if(ram_out_flag )begin 
		if(cnt_8K[0] == 1'd0)
			ram1_addra <= cnt_8K >> 1 ;
		else 
			ram1_addra <= cnt_8K >> 1 + 11'd128;//注意这里
	end
end

但是在实际赋值过程如下代码的输出如下,其中当奇数时会一直输出0

只需要修改添加括号后,输出就正常了

	//ram1_addra <= cnt_8K >> 1 + 11'd128;
    ram1_addra <= (cnt_8K >> 1) + 11'd128;

你可能感兴趣的:(FPGA,fpga开发,安路,fpga)