Skip to content

Commit

Permalink
add G.709 codec
Browse files Browse the repository at this point in the history
  • Loading branch information
dshekhalev committed Feb 8, 2024
1 parent 4b4cab1 commit ae843d1
Show file tree
Hide file tree
Showing 7 changed files with 1,028 additions and 0 deletions.
19 changes: 19 additions & 0 deletions do/do_g709.do
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
onerror {resume}

set incdir ../include
set rtldir ../rtl
set tbdir ../testbench
set workdir ../work
#
vlib $workdir
#
vlog -work $workdir -incr -sv +incdir+$incdir+$rtldir $rtldir/bch/*.sv
vlog -work $workdir -incr -sv +incdir+$incdir+$rtldir $rtldir/rs/*.sv
vlog -work $workdir -incr -sv +incdir+$incdir+$rtldir/g709 $rtldir/g709/*.sv
vlog -work $workdir +initreg+0 -sv +incdir+$incdir+$tbdir/g709 $tbdir/g709/bertest.sv
set seed [clock seconds]
vsim -sv_seed $seed bertest -lib $workdir
run -all
17 changes: 17 additions & 0 deletions rtl/g709/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
ITU-T G.709 FEC realization

vivado 2020.2 Kintex 7 - 2

Encoder:

LUT/REG ~2.4k/~2.3k > 250MHz ( > 32Gbps)

Decoder:

LUT/REG/RAM ~18.8K/~15.1K/10 > 250MHz ( > 32Gbps)

Attention: The coder and decoder correspond each other but can have different bit order with standard codes.

Decoder don't use RS code decfail decision. If decfail occured it sends incorrect bit fix to output. Change it if needed.


Loading

0 comments on commit ae843d1

Please sign in to comment.