我用得查找表的CRC运算,在C++上调试是对的,但写到VHDL上就是错的,请各位大虾帮忙看下,谢谢!!! Data---输入的8位数组 uCRCH --高8位的CRC检验码 uCRCL --低8位的CRC经验码(uCRCH 和uCRCL 是已知的,都是256个8位的数组) 在VHDL上写的循环是: for i in 0 to 38 loop -- tmp 是std_logic_vector(7 downto 0)的信号; tmp<=uCRCH xor Data(i); CRCH<=uCRCH xor uCRCL(conv_integer(tmp)); --CRC的高8位; CRCL<=uCRCL xor uCRCL(conv_integer(tmp)); --CRC的高8位; end loop; 在调试的时候发现,如果Data(38)=“00000000”的输出全是0; 而Data(38)不为0时,输出是一个不停变化的的值,因为uCRCH和uCRCL 是给定的值,所以在Data 给定的情况下,输出的uCRCH和uCRCL 应该是一个确定的值才是对,调试了一下午,也没找到原因, 各位大虾帮帮忙啊 ,急死人了,谢谢!!!
[em02] |