OpenCores
URL https://opencores.org/ocsvn/crcahb/crcahb/trunk

Subversion Repositories crcahb

[/] [crcahb/] [trunk/] [rtl/] [crc_unit.v] - Blame information for rev 2

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 julioameri
module crc_unit
2
(
3
 //OUTPUTS
4
 output [31:0] crc_poly_out,
5
 output [31:0] crc_out,
6
 output [31:0] crc_init_out,
7
 output [7:0] crc_idr_out,
8
 output buffer_full,
9
 output read_wait,
10
 output reset_pending,
11
 //INPUTS
12
 input [31:0] bus_wr,
13
 input [ 1:0] crc_poly_size,
14
 input [ 1:0] bus_size,
15
 input [ 1:0] rev_in_type,
16
 input rev_out_type,
17
 input crc_init_en,
18
 input crc_idr_en,
19
 input crc_poly_en,
20
 input buffer_write_en,
21
 input reset_chain,
22
 input clk,
23
 input rst_n
24
);
25
 
26
//Interconection signals
27
wire [ 1:0] size_in;
28
wire [ 1:0] byte_sel;
29
wire clear_crc_init;
30
wire set_crc_init;
31
wire bypass_byte0;
32
wire bypass_size;
33
wire crc_out_en;
34
wire byte_en;
35
wire buffer_en;
36
 
37
//The write in the buffer only occur if there is free space
38
assign buffer_en = buffer_write_en && !buffer_full;
39
 
40
//Instance of the Datapath
41
crc_datapath DATAPATH
42
(
43
 .crc_out            ( crc_out        ),
44
 .size_out           ( size_in        ),
45
 .crc_idr_out        ( crc_idr_out    ),
46
 .crc_poly_out       ( crc_poly_out   ),
47
 .crc_init_out       ( crc_init_out   ),
48
 .bus_wr             ( bus_wr         ),
49
 .rev_in_type        ( rev_in_type    ),
50
 .rev_out_type       ( rev_out_type   ),
51
 .buffer_en          ( buffer_en      ),
52
 .byte_en            ( byte_en        ),
53
 .crc_init_en        ( crc_init_en    ),
54
 .crc_out_en         ( crc_out_en     ),
55
 .crc_idr_en         ( crc_idr_en     ),
56
 .crc_poly_en        ( crc_poly_en    ),
57
 .buffer_rst         ( clear_crc_init ),
58
 .bypass_byte0       ( bypass_byte0   ),
59
 .bypass_size        ( bypass_size    ),
60
 .byte_sel           ( byte_sel       ),
61
 .size_in            ( bus_size       ),
62
 .clear_crc_init_sel ( clear_crc_init ),
63
 .set_crc_init_sel   ( set_crc_init   ),
64
 .crc_poly_size      ( crc_poly_size  ),
65
 .clk                ( clk            ),
66
 .rst_n              ( rst_n          )
67
);
68
 
69
//Instance of the Control unit
70
crc_control_unit CONTROL_UNIT
71
(
72
 .byte_en            ( byte_en          ),
73
 .crc_out_en         ( crc_out_en       ),
74
 .byte_sel           ( byte_sel         ),
75
 .bypass_byte0       ( bypass_byte0     ),
76
 .buffer_full        ( buffer_full      ),
77
 .read_wait          ( read_wait        ),
78
 .bypass_size        ( bypass_size      ),
79
 .set_crc_init_sel   ( set_crc_init     ),
80
 .clear_crc_init_sel ( clear_crc_init   ),
81
 .size_in            ( size_in          ),
82
 .write              ( buffer_write_en  ),
83
 .reset_chain        ( reset_chain      ),
84
 .reset_pending      ( reset_pending    ),
85
 .clk                ( clk              ),
86
 .rst_n              ( rst_n            )
87
);
88
endmodule

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.