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

Subversion Repositories reed_solomon_coder

[/] [reed_solomon_coder/] [trunk/] [Middle.v] - Blame information for rev 8

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

Line No. Rev Author Line
1 7 cau_sse
`timescale 1ns / 1ps
2
//////////////////////////////////////////////////////////////////////////////////
3
// Company: University of Hamburg, University of Kiel, Germany
4
// Engineer: Cagil Gümüs, Andreas Bahr
5
// 
6
// Create Date:    17:06:12 01/18/2016 
7
// Design Name: 
8
// Module Name:    Middle 
9
// Project Name: 
10
// Target Devices: 
11
// Tool versions: 
12
// Description: 
13
//
14
// Dependencies: 
15
//
16
// Revision: 
17
// Revision 0.01 - File Created
18
// Additional Comments: 
19
//
20
//////////////////////////////////////////////////////////////////////////////////
21
module Middle(
22
 
23
        input wire                              clk,
24
        input wire                              reset,
25
        input wire [35:0]        data_in,
26
 
27
        input wire                              job_done,
28
 
29
        input wire                              go_BM,
30
        input wire                              go_chien,
31
        input wire                              go_forney,
32
        input wire                              go_syndrome,
33
 
34
        output wire                     ready_BM,
35
        output wire                     ready_chien,
36
        output wire                     ready_forney,
37
        output wire                     ready_syndrome,
38
        output wire [3:0]                errorlocation1,
39
        output wire [3:0]                errorlocation2,
40
        output wire [3:0]                errormagnitude1,
41
        output wire [3:0]                errormagnitude2,
42
        output wire                     no_errors,
43
        output wire     [15:0]   errorlocator
44
 
45
    );
46
 
47
assign errorlocator = errorlocator_wire;
48
 
49
wire [3:0] syndrome1_wire;
50
wire [3:0] syndrome2_wire;
51
wire [3:0] syndrome3_wire;
52
wire [3:0] syndrome4_wire;
53
 
54
wire [15:0] errorlocator_wire;
55
 
56
wire [3:0] errorlocation1_wire;
57
wire [3:0] errorlocation2_wire;
58
 
59
wire [3:0] errormagnitude1_wire;
60
wire [3:0] errormagnitude2_wire;
61
 
62
assign errorlocation1 = errorlocation1_wire;
63
assign errorlocation2 = errorlocation2_wire;
64
 
65
assign errormagnitude1 = errormagnitude1_wire;
66
assign errormagnitude2 = errormagnitude2_wire;
67
 
68
 
69
        syndromecalculator syndrome(
70
 
71
        .clk(clk),
72
        .reset(reset),
73
        .go(go_syndrome),
74
        .data_in(data_in),
75
        .job_done(job_done),
76
        .syndrome_1(syndrome1_wire),
77
        .syndrome_2(syndrome2_wire),
78
        .syndrome_3(syndrome3_wire),
79
        .syndrome_4(syndrome4_wire),
80
        .no_errors(no_errors),
81
        .ready(ready_syndrome)
82
 
83
        );
84
 
85
 
86
        berlekampmassey BM(
87
 
88
        .clk(clk),
89
        .go(go_BM),
90
        .reset(reset),
91
        .syndrome_0(syndrome1_wire) ,
92
        .syndrome_1(syndrome2_wire) ,
93
        .syndrome_2(syndrome3_wire),
94
        .syndrome_3(syndrome4_wire) ,
95
        .errorlocatorn(errorlocator_wire),
96
        .ready(ready_BM),
97
        .job_done(job_done)
98
 
99
        );
100
 
101
 
102
        chiensearch chien(
103
 
104
        .errorpolynomial(errorlocator_wire),
105
        .clk(clk),
106
        .go(go_chien),
107
        .reset(reset),
108
        .errorlocation_1(errorlocation1_wire),
109
        .errorlocation_2(errorlocation2_wire),
110
        .ready(ready_chien),
111
        .job_done(job_done)
112
 
113
 
114
        );
115
 
116
 
117
        forney forney1(
118
 
119
        .clk(clk),
120
        .reset(reset),
121
        .errorlocation_1(errorlocation1_wire),
122
        .errorlocation_2(errorlocation2_wire),
123
        .errorlocator(errorlocator_wire),
124
        .syndrome_1(syndrome1_wire),
125
        .syndrome_2(syndrome2_wire),
126
        .syndrome_3(syndrome3_wire),
127
        .syndrome_4(syndrome4_wire),
128
        .go(go_forney),
129
        .ready(ready_forney),
130
        .error_magnitude_1(errormagnitude1_wire),
131
        .error_magnitude_2(errormagnitude2_wire),
132
        .job_done(job_done)
133
 
134
        );
135
 
136
 
137
 
138
endmodule

powered by: WebSVN 2.1.0

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