emmmmmmm实在不好意思,还有有几个问题想要问一下,第一个关于复位时间的问题: //------------------------读取FIFO的控制信号-------------------------//
M_S_RST_FIFO0:
begin
M_S <=(rst_FIFO_cnt>=8'd60)?M_S_IDLE:M_S;
CH6_FIFO_RST <=(rst_FIFO_cnt<=8'd20)&&MSG_FIFO_RDDATA[6];
CH0_FIFO_RST <=(rst_FIFO_cnt<=8'd20)&&MSG_FIFO_RDDATA[7];
rst_FIFO_cnt <=rst_FIFO_cnt+8'd1;
end
在这个语句中,以5640输入数据寄存FIFO CH0复位为例,CH0的复位信号维持22个100Mhz系统时钟,复位之后CH0_FIFO中数据全部无效,然后再经过40个100Mhz时钟,进入M_S_IDLE,在40个100Mhz时钟中数据从5640模块输入到CH0_FIFO,在40个100Mhz的过程中,CH0_FIFO最多接受40/4=10个32bit数据,也就是320bit,而 CH0_REQ <= (CH0_rusdw_o >=PIXEL_H);,这是不是一直使得无法满足CH0_REQ=1?
第二个问题是为什么设置 parameter PIXEL_H =8'd78;//半行像素,这个初衷是不是为了设置成一行像素呢?一行像素就就是80*256/8/4=640个像素点,78是不是考虑到CH_REQ设置成1需要一个100MHZ的时钟,在M_S_IDLE又耗时一个100Mhz时钟,载开始进入写地址状态,可是这两个相差的100Mhz时钟时间只是写入时钟时间的一半,并不能保证可供读取的数据满足一次突发的数据量? |