#!/bin/sh
# This is a shell archive (produced by GNU sharutils 4.2.1).
# To extract the files from this archive, save it to some FILE, remove
# everything before the `!/bin/sh' line above, then type `sh FILE'.
#
# Made on 2007-02-20 13:12 CET by <wzab@ipebio15>.
# Source directory was `/tmp/lfsr'.
#
# Existing files will *not* be overwritten unless `-c' is specified.
#
# This shar contains:
# length mode name
# ------ ---------- ------------------------------------------
# 1320 -rw-r--r-- genlfsr.vhd
# 191 -rw-r--r-- genlfsr_pkg.vhd
# 2574 -rw-r--r-- genlfsr_tb.vhd
# 281 -rw-rw-r-- makefile
#
save_IFS="${IFS}"
IFS="${IFS}:"
gettext_dir=FAILED
locale_dir=FAILED
first_param="$1"
for dir in $PATH
do
if test "$gettext_dir" = FAILED && test -f $dir/gettext \
&& ($dir/gettext --version >/dev/null 2>&1)
then
set `$dir/gettext --version 2>&1`
if test "$3" = GNU
then
gettext_dir=$dir
fi
fi
if test "$locale_dir" = FAILED && test -f $dir/shar \
&& ($dir/shar --print-text-domain-dir >/dev/null 2>&1)
then
locale_dir=`$dir/shar --print-text-domain-dir`
fi
done
IFS="$save_IFS"
if test "$locale_dir" = FAILED || test "$gettext_dir" = FAILED
then
echo=echo
else
TEXTDOMAINDIR=$locale_dir
export TEXTDOMAINDIR
TEXTDOMAIN=sharutils
export TEXTDOMAIN
echo="$gettext_dir/gettext -s"
fi
if touch -am -t 200112312359.59 $$.touch >/dev/null 2>&1 && test ! -f 200112312359.59 -a -f $$.touch; then
shar_touch='touch -am -t $1$2$3$4$5$6.$7 "$8"'
elif touch -am 123123592001.59 $$.touch >/dev/null 2>&1 && test ! -f 123123592001.59 -a ! -f 123123592001.5 -a -f $$.touch; then
shar_touch='touch -am $3$4$5$6$1$2.$7 "$8"'
elif touch -am 1231235901 $$.touch >/dev/null 2>&1 && test ! -f 1231235901 -a -f $$.touch; then
shar_touch='touch -am $3$4$5$6$2 "$8"'
else
shar_touch=:
echo
$echo 'WARNING: not restoring timestamps. Consider getting and'
$echo "installing GNU \`touch', distributed in GNU File Utilities..."
echo
fi
rm -f 200112312359.59 123123592001.59 123123592001.5 1231235901 $$.touch
#
if mkdir _sh11731; then
$echo 'x -' 'creating lock directory'
else
$echo 'failed to create lock directory'
exit 1
fi
# ============= genlfsr.vhd ==============
if test -f 'genlfsr.vhd' && test "$first_param" != -c; then
$echo 'x -' SKIPPING 'genlfsr.vhd' '(file already exists)'
else
$echo 'x -' extracting 'genlfsr.vhd' '(text)'
sed 's/^X//' << 'SHAR_EOF' > 'genlfsr.vhd' &&
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
use std.textio.all;
library work;
use work.genlfsr_pkg.all;
X
entity genlfsr is
X
X generic (
X width : integer := 16;
X length : integer := 17; -- length of the register
X taps : T_LFSR_TAPS := (17, 14));
X
X port (
X rst_n : in std_logic;
X clk : in std_logic;
X dout : out std_logic_vector(15 downto 0));
X
end genlfsr;
X
architecture beh of genlfsr is
X
X signal reg : std_logic_vector(length-1 downto 0);
X
begin -- beh
X
X lfsr1 : process (clk, rst_n)
X variable vreg : std_logic_vector(length-1 downto 0);
X variable fb : std_logic;
X begin -- process lfsr1
X if rst_n = '0' then -- asynchronous reset (active low)
X reg <= (others => '1');
X elsif clk'event and clk = '1' then -- rising clock edge
X vreg := reg;
X for i in 1 to width loop
X fb := '0';
X for j in taps'range loop
X if fb=vreg(taps(j)-1) then
X fb := '0';
X else
X fb := '1';
X end if;
X end loop; -- j
X for k in vreg'left downto 1 loop
X vreg(k) := vreg(k-1);
X end loop; -- k
X vreg(0) := fb;
X end loop; -- i
X reg <= vreg;
X end if;
X end process lfsr1;
X
X dout <= reg(width-1 downto 0);
X
end beh;
SHAR_EOF
(set 20 07 02 20 13 10 28 'genlfsr.vhd'; eval "$shar_touch") &&
chmod 0644 'genlfsr.vhd' ||
$echo 'restore of' 'genlfsr.vhd' 'failed'
if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
&& ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
md5sum -c << SHAR_EOF >/dev/null 2>&1 \
|| $echo 'genlfsr.vhd:' 'MD5 check failed'
3243fbb313774b7882608658baa4084b genlfsr.vhd
SHAR_EOF
else
shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'genlfsr.vhd'`"
test 1320 -eq "$shar_count" ||
$echo 'genlfsr.vhd:' 'original size' '1320,' 'current size' "$shar_count!"
fi
fi
# ============= genlfsr_pkg.vhd ==============
if test -f 'genlfsr_pkg.vhd' && test "$first_param" != -c; then
$echo 'x -' SKIPPING 'genlfsr_pkg.vhd' '(file already exists)'
else
$echo 'x -' extracting 'genlfsr_pkg.vhd' '(text)'
sed 's/^X//' << 'SHAR_EOF' > 'genlfsr_pkg.vhd' &&
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
use std.textio.all;
X
package genlfsr_pkg is
X
X type T_LFSR_TAPS is array (natural range <>) of integer;
X
end genlfsr_pkg;
SHAR_EOF
(set 20 07 02 20 13 10 28 'genlfsr_pkg.vhd'; eval "$shar_touch") &&
chmod 0644 'genlfsr_pkg.vhd' ||
$echo 'restore of' 'genlfsr_pkg.vhd' 'failed'
if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
&& ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
md5sum -c << SHAR_EOF >/dev/null 2>&1 \
|| $echo 'genlfsr_pkg.vhd:' 'MD5 check failed'
6ffb4cb1e002518f948fca29002bffe5 genlfsr_pkg.vhd
SHAR_EOF
else
shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'genlfsr_pkg.vhd'`"
test 191 -eq "$shar_count" ||
$echo 'genlfsr_pkg.vhd:' 'original size' '191,' 'current size' "$shar_count!"
fi
fi
# ============= genlfsr_tb.vhd ==============
if test -f 'genlfsr_tb.vhd' && test "$first_param" != -c; then
$echo 'x -' SKIPPING 'genlfsr_tb.vhd' '(file already exists)'
else
$echo 'x -' extracting 'genlfsr_tb.vhd' '(text)'
sed 's/^X//' << 'SHAR_EOF' > 'genlfsr_tb.vhd' &&
-------------------------------------------------------------------------------
-- Title : Testbench for design "genlfsr"
-- Project :
-------------------------------------------------------------------------------
-- File : genlfsr_tb.vhd
-- Author :
-- Company :
-- Created : 2007-02-20
-- Last update: 2007-02-20
-- Platform :
-- Standard : VHDL'87
-------------------------------------------------------------------------------
-- Description:
-------------------------------------------------------------------------------
-- Copyright (c) 2007
-------------------------------------------------------------------------------
-- Revisions :
-- Date Version Author Description
-- 2007-02-20 1.0 xl Created
-------------------------------------------------------------------------------
X
library ieee;
use ieee.std_logic_1164.all;
library work;
use work.genlfsr_pkg.all;
-------------------------------------------------------------------------------
X
entity genlfsr_tb is
X
end genlfsr_tb;
X
-------------------------------------------------------------------------------
X
architecture test1 of genlfsr_tb is
X
X component genlfsr
X generic (
X width : integer;
X length : integer;
X taps : T_LFSR_TAPS);
X port (
X rst_n : in std_logic;
X clk : in std_logic;
X dout : out std_logic_vector(15 downto 0));
X end component;
X
X -- component generics
X constant width : integer := 16;
X constant length : integer := 17;
X constant taps : T_LFSR_TAPS := (17, 14);
X
X -- component ports
X signal rst_n : std_logic;
X signal dout : std_logic_vector(15 downto 0);
X
X -- clock
X signal Clk : std_logic := '1';
X
X signal stop : std_logic := '0';
begin -- test1
X
X -- component instantiation
X DUT: genlfsr
X generic map (
X width => width,
X length => length,
X taps => taps)
X port map (
X rst_n => rst_n,
X clk => clk,
X dout => dout);
X
X -- clock generation
X Clk <= not Clk after 10 ns when stop = '0' else
X '0';
X
X -- waveform generation
X WaveGen_Proc: process
X begin
X -- insert signal assignments here
X rst_n <= '0';
X wait until Clk = '1';
X wait for 15 ns;
X rst_n <= '1';
X wait for 2000 ns;
X stop <= '1';
X end process WaveGen_Proc;
X
X
X
end test1;
X
-------------------------------------------------------------------------------
X
configuration genlfsr_tb_test1_cfg of genlfsr_tb is
X for test1
X end for;
end genlfsr_tb_test1_cfg;
X
-------------------------------------------------------------------------------
SHAR_EOF
(set 20 07 02 20 13 10 38 'genlfsr_tb.vhd'; eval "$shar_touch") &&
chmod 0644 'genlfsr_tb.vhd' ||
$echo 'restore of' 'genlfsr_tb.vhd' 'failed'
if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
&& ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
md5sum -c << SHAR_EOF >/dev/null 2>&1 \
|| $echo 'genlfsr_tb.vhd:' 'MD5 check failed'
cfd6a7b12be1320de5cbd8d906218a9c genlfsr_tb.vhd
SHAR_EOF
else
shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'genlfsr_tb.vhd'`"
test 2574 -eq "$shar_count" ||
$echo 'genlfsr_tb.vhd:' 'original size' '2574,' 'current size' "$shar_count!"
fi
fi
# ============= makefile ==============
if test -f 'makefile' && test "$first_param" != -c; then
$echo 'x -' SKIPPING 'makefile' '(file already exists)'
else
$echo 'x -' extracting 'makefile' '(text)'
sed 's/^X//' << 'SHAR_EOF' > 'makefile' &&
TRIPS = genlfsr_pkg.vhd \
X genlfsr.vhd\
X genlfsr_tb.vhd
X
all: show
X
genlfsr_tb: ${TRIPS}
# vhdlp -work fmf fmf/*.vhd
X ghdl -a --ieee=standard ${TRIPS}
X ghdl -e --ieee=standard genlfsr_tb
test.ghw: genlfsr_tb
X ./genlfsr_tb --wave=test.ghw
show: test.ghw
X gtkwave test.ghw test
SHAR_EOF
(set 20 07 02 20 13 10 41 'makefile'; eval "$shar_touch") &&
chmod 0664 'makefile' ||
$echo 'restore of' 'makefile' 'failed'
if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
&& ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
md5sum -c << SHAR_EOF >/dev/null 2>&1 \
|| $echo 'makefile:' 'MD5 check failed'
a369fb457ee4ed9a8dcb74c423ab49a9 makefile
SHAR_EOF
else
shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'makefile'`"
test 281 -eq "$shar_count" ||
$echo 'makefile:' 'original size' '281,' 'current size' "$shar_count!"
fi
fi
rm -fr _sh11731
exit 0