A
aeneas81
Guest
Vážení,
Napsal jsem následující postup pro výpočet CRC-5 z 11 bit data pro USB účel.To trvá jeden datový v hodinovém cyklu a ukládá se signál, pak na 12 hodinovém cyklu bude provést kalkulaci.Nicméně, z nějakého neznámého důvodu, qu (at) RTU II držet syntetizován mou registry, a nemohl jsem dostat správný výstup.
btw, jsem četl z knihy, které proměnné nemá to hodnotu jako signály dělat, ale viděl jsem kódů s proměnnými, které mohou mít hodnotu více než hodinové hraně, stejně jako signál dělá, jak to?
Děkujeme za vaši pomoc a radu.CRC-5 kód jsem pracoval:SIGNAL stuffed_dataSig: std_logic_vector (10 DOWNTO 0);
procesu (CLK, RST, DIN)
variabilní stuffed_data: std_logic_vector (10 DOWNTO 0);
variabilní crc5_state: std_logic_vector (4 DOWNTO 0);
začít
pokud RST = '1 'pak
Počet <= 0;
out_crc5 <= "11111";
stuffed_dataSig <= "00000000000";
ELSIF clk'EVENT AND CLK = '1 'THEN
IF počítat <11 pak
- Získat vstupní data
stuffed_dataSig (count) <= din;
Počet <= Počet 1;
- Ověřit, že data se skladuje
testout <= stuffed_dataSig;
ELSIF count = 11 THEN - výpočet CRC
stuffed_data: = stuffed_dataSig;
crc5_state: = "11111";
pro i při 0 až 10 smyčka
crc5_state (0): = stuffed_data (i) xor crc5_state (4);
crc5_state (1): = crc5_state (0);
crc5_state (2): = crc5_state (1) xor crc5_state (4) xor stuffed_data (i);
crc5_state (3): = crc5_state (2);
crc5_state (4): = crc5_state (3);
konec vedení;
out_crc5 <= NOT crc5_state;
end if;
end if;
ukončení procesu;
Napsal jsem následující postup pro výpočet CRC-5 z 11 bit data pro USB účel.To trvá jeden datový v hodinovém cyklu a ukládá se signál, pak na 12 hodinovém cyklu bude provést kalkulaci.Nicméně, z nějakého neznámého důvodu, qu (at) RTU II držet syntetizován mou registry, a nemohl jsem dostat správný výstup.
btw, jsem četl z knihy, které proměnné nemá to hodnotu jako signály dělat, ale viděl jsem kódů s proměnnými, které mohou mít hodnotu více než hodinové hraně, stejně jako signál dělá, jak to?
Děkujeme za vaši pomoc a radu.CRC-5 kód jsem pracoval:SIGNAL stuffed_dataSig: std_logic_vector (10 DOWNTO 0);
procesu (CLK, RST, DIN)
variabilní stuffed_data: std_logic_vector (10 DOWNTO 0);
variabilní crc5_state: std_logic_vector (4 DOWNTO 0);
začít
pokud RST = '1 'pak
Počet <= 0;
out_crc5 <= "11111";
stuffed_dataSig <= "00000000000";
ELSIF clk'EVENT AND CLK = '1 'THEN
IF počítat <11 pak
- Získat vstupní data
stuffed_dataSig (count) <= din;
Počet <= Počet 1;
- Ověřit, že data se skladuje
testout <= stuffed_dataSig;
ELSIF count = 11 THEN - výpočet CRC
stuffed_data: = stuffed_dataSig;
crc5_state: = "11111";
pro i při 0 až 10 smyčka
crc5_state (0): = stuffed_data (i) xor crc5_state (4);
crc5_state (1): = crc5_state (0);
crc5_state (2): = crc5_state (1) xor crc5_state (4) xor stuffed_data (i);
crc5_state (3): = crc5_state (2);
crc5_state (4): = crc5_state (3);
konec vedení;
out_crc5 <= NOT crc5_state;
end if;
end if;
ukončení procesu;