OpenCores
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;

powered by: WebSVN 2.1.0

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