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

Subversion Repositories reed_solomon_coder

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /reed_solomon_coder/trunk
    from Rev 6 to Rev 7
    Reverse comparison

Rev 6 → Rev 7

/Middle.v
0,0 → 1,138
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: University of Hamburg, University of Kiel, Germany
// Engineer: Cagil Gümüs, Andreas Bahr
//
// Create Date: 17:06:12 01/18/2016
// Design Name:
// Module Name: Middle
// Project Name:
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module Middle(
 
input wire clk,
input wire reset,
input wire [35:0] data_in,
input wire job_done,
input wire go_BM,
input wire go_chien,
input wire go_forney,
input wire go_syndrome,
output wire ready_BM,
output wire ready_chien,
output wire ready_forney,
output wire ready_syndrome,
output wire [3:0] errorlocation1,
output wire [3:0] errorlocation2,
output wire [3:0] errormagnitude1,
output wire [3:0] errormagnitude2,
output wire no_errors,
output wire [15:0] errorlocator
);
 
assign errorlocator = errorlocator_wire;
 
wire [3:0] syndrome1_wire;
wire [3:0] syndrome2_wire;
wire [3:0] syndrome3_wire;
wire [3:0] syndrome4_wire;
 
wire [15:0] errorlocator_wire;
 
wire [3:0] errorlocation1_wire;
wire [3:0] errorlocation2_wire;
 
wire [3:0] errormagnitude1_wire;
wire [3:0] errormagnitude2_wire;
 
assign errorlocation1 = errorlocation1_wire;
assign errorlocation2 = errorlocation2_wire;
 
assign errormagnitude1 = errormagnitude1_wire;
assign errormagnitude2 = errormagnitude2_wire;
 
 
syndromecalculator syndrome(
.clk(clk),
.reset(reset),
.go(go_syndrome),
.data_in(data_in),
.job_done(job_done),
.syndrome_1(syndrome1_wire),
.syndrome_2(syndrome2_wire),
.syndrome_3(syndrome3_wire),
.syndrome_4(syndrome4_wire),
.no_errors(no_errors),
.ready(ready_syndrome)
 
);
 
 
berlekampmassey BM(
.clk(clk),
.go(go_BM),
.reset(reset),
.syndrome_0(syndrome1_wire) ,
.syndrome_1(syndrome2_wire) ,
.syndrome_2(syndrome3_wire),
.syndrome_3(syndrome4_wire) ,
.errorlocatorn(errorlocator_wire),
.ready(ready_BM),
.job_done(job_done)
);
 
 
chiensearch chien(
 
.errorpolynomial(errorlocator_wire),
.clk(clk),
.go(go_chien),
.reset(reset),
.errorlocation_1(errorlocation1_wire),
.errorlocation_2(errorlocation2_wire),
.ready(ready_chien),
.job_done(job_done)
 
 
);
 
 
forney forney1(
.clk(clk),
.reset(reset),
.errorlocation_1(errorlocation1_wire),
.errorlocation_2(errorlocation2_wire),
.errorlocator(errorlocator_wire),
.syndrome_1(syndrome1_wire),
.syndrome_2(syndrome2_wire),
.syndrome_3(syndrome3_wire),
.syndrome_4(syndrome4_wire),
.go(go_forney),
.ready(ready_forney),
.error_magnitude_1(errormagnitude1_wire),
.error_magnitude_2(errormagnitude2_wire),
.job_done(job_done)
);
 
 
 
endmodule

powered by: WebSVN 2.1.0

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