其实在这个模块里还有一个data_ready信号,当data_ready=1时表示有数据输入,计数器datacount加1。data_ready是在时钟的上升沿触发的。<br>
我按照你们的意见,修改了一下,用时钟作为触发信号,并分成三个8位的寄存器regdata0,regdata1,regdata2来分别存放输入的数,最后合成一个数,可结果还是一样,请问还存在什么问题呢?程序如下:<br>
always@(clk16x)<br>
begin<br>
<br>
if(datacount==3'b001)<br>
regdata0=dout; <br>
else if(datacount==3'b010)<br>
regdata1=dout;<br>
else if(datacount==3'b011) <br>
regdata2=dout;<br>
else if(datacount==3'b100)<br>
cmpdata[20:16]=dout;<br>
else if(datacount==3'b101)<br>
cmpdata[15:8]=dout;<br>
else if(datacount==3'b110)<br>
cmpdata[7:0]=dout;<br>
end<br>
<br>
always @(posedge clk16x)<br>
begin<br>
regdataout={regdata0,regdata1,regdata2};<br>
end |