CRC kodą reikia verilog ...................

G

Guru59

Guest
hi ............

Aš ieškojote neto ir ASIC-world.com, bet negalėjo gauti kodą paprasta CRC ..........

Būtų puiku, jei kas nors už paprastą CRC ar sudėtingų kodas CRC .........Ačiū ......

 
Kodas taip yra CRC caculation naudojama ATA protokolas.

modulis makecrc (datain, atstatyti, CLK, dataout)
input [15:0] datain;
input naujo, CLK;
output [15:0] dataout;
reg [15:0] dataout;

Viela [15:0] tempin;

Viela [16:1] tempf;/ / pagal ATA spec
/ / set f
priskirti tempf [1] = (datain [0]) ^ (dataout [15]);
priskirti tempf [2] = (datain [1]) ^ (dataout [14]);
priskirti tempf [3] = (datain [2]) ^ (dataout [13]);
priskirti tempf [4] = (datain [3]) ^ (dataout [12]);
priskirti tempf [5] = (datain [4]) ^ (dataout [11]) ^ (tempf [1]);
priskirti tempf [6] = (datain [5]) ^ (dataout [10]) ^ (tempf [2]);
priskirti tempf [7] = (datain [6]) ^ (dataout [9]) ^ (tempf [3]);
priskirti tempf [8] = (datain [7]) ^ (dataout [8]) ^ (tempf [4]);
priskirti tempf [9] = (datain [8]) ^ (dataout [7]) ^ (tempf [5]);
priskirti tempf [10] = (datain [9]) ^ (dataout [6]) ^ (tempf [6]);
priskirti tempf [11] = (datain [10]) ^ (dataout [5]) ^ (tempf [7]);
priskirti tempf [12] = (datain [11]) ^ (dataout [4]) ^ (tempf [1]) ^ (tempf [8]);
priskirti tempf [13] = (datain [12]) ^ (dataout [3]) ^ (tempf [2]) ^ (tempf [9]);
priskirti tempf [14] = (datain [13]) ^ (dataout [2]) ^ (tempf [3]) ^ (tempf [10]);
priskirti tempf [15] = (datain [14]) ^ (dataout [1]) ^ (tempf [4]) ^ (tempf [11]);
priskirti tempf [16] = (datain [15]) ^ (dataout [0]) ^ (tempf [5]) ^ (tempf [12]);

priskirti tempin [0] = (tempf [16]);
priskirti tempin [1] = (tempf [15]);
priskirti tempin [2] = (tempf [14]);
priskirti tempin [3] = (tempf [13]);
priskirti tempin [4] = (tempf [12]);
priskirti tempin [5] = (tempf [11]) ^ (tempf [16]);
priskirti tempin [6] = (tempf [10]) ^ (tempf [15]);
priskirti tempin [7] = (tempf [9]) ^ (tempf [14]);
priskirti tempin [8] = (tempf [8]) ^ (tempf [13]);
priskirti tempin [9] = (tempf [7]) ^ (tempf [12]);
priskirti tempin [10] = (tempf [6]) ^ (tempf [11]);
priskirti tempin [11] = (tempf [5]) ^ (tempf [10]);
priskirti tempin [12] = (tempf [4]) ^ (tempf [9]) ^ (tempf [16]);
priskirti tempin [13] = (tempf [3]) ^ (tempf [8]) ^ (tempf [15]);
priskirti tempin [14] = (tempf [2]) ^ (tempf [7]) ^ (tempf [14]);
priskirti tempin [15] = (tempf [1]) ^ (tempf [6]) ^ (tempf [13]);

visada @ (posedge CLK)
pradėti
if (Reset)
pradėti
dataout <= 16'h4aba;
pabaiga
kitas
pradėti
dataout <= tempin;
pabaiga
pabaiga

endmodule

 

Welcome to EDABoard.com

Sponsor

Back
Top