zcy0517 发表于 2014-4-18 14:43:24

为什么都是一个时钟控制的,边沿却对不齐?

为什么都是一个时钟控制的,边沿却对不齐?

NJ8888 发表于 2014-4-18 14:53:44

从图看两个信号没有相关性呀

zcy0517 发表于 2014-4-18 15:07:47

NJ8888 发表于 2014-4-18 14:53
从图看两个信号没有相关性呀

看这个,rBRC<=cntt.但是边沿没对齐,而且冒出了个小小的2把顺序都调乱了。这是怎么回事?
程序大致是这样的:
if(!Busy_Sig)
                case(i)
             1:if(y==16) begin y<=5'd0;i<=2;end
                else if( Done_Sig ) begin y<=y+1'b1; isWrite <= 1'b0;end
               else begin isWrite <= 1'b1; rData <=y ; rBRC <= y;end
                               
               2:
               if( x == 16 ) begin x <= 5'd0; i <= 1; end
               else if( Done_Sig ) begin rLED <= RdData;x <= x + 1'b1; isRead <= 1'b0; end
               else begin isRead <= 1'b1; rBRC <= cntt; end
               
             endcase

zcy0517 发表于 2014-4-18 15:09:09

该怎么同步处理?

NJ8888 发表于 2014-4-18 15:11:48

你是组合逻辑呀,有毛刺好理解,没看到你是时序逻辑

zcy0517 发表于 2014-4-18 15:15:59

NJ8888 发表于 2014-4-18 15:11
你是组合逻辑呀,有毛刺好理解,没看到你是时序逻辑

不好意思。。。刚刚没贴全,完整的程序是这样的:
always @ ( posedge CLK_100Mhz or negedge RSTn )
         if( !RSTn )
             begin
               i <= 1;
               C1 <= 29'd0;
               x <= 5'd1;
                                          y <= 5'd1;
               rData <= 16'd0;
               rBRC <= 22'd0;
               rLED <= 4'd0;
               isWrite <= 1'b0;
               isRead <= 1'b0;          
             end
         elseif(!Busy_Sig)
                case(i)
                1:if(y==16) begin y<=5'd0;i<=2;end
                else if( Done_Sig ) begin y<=y+1'b1; isWrite <= 1'b0;end
               else begin isWrite <= 1'b1; rData <=y ; rBRC <= y;end
                               
               2:
               if( x == 16 ) begin x <= 5'd0; i <= 1; end
               else if( Done_Sig ) begin rLED <= RdData;x <= x + 1'b1; isRead <= 1'b0; end
               else begin isRead <= 1'b1; rBRC <= cntt; end
               
             endcase
            

honeybear 发表于 2014-4-18 15:47:08

cnt1在什么地方,没有找到

zcy0517 发表于 2014-4-18 15:56:38

honeybear 发表于 2014-4-18 15:47
cnt1在什么地方,没有找到

就是cntt 我输出的时候用assign把脚给拉出去了 assgin cntt1=cntt;
页: [1]
查看完整版本: 为什么都是一个时钟控制的,边沿却对不齐?