Forum Discussion
Altera_Forum
Honored Contributor
18 years agobit by bit Data transfer
Hello All.. I have problem in my code. I have created code for transmitting the data bit by bit. i.e.if my input (FCH)=1010101010101010=AAh then I'm Expecting 1010101010101010=AAh at tx_line o...
Altera_Forum
Honored Contributor
18 years agoHi
I need another one help,please help me.Here i wrote vhdl code for 32 bit crc for 2 bits of input data. please can anybody ulter this code for 32 bits of input data.If u have any other vhdl or verilog code (CRC-32 and 32 bit data) please forward to me. please... Vhdl code: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity CRC_BLOCK is port ( fcs:out std_logic_vector(31 downto 0); CLK:in std_logic; data:in std_logic_vector(1 downto 0); Reset_n:in std_logic); end CRC_BLOCK; architecture Behavioral of CRC_BLOCK is begin process(CLK) variable Dividend: std_logic_vector(34 downto 0);--make it 34 and check variable quo1:std_logic_vector(31 downto 0); variable rem1: std_logic_vector(33 downto 0); variable g:integer; variable polynomial:std_logic_vector(32 downto 0);--G(X) constant n:std_logic_vector(32 downto 0):="100000000000000000000000000000000"; begin if(CLK'event and CLK = '1')then if(Reset_n = '0')then quo1 := (others=>'0'); polynomial:="100000100110000010001110110110111"; dividend := data * n;--M(X)*X32 rem1(33 downto 0):=dividend(33 downto 0); fcs(31 downto 0) <= rem1(31 downto 0); else if (g=1) then quo1:= (others=>'0'); else if(rem1 >= polynomial )then rem1 (0) := rem1(1) xor polynomial(0); rem1 (1) := rem1(2) xor polynomial(1); rem1 (2) := rem1(3) xor polynomial(2); rem1 (3) := rem1(4) xor polynomial(3); rem1 (4) := rem1(5) xor polynomial(4); rem1 (5) := rem1(6) xor polynomial(5); rem1 (6) := rem1(7) xor polynomial(6); rem1 (7) := rem1(8) xor polynomial(7); rem1 (8) := rem1(9) xor polynomial(8); rem1 (9) := rem1(10) xor polynomial(9); rem1 (10) := rem1(11) xor polynomial(10); rem1 (11) := rem1(12) xor polynomial(11); rem1 (12) := rem1(13) xor polynomial(12); rem1 (13) := rem1(14) xor polynomial(13); rem1 (14) := rem1(15) xor polynomial(14); rem1 (15) := rem1(16) xor polynomial(15); rem1 (16) := rem1(17) xor polynomial(16); rem1 (17) := rem1(18) xor polynomial(17); rem1 (18) := rem1(19) xor polynomial(18); rem1 (19) := rem1(20) xor polynomial(19); rem1 (20) := rem1(21) xor polynomial(20); rem1 (21) := rem1(22) xor polynomial(21); rem1 (22) := rem1(23) xor polynomial(22); rem1 (23) := rem1(24) xor polynomial(23); rem1 (24) := rem1(25) xor polynomial(24); rem1 (25) := rem1(26) xor polynomial(25); rem1 (26) := rem1(27) xor polynomial(26); rem1 (27) := rem1(28) xor polynomial(27); rem1 (28) := rem1(29) xor polynomial(28); rem1 (29) := rem1(30) xor polynomial(29); rem1 (30) := rem1(31) xor polynomial(30); rem1 (31) := rem1(32) xor polynomial(31); rem1 (32) := rem1(33) xor polynomial(32); quo1 := quo1 + 1; end if; if(rem1 >= polynomial )then rem1(32 downto 0) := rem1(31 downto 0) & '0'; rem1 (0) := rem1(0) xor polynomial(0); rem1 (1) := rem1(1) xor polynomial(1); rem1 (2) := rem1(2) xor polynomial(2); rem1 (3) := rem1(3) xor polynomial(3); rem1 (4) := rem1(4) xor polynomial(4); rem1 (5) := rem1(5) xor polynomial(5); rem1 (6) := rem1(6) xor polynomial(6); rem1 (7) := rem1(7) xor polynomial(7); rem1 (8) := rem1(8) xor polynomial(8); rem1 (9) := rem1(9) xor polynomial(9); rem1 (10) := rem1(10) xor polynomial(10); rem1 (11) := rem1(11) xor polynomial(11); rem1 (12) := rem1(12) xor polynomial(12); rem1 (13) := rem1(13) xor polynomial(13); rem1 (14) := rem1(14) xor polynomial(14); rem1 (15) := rem1(15) xor polynomial(15); rem1 (16) := rem1(16) xor polynomial(16); rem1 (17) := rem1(17) xor polynomial(17); rem1 (18) := rem1(18) xor polynomial(18); rem1 (19) := rem1(19) xor polynomial(19); rem1 (20) := rem1(20) xor polynomial(20); rem1 (21) := rem1(21) xor polynomial(21); rem1 (22) := rem1(22) xor polynomial(22); rem1 (23) := rem1(23) xor polynomial(23); rem1 (24) := rem1(24) xor polynomial(24); rem1 (25) := rem1(25) xor polynomial(25); rem1 (26) := rem1(26) xor polynomial(26); rem1 (27) := rem1(27) xor polynomial(27); rem1 (28) := rem1(28) xor polynomial(28); rem1 (29) := rem1(29) xor polynomial(29); rem1 (30) := rem1(30) xor polynomial(30); rem1 (31) := rem1(31) xor polynomial(31); rem1 (32) := rem1(32) xor polynomial(32); end if; if (rem1 > polynomial) then fcs(31 downto 0) <= rem1(31 downto 0); g:=1; end if; end if; end if; end if; end process; end Behavioral;