|--------|------------------------------------------------------------------------------------------------------------------------------|
| 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;`
`