URL
https://opencores.org/ocsvn/bluespec-reedsolomon/bluespec-reedsolomon/trunk
Show entire file |
Details |
Blame |
View Log
Rev 5 |
Rev 9 |
Line 31... |
Line 31... |
#include "chien_search.h"
|
#include "chien_search.h"
|
#include "error_mag.h"
|
#include "error_mag.h"
|
#include "error_correct.h"
|
#include "error_correct.h"
|
#include "rs_fifo.h"
|
#include "rs_fifo.h"
|
|
|
#pragma hls_design top
|
|
// Top level decoder module
|
// Top level decoder module
|
void rs_decode (unsigned char n, unsigned char t, unsigned char in_d[nn],
|
void rs_decode (unsigned char n, unsigned char t, unsigned char in_d[nn],
|
unsigned char *k, unsigned char out_d[kk])
|
unsigned char *k, unsigned char out_d[kk])
|
{
|
{
|
unsigned char temp_k = n - 2*t;
|
unsigned char temp_k = n - 2*t;
|
Line 49... |
Line 49... |
unsigned char alpha_inv[tt];
|
unsigned char alpha_inv[tt];
|
unsigned char err[kk];
|
unsigned char err[kk];
|
unsigned char in_data[kk];
|
unsigned char in_data[kk];
|
unsigned char in_d_2[nn];
|
unsigned char in_d_2[nn];
|
|
|
|
// Create copy of input to pass to fifo to error corrector
|
|
// Directive: Unroll loop maximally
|
Simple_rs1: for (int i = 0; i < nn; i++)
|
Simple_rs1: for (int i = 0; i < nn; i++)
|
in_d_2[i] = in_d[i];
|
in_d_2[i] = in_d[i];
|
|
|
*k = temp_k;
|
*k = temp_k;
|
rs_fifo(temp_k, in_d, in_data);
|
rs_fifo(temp_k, in_d, in_data);
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.