URL
https://opencores.org/ocsvn/product_code_iterative_decoder/product_code_iterative_decoder/trunk
Subversion Repositories product_code_iterative_decoder
Compare Revisions
- This comparison shows the changes necessary to convert path
/product_code_iterative_decoder/tags/INITIAL/bench
- from Rev 3 to Rev 10
- ↔ Reverse comparison
Rev 3 → Rev 10
/modelsim_bench.vhdl
0,0 → 1,130
-- $Id: modelsim_bench.vhdl,v 1.1.1.1 2005-11-15 01:51:28 arif_endro Exp $ |
------------------------------------------------------------------------------- |
-- Title : Test bench top modules. |
-- Project : |
------------------------------------------------------------------------------- |
-- File : modelsim_bench.vhdl |
-- Author : "Arif E. Nugroho" <arif_endro@yahoo.com> |
-- Created : 2005/11/01 |
-- Last update : |
-- Simulators : |
-- Synthesizers: |
-- Target : |
------------------------------------------------------------------------------- |
-- Description : Top modules for test bench. |
------------------------------------------------------------------------------- |
-- Copyright (C) 2005 Arif E. Nugroho |
-- This VHDL design file is an open design; you can redistribute it and/or |
-- modify it and/or implement it after contacting the author |
------------------------------------------------------------------------------- |
------------------------------------------------------------------------------- |
-- |
-- THIS SOURCE FILE MAY BE USED AND DISTRIBUTED WITHOUT RESTRICTION |
-- PROVIDED THAT THIS COPYRIGHT STATEMENT IS NOT REMOVED FROM THE FILE AND THAT |
-- ANY DERIVATIVE WORK CONTAINS THE ORIGINAL COPYRIGHT NOTICE AND THE |
-- ASSOCIATED DISCLAIMER. |
-- |
------------------------------------------------------------------------------- |
-- |
-- THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR |
-- IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
-- MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO |
-- EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
-- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
-- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; |
-- OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, |
-- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR |
-- OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF |
-- ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
-- |
------------------------------------------------------------------------------- |
|
library ieee; |
use ieee.std_logic_1164.all; |
use ieee.std_logic_arith.all; |
use ieee.std_logic_unsigned.all; |
|
entity modelsim_bench is |
port ( |
y0d : out bit; |
y1d : out bit; |
y2d : out bit; |
y3d : out bit |
); |
end modelsim_bench; |
|
architecture structural of modelsim_bench is |
|
component product_code |
port ( |
clock : in bit; |
start : in bit; |
rxin : in bit_vector (07 downto 00); |
y0d : out bit; |
y1d : out bit; |
y2d : out bit; |
y3d : out bit |
); |
end component; |
|
component input |
port ( |
clock : out bit; |
start : out bit; |
rxin : out bit_vector (07 downto 00) |
); |
end component; |
|
component output |
port ( |
start : in bit; |
y0 : in bit; |
y1 : in bit; |
y2 : in bit; |
y3 : in bit |
); |
end component; |
|
signal clock : bit; |
signal start : bit; |
signal y0 : bit; |
signal y1 : bit; |
signal y2 : bit; |
signal y3 : bit; |
signal rxin : bit_vector (07 downto 00); |
|
begin |
|
y0d <= y0; |
y1d <= y1; |
y2d <= y2; |
y3d <= y3; |
|
my_product_code : product_code |
port map ( |
clock => clock, |
start => start, |
rxin => rxin, |
y0d => y0, |
y1d => y1, |
y2d => y2, |
y3d => y3 |
); |
|
my_input : input |
port map ( |
clock => clock, |
start => start, |
rxin => rxin |
); |
|
my_output : output |
port map ( |
start => start, |
y0 => y0, |
y1 => y1, |
y2 => y2, |
y3 => y3 |
); |
|
end structural; |
/modelsim_bench.do
0,0 → 1,125
# $Id: modelsim_bench.do,v 1.1.1.1 2005-11-15 01:51:28 arif_endro Exp $ |
# ----------------------------------------------------------------------------- |
# Title : ModelSim DO File |
# Project : |
# ----------------------------------------------------------------------------- |
# File : modelsim_bench.do |
# Author : "Arif E. Nugroho" <arif_endro@yahoo.com> |
# Created : 2005/11/01 |
# Last update : |
# Simulators : |
# Synthesizers: |
# Target : |
# ----------------------------------------------------------------------------- |
# Description : ModelSim DO script for simulations |
# ----------------------------------------------------------------------------- |
# Copyright (C) 2005 Arif E. Nugroho |
############################################################################### |
## |
## THIS SOURCE FILE MAY BE USED AND DISTRIBUTED WITHOUT RESTRICTION |
## PROVIDED THAT THIS COPYRIGHT STATEMENT IS NOT REMOVED FROM THE FILE AND THAT |
## ANY DERIVATIVE WORK CONTAINS THE ORIGINAL COPYRIGHT NOTICE AND THE |
## ASSOCIATED DISCLAIMER. |
## |
############################################################################### |
## |
## THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR |
## IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO |
## EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
## PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; |
## OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, |
## WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR |
## OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF |
## ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
## |
############################################################################### |
|
# Quit Current simulations |
quit -sim; |
|
# Destroy output window |
destroy .wave; |
destroy .list; |
|
# Create new work library |
vlib work; |
|
# Compile all source |
vcom ../source/fulladder.vhdl; |
vcom ../source/adder_08bit.vhdl; |
vcom ../source/bit_comparator.vhdl; |
vcom ../source/comparator_7bit.vhdl; |
vcom ../source/twos_c_8bit.vhdl; |
vcom ../source/ext_val.vhdl; |
vcom ../source/ser2par8bit.vhdl; |
vcom ../source/product_code.vhdl; |
vcom input.vhdl; |
vcom output.vhdl; |
vcom modelsim_bench.vhdl; |
|
# Simulate the test_bench and design |
vsim modelsim_bench |
|
# Show the signal to wave window |
add wave sim:/modelsim_bench/clock |
add wave sim:/modelsim_bench/start |
add wave sim:/modelsim_bench/rxin |
add wave sim:/modelsim_bench/y0d |
add wave sim:/modelsim_bench/y1d |
add wave sim:/modelsim_bench/y2d |
add wave sim:/modelsim_bench/y3d |
add wave sim:/modelsim_bench/my_output/send_out |
|
add wave sim:/modelsim_bench/my_product_code/y0 |
add wave sim:/modelsim_bench/my_product_code/y1 |
add wave sim:/modelsim_bench/my_product_code/y2 |
add wave sim:/modelsim_bench/my_product_code/y3 |
add wave sim:/modelsim_bench/my_product_code/r0 |
add wave sim:/modelsim_bench/my_product_code/r1 |
add wave sim:/modelsim_bench/my_product_code/c0 |
add wave sim:/modelsim_bench/my_product_code/c1 |
|
add wave sim:/modelsim_bench/my_product_code/y0e |
add wave sim:/modelsim_bench/my_product_code/y1e |
add wave sim:/modelsim_bench/my_product_code/y2e |
add wave sim:/modelsim_bench/my_product_code/y3e |
|
add wave sim:/modelsim_bench/my_product_code/row0/ext_r_o |
add wave sim:/modelsim_bench/my_product_code/row1/ext_r_o |
add wave sim:/modelsim_bench/my_product_code/row2/ext_r_o |
add wave sim:/modelsim_bench/my_product_code/row3/ext_r_o |
|
add wave sim:/modelsim_bench/my_product_code/col0/ext_r_o |
add wave sim:/modelsim_bench/my_product_code/col1/ext_r_o |
add wave sim:/modelsim_bench/my_product_code/col2/ext_r_o |
add wave sim:/modelsim_bench/my_product_code/col3/ext_r_o |
|
add wave sim:/modelsim_bench/my_product_code/sum_r_0/adder08_output |
add wave sim:/modelsim_bench/my_product_code/sum_r_1/adder08_output |
add wave sim:/modelsim_bench/my_product_code/sum_r_2/adder08_output |
add wave sim:/modelsim_bench/my_product_code/sum_r_3/adder08_output |
|
add wave sim:/modelsim_bench/my_product_code/sum_c_0/adder08_output |
add wave sim:/modelsim_bench/my_product_code/sum_c_1/adder08_output |
add wave sim:/modelsim_bench/my_product_code/sum_c_2/adder08_output |
add wave sim:/modelsim_bench/my_product_code/sum_c_3/adder08_output |
|
add wave sim:/modelsim_bench/my_product_code/sum_p_0/adder08_output |
add wave sim:/modelsim_bench/my_product_code/sum_p_1/adder08_output |
add wave sim:/modelsim_bench/my_product_code/sum_p_2/adder08_output |
add wave sim:/modelsim_bench/my_product_code/sum_p_3/adder08_output |
|
add wave sim:/modelsim_bench/my_product_code/ext_b_r_0 |
add wave sim:/modelsim_bench/my_product_code/ext_b_r_1 |
add wave sim:/modelsim_bench/my_product_code/ext_b_r_2 |
add wave sim:/modelsim_bench/my_product_code/ext_b_r_3 |
|
add wave sim:/modelsim_bench/my_product_code/ext_b_c_0 |
add wave sim:/modelsim_bench/my_product_code/ext_b_c_1 |
add wave sim:/modelsim_bench/my_product_code/ext_b_c_2 |
add wave sim:/modelsim_bench/my_product_code/ext_b_c_3 |
|
# Run the simulation |
run -all |
/input.vhdl
0,0 → 1,119
-- $Id: input.vhdl,v 1.1.1.1 2005-11-15 01:51:28 arif_endro Exp $ |
------------------------------------------------------------------------------- |
-- Title : Input Data |
-- Project : |
------------------------------------------------------------------------------- |
-- File : input.vhdl |
-- Author : "Arif E. Nugroho" <arif_endro@yahoo.com> |
-- Created : 2005/11/01 |
-- Last update : |
-- Simulators : |
-- Synthesizers: |
-- Target : |
------------------------------------------------------------------------------- |
|
------------------------------------------------------------------------------- |
-- Copyright (C) 2005 Arif E. Nugroho |
-- This VHDL design file is an open design; you can redistribute it and/or |
-- modify it and/or implement it after contacting the author |
------------------------------------------------------------------------------- |
------------------------------------------------------------------------------- |
-- |
-- THIS SOURCE FILE MAY BE USED AND DISTRIBUTED WITHOUT RESTRICTION |
-- PROVIDED THAT THIS COPYRIGHT STATEMENT IS NOT REMOVED FROM THE FILE AND THAT |
-- ANY DERIVATIVE WORK CONTAINS THE ORIGINAL COPYRIGHT NOTICE AND THE |
-- ASSOCIATED DISCLAIMER. |
-- |
------------------------------------------------------------------------------- |
-- |
-- THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR |
-- IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
-- MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO |
-- EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
-- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
-- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; |
-- OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, |
-- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR |
-- OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF |
-- ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
-- |
------------------------------------------------------------------------------- |
|
library ieee; |
use ieee.std_logic_1164.all; |
use ieee.std_logic_arith.all; |
use ieee.std_logic_unsigned.all; |
use std.textio.all; |
|
entity input is |
port ( |
clock : out bit; |
start : out bit; |
rxin : out bit_vector (07 downto 00) |
); |
end input; |
|
architecture test_bench of input is |
|
type char_to_stdlogic_t is array (character) of std_logic; |
constant to_std_logic : char_to_stdlogic_t := ( |
'U' => 'U', |
'X' => 'X', |
'0' => '0', |
'1' => '1', |
'Z' => 'Z', |
'W' => 'L', |
'H' => 'H', |
'-' => '-', |
others => 'X' |
); |
|
file start_ptr : text open read_mode is "../data/start.txt"; |
file rxin_ptr : text open read_mode is "../data/rxin100DB.txt"; |
|
begin |
process |
variable start_ln : line; |
variable rxin_ln : line; |
variable delay : time := 1 ns; |
variable start_str : string (01 to 01) := " "; |
variable rxin_str : string (01 to 08) := " "; |
variable rxin_len : integer; |
variable start_var : std_logic; |
variable rxin_var : std_logic_vector (07 downto 00); |
begin |
while not (endfile(start_ptr) and endfile(rxin_ptr)) loop |
|
readline(start_ptr, start_ln); |
|
if (not(endfile(rxin_ptr))) then |
readline(rxin_ptr, rxin_ln); |
else |
write(rxin_ln, string'("00000000")); |
end if; |
|
if (start_ln /= NULL) and (start_ln'length > 0) and (rxin_ln /= NULL) and (rxin_ln'length > 0) then |
|
read(start_ln, start_str); |
read(rxin_ln, rxin_str); |
rxin_len := rxin_str'length - 1; |
|
start_var := to_std_logic (start_str(01)); |
|
for b in rxin_str'range loop |
rxin_var(rxin_len) := to_std_logic (rxin_str(b)); |
rxin_len := rxin_len - 1; |
end loop; |
|
start <= to_bit (start_var); |
rxin <= to_bitvector (rxin_var); |
|
clock <= '1'; |
wait for delay; |
clock <= '0'; |
wait for delay; |
end if; |
end loop; |
wait; |
end process; |
end test_bench; |
/analyze.sh
0,0 → 1,62
#!/bin/sh |
|
# $Id: analyze.sh,v 1.1.1.1 2005-11-15 01:51:28 arif_endro Exp $ |
# ----------------------------------------------------------------------------- |
# Title : Analyze Output File |
# Project : |
# ----------------------------------------------------------------------------- |
# File : analyze.sh |
# Author : "Arif E. Nugroho" <arif_endro@yahoo.com> |
# Created : 2005/11/01 |
# Last update : |
# Simulators : |
# Synthesizers: |
# Target : |
# ----------------------------------------------------------------------------- |
# Description : Bourne Shell script to analyze output of simulations |
# ----------------------------------------------------------------------------- |
# Copyright (C) 2005 Arif E. Nugroho |
############################################################################### |
## |
## THIS SOURCE FILE MAY BE USED AND DISTRIBUTED WITHOUT RESTRICTION |
## PROVIDED THAT THIS COPYRIGHT STATEMENT IS NOT REMOVED FROM THE FILE AND THAT |
## ANY DERIVATIVE WORK CONTAINS THE ORIGINAL COPYRIGHT NOTICE AND THE |
## ASSOCIATED DISCLAIMER. |
## |
############################################################################### |
## |
## THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR |
## IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO |
## EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
## PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; |
## OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, |
## WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR |
## OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF |
## ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
## |
############################################################################### |
|
SOURCE=../data/senddata.txt |
TARGET=send_out.txt |
echo "Changing to UNIX text file format..." |
dos2unix ${TARGET} |
|
BIT=`wc -l ${TARGET} | awk '{print $1}'` |
|
if [ $BIT -gt 10000 ]; then |
echo "Removing 12 first line..." |
ex -s -n -c "1,12d" -c "wq" ${TARGET} |
else |
echo "File ${TARGET} already ${BIT} lines." |
fi; |
|
BIT=`wc -l ${TARGET} | awk '{print $1}'` |
|
if [ $BIT -eq 10000 ]; then |
echo "line difference:" |
cmp -l ${SOURCE} ${TARGET} | wc -l |
else |
echo "WARNING: File ${TARGET} has ${BIT} lines only." |
fi |
analyze.sh
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: output.vhdl
===================================================================
--- output.vhdl (nonexistent)
+++ output.vhdl (revision 10)
@@ -0,0 +1,77 @@
+-- $Id: output.vhdl,v 1.1.1.1 2005-11-15 01:51:29 arif_endro Exp $
+-------------------------------------------------------------------------------
+-- Title : Output Data
+-- Project :
+-------------------------------------------------------------------------------
+-- File : output.vhdl
+-- Author : "Arif E. Nugroho"
+-- Created : 2005/11/01
+-- Last update :
+-- Simulators :
+-- Synthesizers:
+-- Target :
+-------------------------------------------------------------------------------
+-- Description : Save output to file, to be analyzed.
+-------------------------------------------------------------------------------
+-- Copyright (C) 2005 Arif E. Nugroho
+-- This VHDL design file is an open design; you can redistribute it and/or
+-- modify it and/or implement it after contacting the author
+-------------------------------------------------------------------------------
+-------------------------------------------------------------------------------
+--
+-- THIS SOURCE FILE MAY BE USED AND DISTRIBUTED WITHOUT RESTRICTION
+-- PROVIDED THAT THIS COPYRIGHT STATEMENT IS NOT REMOVED FROM THE FILE AND THAT
+-- ANY DERIVATIVE WORK CONTAINS THE ORIGINAL COPYRIGHT NOTICE AND THE
+-- ASSOCIATED DISCLAIMER.
+--
+-------------------------------------------------------------------------------
+--
+-- THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+-- IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+-- MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+-- EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+-- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+-- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+-- OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+-- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+-- OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+-- ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--
+-------------------------------------------------------------------------------
+
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.std_logic_arith.all;
+use ieee.std_logic_unsigned.all;
+use std.textio.all;
+
+entity output is
+ port (
+ start : in bit;
+ y0 : in bit;
+ y1 : in bit;
+ y2 : in bit;
+ y3 : in bit
+ );
+end output;
+
+architecture test_bench of output is
+
+file send_out_ptr : text open write_mode is "send_out.txt";
+signal send_out : bit_vector (03 downto 00);
+
+begin -- architecture test_bench
+
+ process (start)
+ variable send_out_ln : line;
+ begin
+ if (start = '0' and start'event) then
+ for a in send_out'range loop
+ write(send_out_ln, send_out(a));
+ writeline(send_out_ptr, send_out_ln);
+ end loop;
+ end if;
+ end process;
+ send_out <= ( y0 & y1 & y2 & y3 );
+
+end test_bench;