source: rc_os_nios2/DE0_Nano_QSYS_DEMO/canc/hdl/can_crc.v@ 128

Last change on this file since 128 was 128, checked in by ertl-honda, 9 years ago

追加.

File size: 4.5 KB
Line 
1//////////////////////////////////////////////////////////////////////
2//// ////
3//// can_crc.v ////
4//// ////
5//// ////
6//// This file is part of the CAN Protocol Controller ////
7//// http://www.opencores.org/projects/can/ ////
8//// ////
9//// ////
10//// Author(s): ////
11//// Igor Mohor ////
12//// igorm@opencores.org ////
13//// ////
14//// ////
15//// All additional information is available in the README.txt ////
16//// file. ////
17//// ////
18//////////////////////////////////////////////////////////////////////
19//// ////
20//// Copyright (C) 2002, 2003, 2004 Authors ////
21//// ////
22//// This source file may be used and distributed without ////
23//// restriction provided that this copyright statement is not ////
24//// removed from the file and that any derivative work contains ////
25//// the original copyright notice and the associated disclaimer. ////
26//// ////
27//// This source file is free software; you can redistribute it ////
28//// and/or modify it under the terms of the GNU Lesser General ////
29//// Public License as published by the Free Software Foundation; ////
30//// either version 2.1 of the License, or (at your option) any ////
31//// later version. ////
32//// ////
33//// This source is distributed in the hope that it will be ////
34//// useful, but WITHOUT ANY WARRANTY; without even the implied ////
35//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR ////
36//// PURPOSE. See the GNU Lesser General Public License for more ////
37//// details. ////
38//// ////
39//// You should have received a copy of the GNU Lesser General ////
40//// Public License along with this source; if not, download it ////
41//// from http://www.opencores.org/lgpl.shtml ////
42//// ////
43//// The CAN protocol is developed by Robert Bosch GmbH and ////
44//// protected by patents. Anybody who wants to implement this ////
45//// CAN IP core on silicon has to obtain a CAN protocol license ////
46//// from Bosch. ////
47//// ////
48//////////////////////////////////////////////////////////////////////
49//
50// CVS Revision History
51//
52// $Log: can_crc.v,v $
53// Revision 1.5 2004/02/08 14:25:57 mohor
54// Header changed.
55//
56// Revision 1.4 2003/07/16 13:16:51 mohor
57// Fixed according to the linter.
58//
59// Revision 1.3 2003/02/10 16:02:11 mohor
60// CAN is working according to the specification. WB interface and more
61// registers (status, IRQ, ...) needs to be added.
62//
63// Revision 1.2 2003/02/09 02:24:33 mohor
64// Bosch license warning added. Error counters finished. Overload frames
65// still need to be fixed.
66//
67// Revision 1.1 2003/01/08 02:10:54 mohor
68// Acceptance filter added.
69//
70//
71//
72//
73
74// synopsys translate_off
75`include "timescale.v"
76// synopsys translate_on
77
78module can_crc (clk, data, enable, initialize, crc);
79
80
81parameter Tp = 1;
82
83input clk;
84input data;
85input enable;
86input initialize;
87
88output [14:0] crc;
89
90reg [14:0] crc;
91
92wire crc_next;
93wire [14:0] crc_tmp;
94
95
96assign crc_next = data ^ crc[14];
97assign crc_tmp = {crc[13:0], 1'b0};
98
99always @ (posedge clk)
100begin
101 if(initialize)
102 crc <= #Tp 15'h0;
103 else if (enable)
104 begin
105 if (crc_next)
106 crc <= #Tp crc_tmp ^ 15'h4599;
107 else
108 crc <= #Tp crc_tmp;
109 end
110end
111
112
113endmodule
Note: See TracBrowser for help on using the repository browser.