微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > verilog 这段代码仿真时候不对

verilog 这段代码仿真时候不对

时间:10-02 整理:3721RD 点击:
reg [2:1] mem_data_cnt = 2'b0;
                         reg [31:0] addr_mem;
                        always @(posedge clk)begin
                          addr_mem[31:4] <= 0;
                          addr_mem[3:0] <= addr_mem[3:0] + mem_data_cnt*4;
                          mem_data_cnt <= mem_data_cnt + 1'b1;
                      end
假设一开始addr_mem 值为0,仿真时候addr_mem值是0,4,12,8 变化的,但是我计算应该是0,4,8,12变化呀

就应该是0,4,12,8变化的,最后一次其实应该是24但你设置的addr_mem只有4位只能计数到16,因此最后一次仿真结果为8



   mem_data_cnt 变化是0,1,2,3呀,乘以4 不就是0,4,8,12么?



   。我才发现我搞错了,晕

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top