@@ -0,0 +1,76 | |||||
|
1 | ------------------------------------------------------------------------------ | |||
|
2 | -- This file is a part of the LPP VHDL IP LIBRARY | |||
|
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |||
|
4 | -- | |||
|
5 | -- This program is free software; you can redistribute it and/or modify | |||
|
6 | -- it under the terms of the GNU General Public License as published by | |||
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |||
|
8 | -- (at your option) any later version. | |||
|
9 | -- | |||
|
10 | -- This program is distributed in the hope that it will be useful, | |||
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
|
13 | -- GNU General Public License for more details. | |||
|
14 | -- | |||
|
15 | -- You should have received a copy of the GNU General Public License | |||
|
16 | -- along with this program; if not, write to the Free Software | |||
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |||
|
18 | ------------------------------------------------------------------------------- | |||
|
19 | -- Author : Alexis Jeandet | |||
|
20 | -- Mail : alexis.jeandet@lpp.polytechnique.fr | |||
|
21 | ---------------------------------------------------------------------------- | |||
|
22 | library IEEE; | |||
|
23 | use IEEE.numeric_std.all; | |||
|
24 | use IEEE.std_logic_1164.all; | |||
|
25 | ||||
|
26 | ||||
|
27 | entity saturation is | |||
|
28 | ||||
|
29 | generic ( | |||
|
30 | SIZE_INPUT : integer := 18; | |||
|
31 | SIZE_OUTPUT : integer := 16); | |||
|
32 | ||||
|
33 | port ( | |||
|
34 | s_in : in std_logic_vector(SIZE_INPUT-1 downto 0); | |||
|
35 | s_out : out std_logic_vector(SIZE_OUTPUT-1 downto 0) | |||
|
36 | ); | |||
|
37 | ||||
|
38 | end entity saturation; | |||
|
39 | ||||
|
40 | architecture beh of saturation is | |||
|
41 | ||||
|
42 | signal saturated : std_logic; | |||
|
43 | ||||
|
44 | constant all_one : std_logic_vector(SIZE_INPUT-1 downto SIZE_OUTPUT-1) := (others => '1'); | |||
|
45 | constant all_zero : std_logic_vector(SIZE_INPUT-1 downto SIZE_OUTPUT-1) := (others => '0'); | |||
|
46 | ||||
|
47 | begin -- architecture beh | |||
|
48 | ||||
|
49 | SIZE_IN_inf_SIZE_OUT : if SIZE_INPUT < SIZE_OUTPUT generate | |||
|
50 | s_out(SIZE_INPUT-1 downto 0) <= s_in(SIZE_INPUT-1 downto 0); | |||
|
51 | all_inf_bits : for I in SIZE_OUTPUT-1 downto SIZE_INPUT generate | |||
|
52 | s_out(I) <= s_in(SIZE_INPUT-1); | |||
|
53 | end generate all_inf_bits; | |||
|
54 | end generate SIZE_IN_inf_SIZE_OUT; | |||
|
55 | ||||
|
56 | SIZE_IN_equ_SIZE_OUT : if SIZE_INPUT = SIZE_OUTPUT generate | |||
|
57 | s_out <= s_in; | |||
|
58 | end generate SIZE_IN_equ_SIZE_OUT; | |||
|
59 | ||||
|
60 | SIZE_IN_sup_SIZE_OUT : if SIZE_INPUT > SIZE_OUTPUT generate | |||
|
61 | ||||
|
62 | saturated <= '0' when s_in(SIZE_INPUT-1 downto SIZE_OUTPUT-1) = all_zero else | |||
|
63 | '0' when s_in(SIZE_INPUT-1 downto SIZE_OUTPUT-1) = all_one else | |||
|
64 | '1'; | |||
|
65 | ||||
|
66 | s_out(SIZE_OUTPUT-1) <= s_in(SIZE_INPUT-1); | |||
|
67 | ||||
|
68 | all_bits : for I in SIZE_OUTPUT-2 downto 0 generate | |||
|
69 | s_out(I) <= s_in(I) when saturated = '0' else not s_in(SIZE_INPUT-1); | |||
|
70 | end generate all_bits; | |||
|
71 | ||||
|
72 | end generate SIZE_IN_sup_SIZE_OUT; | |||
|
73 | ||||
|
74 | ||||
|
75 | ||||
|
76 | end architecture beh; |
@@ -0,0 +1,93 | |||||
|
1 | VHDLIB=../.. | |||
|
2 | SCRIPTSDIR=$(VHDLIB)/scripts/ | |||
|
3 | GRLIB := $(shell sh $(VHDLIB)/scripts/lpp_relpath.sh) | |||
|
4 | TOP=testbench | |||
|
5 | BOARD=LFR-EQM | |||
|
6 | include $(VHDLIB)/boards/$(BOARD)/Makefile_RTAX.inc | |||
|
7 | DEVICE=$(PART)-$(PACKAGE)$(SPEED) | |||
|
8 | UCF= | |||
|
9 | QSF= | |||
|
10 | EFFORT=high | |||
|
11 | XSTOPT= | |||
|
12 | SYNPOPT= | |||
|
13 | VHDLSYNFILES= | |||
|
14 | VHDLSIMFILES= tb.vhd | |||
|
15 | SIMTOP=testbench | |||
|
16 | CLEAN=soft-clean | |||
|
17 | ||||
|
18 | ## GHDLRUNOPT = --assert-level=error --ieee-asserts=disable --vcd=wave.vcd | |||
|
19 | ||||
|
20 | TECHLIBS = axcelerator | |||
|
21 | ||||
|
22 | LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ | |||
|
23 | tmtc openchip hynix ihp gleichmann micron usbhc opencores fmf ftlib gsi | |||
|
24 | ||||
|
25 | DIRSKIP = b1553 pcif leon2 leon3v3 leon2ft crypto satcan ddr usb ata i2c \ | |||
|
26 | pci grusbhc haps slink ascs can pwm greth coremp7 spi ac97 srmmu atf \ | |||
|
27 | grlfpc \ | |||
|
28 | ./dsp/lpp_fft_rtax \ | |||
|
29 | ./amba_lcd_16x2_ctrlr \ | |||
|
30 | ./general_purpose/lpp_AMR \ | |||
|
31 | ./general_purpose/lpp_balise \ | |||
|
32 | ./general_purpose/lpp_delay \ | |||
|
33 | ./lpp_bootloader \ | |||
|
34 | ./lfr_management \ | |||
|
35 | ./lpp_sim/CY7C1061DV33 \ | |||
|
36 | ./lpp_cna \ | |||
|
37 | ./lpp_uart \ | |||
|
38 | ./lpp_usb \ | |||
|
39 | ./dsp/lpp_fft \ | |||
|
40 | ./lpp_leon3_soc \ | |||
|
41 | ./lpp_debug_lfr | |||
|
42 | ||||
|
43 | FILESKIP = i2cmst.vhd \ | |||
|
44 | APB_MULTI_DIODE.vhd \ | |||
|
45 | APB_MULTI_DIODE.vhd \ | |||
|
46 | Top_MatrixSpec.vhd \ | |||
|
47 | APB_FFT.vhd \ | |||
|
48 | lpp_lfr_ms_FFT.vhd \ | |||
|
49 | lpp_lfr_apbreg.vhd \ | |||
|
50 | CoreFFT.vhd \ | |||
|
51 | lpp_lfr_ms.vhd \ | |||
|
52 | lpp_lfr_sim_pkg.vhd \ | |||
|
53 | mtie_maps.vhd \ | |||
|
54 | ftsrctrlc.vhd \ | |||
|
55 | ftsdctrl.vhd \ | |||
|
56 | ftsrctrl8.vhd \ | |||
|
57 | ftmctrl.vhd \ | |||
|
58 | ftsdctrl64.vhd \ | |||
|
59 | ftahbram.vhd \ | |||
|
60 | ftahbram2.vhd \ | |||
|
61 | sramft.vhd \ | |||
|
62 | nandfctrlx.vhd | |||
|
63 | ||||
|
64 | include $(GRLIB)/bin/Makefile | |||
|
65 | include $(GRLIB)/software/leon3/Makefile | |||
|
66 | ################## project specific targets ########################## | |||
|
67 | distclean:myclean | |||
|
68 | vsim:cp_for_vsim | |||
|
69 | ||||
|
70 | myclean: | |||
|
71 | rm -f input.txt output_f*.txt *.log | |||
|
72 | rm -rf ./2016* | |||
|
73 | ||||
|
74 | generate : | |||
|
75 | python ./generate.py | |||
|
76 | ||||
|
77 | cp_for_vsim: generate | |||
|
78 | cp ./input.txt simulation/ | |||
|
79 | ||||
|
80 | archivate: | |||
|
81 | python ./archivate.py | |||
|
82 | ||||
|
83 | test-common: | generate ghdl ghdl-run archivate | |||
|
84 | ||||
|
85 | test-vsim-common: | generate vsim vsim-run archivate | |||
|
86 | ||||
|
87 | test-vsim: test-vsim-common | |||
|
88 | ||||
|
89 | test: test-common | |||
|
90 | ||||
|
91 | ||||
|
92 | ||||
|
93 |
@@ -0,0 +1,10 | |||||
|
1 | import os | |||
|
2 | import shutil | |||
|
3 | import datetime as dt | |||
|
4 | import glob | |||
|
5 | ||||
|
6 | folder=dt.datetime.today().strftime("%Y-%m-%d_%H-%M-%S") | |||
|
7 | os.mkdir(folder) | |||
|
8 | shutil.copy("input.txt",folder+"/input.txt") | |||
|
9 | for file in glob.glob("output_f*.txt"): | |||
|
10 | shutil.copy(file, folder) |
@@ -0,0 +1,23 | |||||
|
1 | import numpy as np | |||
|
2 | import random | |||
|
3 | ||||
|
4 | W,H=8,10000 | |||
|
5 | low,high=-100,100 | |||
|
6 | INPUT_F=98304 | |||
|
7 | test = np.random.randint(low=low,high=high,size=(H,W)) | |||
|
8 | test *= 0 | |||
|
9 | ||||
|
10 | test=np.stack(( +1.*(20000.*np.sin(np.arange(len(test)) *2.*np.pi * 3. /INPUT_F )).astype(int) , | |||
|
11 | -1.*(20000.*np.sin(np.arange(len(test)) *2.*np.pi * 3. /INPUT_F )).astype(int) , | |||
|
12 | +1.*(20000.*np.sin(np.arange(len(test)) *2.*np.pi * 3. /INPUT_F )).astype(int) , | |||
|
13 | -1.*(20000.*np.sin(np.arange(len(test)) *2.*np.pi * 3. /INPUT_F )).astype(int) , | |||
|
14 | +1.*(20000.*np.sin(np.arange(len(test)) *2.*np.pi * 3. /INPUT_F )).astype(int) , | |||
|
15 | -1.*(20000.*np.sin(np.arange(len(test)) *2.*np.pi * 3. /INPUT_F )).astype(int) , | |||
|
16 | +1.*(20000.*np.sin(np.arange(len(test)) *2.*np.pi * 3. /INPUT_F )).astype(int) , | |||
|
17 | -1.*(20000.*np.sin(np.arange(len(test)) *2.*np.pi * 3. /INPUT_F )).astype(int))).transpose() | |||
|
18 | ||||
|
19 | np.savetxt("input.txt", test,fmt="%d", delimiter=" ") | |||
|
20 | ||||
|
21 | ||||
|
22 | ||||
|
23 |
@@ -0,0 +1,156 | |||||
|
1 | { | |||
|
2 | "cells": [ | |||
|
3 | { | |||
|
4 | "cell_type": "code", | |||
|
5 | "execution_count": 2, | |||
|
6 | "metadata": { | |||
|
7 | "collapsed": false | |||
|
8 | }, | |||
|
9 | "outputs": [], | |||
|
10 | "source": [ | |||
|
11 | "import numpy as np\n", | |||
|
12 | "import matplotlib.pyplot as plt\n", | |||
|
13 | "import glob \n", | |||
|
14 | "import pandas as pds" | |||
|
15 | ] | |||
|
16 | }, | |||
|
17 | { | |||
|
18 | "cell_type": "code", | |||
|
19 | "execution_count": null, | |||
|
20 | "metadata": { | |||
|
21 | "collapsed": false | |||
|
22 | }, | |||
|
23 | "outputs": [], | |||
|
24 | "source": [] | |||
|
25 | }, | |||
|
26 | { | |||
|
27 | "cell_type": "code", | |||
|
28 | "execution_count": 3, | |||
|
29 | "metadata": { | |||
|
30 | "collapsed": false | |||
|
31 | }, | |||
|
32 | "outputs": [ | |||
|
33 | { | |||
|
34 | "data": { | |||
|
35 | "image/png": "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\n", | |||
|
36 | "text/plain": [ | |||
|
37 | "<matplotlib.figure.Figure at 0x7fef1c4777f0>" | |||
|
38 | ] | |||
|
39 | }, | |||
|
40 | "metadata": {}, | |||
|
41 | "output_type": "display_data" | |||
|
42 | } | |||
|
43 | ], | |||
|
44 | "source": [ | |||
|
45 | "for folder in glob.glob(\"./2016*\"):\n", | |||
|
46 | " inputsig = pds.read_csv(folder+\"/input.txt\",sep=\" \",header=None)\n", | |||
|
47 | " inputsig.columns=[ \"CH{}\".format(i) for i in range(inputsig.shape[1])]\n", | |||
|
48 | " outputsig = pds.read_csv(folder+\"/output_f0.txt\",sep=\" \",header=None)\n", | |||
|
49 | " outputsig.columns=[\"Tstamp\"]+[ \"CH{}\".format(i) for i in range(outputsig.shape[1]-1)]\n", | |||
|
50 | " f, axarr = plt.subplots(1,2,figsize=(14, 6))\n", | |||
|
51 | " inputsig.plot(ax=axarr[0])\n", | |||
|
52 | " axarr[0].legend(loc='upper right')\n", | |||
|
53 | " (outputsig.filter(regex=\"CH*\")[:]/0.8912).plot(ax=axarr[1])\n", | |||
|
54 | " axarr[1].legend(loc='upper right')\n", | |||
|
55 | " plt.show()" | |||
|
56 | ] | |||
|
57 | }, | |||
|
58 | { | |||
|
59 | "cell_type": "code", | |||
|
60 | "execution_count": 8, | |||
|
61 | "metadata": { | |||
|
62 | "collapsed": false | |||
|
63 | }, | |||
|
64 | "outputs": [ | |||
|
65 | { | |||
|
66 | "ename": "FileNotFoundError", | |||
|
67 | "evalue": "File b'./simulation//input.txt' does not exist", | |||
|
68 | "output_type": "error", | |||
|
69 | "traceback": [ | |||
|
70 | "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", | |||
|
71 | "\u001b[0;31mFileNotFoundError\u001b[0m Traceback (most recent call last)", | |||
|
72 | "\u001b[0;32m<ipython-input-8-b0157b87c19d>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0mfolder\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"./simulation/\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0minputsig\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpds\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_csv\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfolder\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0;34m\"/input.txt\"\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0msep\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\" \"\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mheader\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0minputsig\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcolumns\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m[\u001b[0m \u001b[0;34m\"CH{}\"\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minputsig\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0moutputsig\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpds\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_csv\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfolder\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0;34m\"/output_f2.txt\"\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0msep\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\" \"\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mheader\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0moutputsig\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcolumns\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"Tstamp\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0;34m[\u001b[0m \u001b[0;34m\"CH{}\"\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0moutputsig\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |||
|
73 | "\u001b[0;32m/home/adminlpp/venv/lib/python3.5/site-packages/pandas/io/parsers.py\u001b[0m in \u001b[0;36mparser_f\u001b[0;34m(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, escapechar, comment, encoding, dialect, tupleize_cols, error_bad_lines, warn_bad_lines, skipfooter, skip_footer, doublequote, delim_whitespace, as_recarray, compact_ints, use_unsigned, low_memory, buffer_lines, memory_map, float_precision)\u001b[0m\n\u001b[1;32m 643\u001b[0m skip_blank_lines=skip_blank_lines)\n\u001b[1;32m 644\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 645\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0m_read\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilepath_or_buffer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 646\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 647\u001b[0m \u001b[0mparser_f\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__name__\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |||
|
74 | "\u001b[0;32m/home/adminlpp/venv/lib/python3.5/site-packages/pandas/io/parsers.py\u001b[0m in \u001b[0;36m_read\u001b[0;34m(filepath_or_buffer, kwds)\u001b[0m\n\u001b[1;32m 386\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 387\u001b[0m \u001b[0;31m# Create the parser.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 388\u001b[0;31m \u001b[0mparser\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mTextFileReader\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilepath_or_buffer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 389\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 390\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mnrows\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mchunksize\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |||
|
75 | "\u001b[0;32m/home/adminlpp/venv/lib/python3.5/site-packages/pandas/io/parsers.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, f, engine, **kwds)\u001b[0m\n\u001b[1;32m 727\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0moptions\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'has_index_names'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mkwds\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'has_index_names'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 728\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 729\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_make_engine\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mengine\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 730\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 731\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mclose\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |||
|
76 | "\u001b[0;32m/home/adminlpp/venv/lib/python3.5/site-packages/pandas/io/parsers.py\u001b[0m in \u001b[0;36m_make_engine\u001b[0;34m(self, engine)\u001b[0m\n\u001b[1;32m 920\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_make_engine\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mengine\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'c'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 921\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mengine\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'c'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 922\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_engine\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mCParserWrapper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0moptions\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 923\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 924\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mengine\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'python'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |||
|
77 | "\u001b[0;32m/home/adminlpp/venv/lib/python3.5/site-packages/pandas/io/parsers.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, src, **kwds)\u001b[0m\n\u001b[1;32m 1387\u001b[0m \u001b[0mkwds\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'allow_leading_cols'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mindex_col\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mFalse\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1388\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1389\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_reader\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_parser\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mTextReader\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msrc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1390\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1391\u001b[0m \u001b[0;31m# XXX\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |||
|
78 | "\u001b[0;32mpandas/parser.pyx\u001b[0m in \u001b[0;36mpandas.parser.TextReader.__cinit__ (pandas/parser.c:4175)\u001b[0;34m()\u001b[0m\n", | |||
|
79 | "\u001b[0;32mpandas/parser.pyx\u001b[0m in \u001b[0;36mpandas.parser.TextReader._setup_parser_source (pandas/parser.c:8440)\u001b[0;34m()\u001b[0m\n", | |||
|
80 | "\u001b[0;31mFileNotFoundError\u001b[0m: File b'./simulation//input.txt' does not exist" | |||
|
81 | ] | |||
|
82 | } | |||
|
83 | ], | |||
|
84 | "source": [ | |||
|
85 | "folder=\"./simulation/\"\n", | |||
|
86 | "inputsig = pds.read_csv(folder+\"/input.txt\",sep=\" \",header=None)\n", | |||
|
87 | "inputsig.columns=[ \"CH{}\".format(i) for i in range(inputsig.shape[1])]\n", | |||
|
88 | "outputsig = pds.read_csv(folder+\"/output_f2.txt\",sep=\" \",header=None)\n", | |||
|
89 | "outputsig.columns=[\"Tstamp\"]+[ \"CH{}\".format(i) for i in range(outputsig.shape[1]-1)]\n", | |||
|
90 | "f, axarr = plt.subplots(1,2,figsize=(14, 6))\n", | |||
|
91 | "(outputsig.filter(regex=\"CH*\")- inputsig*0.8912)[150:].plot(ax=axarr[0])\n", | |||
|
92 | "axarr[0].legend(loc='upper right')\n", | |||
|
93 | "(outputsig.filter(regex=\"CH*\")[:100]/0.8912).plot(ax=axarr[1])\n", | |||
|
94 | "axarr[1].legend(loc='upper right')\n", | |||
|
95 | "plt.show()" | |||
|
96 | ] | |||
|
97 | }, | |||
|
98 | { | |||
|
99 | "cell_type": "code", | |||
|
100 | "execution_count": null, | |||
|
101 | "metadata": { | |||
|
102 | "collapsed": true | |||
|
103 | }, | |||
|
104 | "outputs": [], | |||
|
105 | "source": [] | |||
|
106 | }, | |||
|
107 | { | |||
|
108 | "cell_type": "code", | |||
|
109 | "execution_count": null, | |||
|
110 | "metadata": { | |||
|
111 | "collapsed": true | |||
|
112 | }, | |||
|
113 | "outputs": [], | |||
|
114 | "source": [] | |||
|
115 | }, | |||
|
116 | { | |||
|
117 | "cell_type": "code", | |||
|
118 | "execution_count": null, | |||
|
119 | "metadata": { | |||
|
120 | "collapsed": true | |||
|
121 | }, | |||
|
122 | "outputs": [], | |||
|
123 | "source": [] | |||
|
124 | }, | |||
|
125 | { | |||
|
126 | "cell_type": "code", | |||
|
127 | "execution_count": null, | |||
|
128 | "metadata": { | |||
|
129 | "collapsed": true | |||
|
130 | }, | |||
|
131 | "outputs": [], | |||
|
132 | "source": [] | |||
|
133 | } | |||
|
134 | ], | |||
|
135 | "metadata": { | |||
|
136 | "kernelspec": { | |||
|
137 | "display_name": "Python 3", | |||
|
138 | "language": "python", | |||
|
139 | "name": "python3" | |||
|
140 | }, | |||
|
141 | "language_info": { | |||
|
142 | "codemirror_mode": { | |||
|
143 | "name": "ipython", | |||
|
144 | "version": 3 | |||
|
145 | }, | |||
|
146 | "file_extension": ".py", | |||
|
147 | "mimetype": "text/x-python", | |||
|
148 | "name": "python", | |||
|
149 | "nbconvert_exporter": "python", | |||
|
150 | "pygments_lexer": "ipython3", | |||
|
151 | "version": "3.5.2" | |||
|
152 | } | |||
|
153 | }, | |||
|
154 | "nbformat": 4, | |||
|
155 | "nbformat_minor": 1 | |||
|
156 | } |
@@ -0,0 +1,260 | |||||
|
1 | ||||
|
2 | LIBRARY ieee; | |||
|
3 | USE ieee.std_logic_1164.ALL; | |||
|
4 | use ieee.numeric_std.all; | |||
|
5 | USE IEEE.std_logic_signed.ALL; | |||
|
6 | USE IEEE.MATH_real.ALL; | |||
|
7 | ||||
|
8 | LIBRARY techmap; | |||
|
9 | USE techmap.gencomp.ALL; | |||
|
10 | ||||
|
11 | library std; | |||
|
12 | use std.textio.all; | |||
|
13 | ||||
|
14 | LIBRARY lpp; | |||
|
15 | USE lpp.iir_filter.ALL; | |||
|
16 | USE lpp.lpp_ad_conv.ALL; | |||
|
17 | USE lpp.FILTERcfg.ALL; | |||
|
18 | USE lpp.lpp_lfr_filter_coeff.ALL; | |||
|
19 | USE lpp.general_purpose.ALL; | |||
|
20 | USE lpp.data_type_pkg.ALL; | |||
|
21 | USE lpp.lpp_lfr_pkg.ALL; | |||
|
22 | USE lpp.general_purpose.ALL; | |||
|
23 | USE lpp.lpp_sim_pkg.ALL; | |||
|
24 | ||||
|
25 | ENTITY testbench IS | |||
|
26 | GENERIC( | |||
|
27 | tech : INTEGER := 0; --axcel,0 | |||
|
28 | Mem_use : INTEGER := use_CEL --use_RAM,use_CEL | |||
|
29 | ); | |||
|
30 | END; | |||
|
31 | ||||
|
32 | ARCHITECTURE behav OF testbench IS | |||
|
33 | CONSTANT ChanelCount : INTEGER := 8; | |||
|
34 | ||||
|
35 | SIGNAL TSTAMP : INTEGER:=0; | |||
|
36 | SIGNAL clk : STD_LOGIC := '0'; | |||
|
37 | SIGNAL clk_98304Hz : STD_LOGIC := '0'; | |||
|
38 | SIGNAL clk_98304Hz_r : STD_LOGIC := '0'; | |||
|
39 | SIGNAL rstn : STD_LOGIC; | |||
|
40 | ||||
|
41 | SIGNAL signal_gen : sample_vector(0 to ChanelCount-1,15 downto 0); | |||
|
42 | ||||
|
43 | SIGNAL sample : Samples(7 DOWNTO 0); | |||
|
44 | ||||
|
45 | SIGNAL sample_val : STD_LOGIC; | |||
|
46 | ||||
|
47 | SIGNAL sample_f0_val : STD_LOGIC; | |||
|
48 | SIGNAL sample_f1_val : STD_LOGIC; | |||
|
49 | SIGNAL sample_f2_val : STD_LOGIC; | |||
|
50 | SIGNAL sample_f3_val : STD_LOGIC; | |||
|
51 | ||||
|
52 | SIGNAL sample_f0_wdata : STD_LOGIC_VECTOR((6*16)-1 DOWNTO 0); | |||
|
53 | SIGNAL sample_f1_wdata : STD_LOGIC_VECTOR((6*16)-1 DOWNTO 0); | |||
|
54 | SIGNAL sample_f2_wdata : STD_LOGIC_VECTOR((6*16)-1 DOWNTO 0); | |||
|
55 | SIGNAL sample_f3_wdata : STD_LOGIC_VECTOR((6*16)-1 DOWNTO 0); | |||
|
56 | ||||
|
57 | SIGNAL signal_f0_rec : sample_vector(0 to 5,15 downto 0); | |||
|
58 | SIGNAL signal_f1_rec : sample_vector(0 to 5,15 downto 0); | |||
|
59 | SIGNAL signal_f2_rec : sample_vector(0 to 5,15 downto 0); | |||
|
60 | SIGNAL signal_f3_rec : sample_vector(0 to 5,15 downto 0); | |||
|
61 | ||||
|
62 | SIGNAL end_of_simu : STD_LOGIC := '0'; | |||
|
63 | ||||
|
64 | CONSTANT half_samplig_period : time := 5086263 ps;--INTEGER( REAL(REAL(1000**4) / REAL(2.0*4.0*24576.0))) * 1 ps; | |||
|
65 | ||||
|
66 | ||||
|
67 | ||||
|
68 | BEGIN | |||
|
69 | ||||
|
70 | ----------------------------------------------------------------------------- | |||
|
71 | -- CLOCK and RESET | |||
|
72 | ----------------------------------------------------------------------------- | |||
|
73 | PROCESS | |||
|
74 | BEGIN -- PROCESS | |||
|
75 | WAIT UNTIL clk = '1'; | |||
|
76 | rstn <= '0'; | |||
|
77 | WAIT UNTIL clk = '1'; | |||
|
78 | WAIT UNTIL clk = '1'; | |||
|
79 | WAIT UNTIL clk = '1'; | |||
|
80 | rstn <= '1'; | |||
|
81 | WAIT UNTIL end_of_simu = '1'; | |||
|
82 | WAIT FOR 10 ps; | |||
|
83 | assert false report "end of test" severity note; | |||
|
84 | -- Wait forever; this will finish the simulation. | |||
|
85 | wait; | |||
|
86 | END PROCESS; | |||
|
87 | ----------------------------------------------------------------------------- | |||
|
88 | ||||
|
89 | ||||
|
90 | clk_98304Hz_gen:PROCESS | |||
|
91 | BEGIN | |||
|
92 | IF end_of_simu /= '1' THEN | |||
|
93 | clk_98304Hz <= NOT clk_98304Hz; | |||
|
94 | WAIT FOR half_samplig_period; | |||
|
95 | ELSE | |||
|
96 | WAIT FOR 10 ps; | |||
|
97 | assert false report "end of test" severity note; | |||
|
98 | WAIT; | |||
|
99 | END IF; | |||
|
100 | END PROCESS; | |||
|
101 | ||||
|
102 | clk_25M_gen:PROCESS | |||
|
103 | BEGIN | |||
|
104 | IF end_of_simu /= '1' THEN | |||
|
105 | clk <= NOT clk; | |||
|
106 | TSTAMP <= TSTAMP+20; | |||
|
107 | WAIT FOR 20 ns; | |||
|
108 | ELSE | |||
|
109 | WAIT FOR 10 ps; | |||
|
110 | assert false report "end of test" severity note; | |||
|
111 | WAIT; | |||
|
112 | END IF; | |||
|
113 | END PROCESS; | |||
|
114 | ||||
|
115 | ||||
|
116 | ----------------------------------------------------------------------------- | |||
|
117 | -- LPP_LFR_FILTER | |||
|
118 | ----------------------------------------------------------------------------- | |||
|
119 | lpp_lfr_filter_1: lpp_lfr_filter | |||
|
120 | GENERIC MAP ( | |||
|
121 | tech => tech, | |||
|
122 | Mem_use => Mem_use, | |||
|
123 | RTL_DESIGN_LIGHT =>0, | |||
|
124 | DATA_SHAPING_SATURATION => 0 | |||
|
125 | ) | |||
|
126 | PORT MAP ( | |||
|
127 | sample => sample, | |||
|
128 | sample_val => sample_val, | |||
|
129 | sample_time => (others=>'0'), | |||
|
130 | clk => clk, | |||
|
131 | rstn => rstn, | |||
|
132 | ||||
|
133 | data_shaping_SP0 => '1', | |||
|
134 | data_shaping_SP1 => '1', | |||
|
135 | data_shaping_R0 => '1', | |||
|
136 | data_shaping_R1 => '0', | |||
|
137 | data_shaping_R2 => '0', | |||
|
138 | ||||
|
139 | sample_f0_val => sample_f0_val, | |||
|
140 | sample_f1_val => sample_f1_val, | |||
|
141 | sample_f2_val => sample_f2_val, | |||
|
142 | sample_f3_val => sample_f3_val, | |||
|
143 | ||||
|
144 | sample_f0_wdata => sample_f0_wdata, | |||
|
145 | sample_f1_wdata => sample_f1_wdata, | |||
|
146 | sample_f2_wdata => sample_f2_wdata, | |||
|
147 | sample_f3_wdata => sample_f3_wdata | |||
|
148 | ); | |||
|
149 | ----------------------------------------------------------------------------- | |||
|
150 | ||||
|
151 | ||||
|
152 | ----------------------------------------------------------------------------- | |||
|
153 | -- SAMPLE PULSE GENERATION | |||
|
154 | ----------------------------------------------------------------------------- | |||
|
155 | PROCESS (clk, rstn) | |||
|
156 | BEGIN -- PROCESS | |||
|
157 | IF rstn = '0' THEN -- asynchronous reset (active low) | |||
|
158 | sample_val <= '0'; | |||
|
159 | clk_98304Hz_r <= '0'; | |||
|
160 | ELSIF clk'EVENT AND clk = '1' THEN -- rising clock edge | |||
|
161 | clk_98304Hz_r <= clk_98304Hz; | |||
|
162 | IF clk_98304Hz = '1' AND clk_98304Hz_r = '0' THEN | |||
|
163 | sample_val <= '1'; | |||
|
164 | ELSE | |||
|
165 | sample_val <= '0'; | |||
|
166 | END IF; | |||
|
167 | END IF; | |||
|
168 | END PROCESS; | |||
|
169 | ----------------------------------------------------------------------------- | |||
|
170 | ||||
|
171 | ||||
|
172 | ----------------------------------------------------------------------------- | |||
|
173 | -- READ INPUT SIGNALS | |||
|
174 | ----------------------------------------------------------------------------- | |||
|
175 | gen: sig_reader | |||
|
176 | GENERIC MAP( | |||
|
177 | FNAME => "input.txt", | |||
|
178 | WIDTH => ChanelCount, | |||
|
179 | RESOLUTION => 16, | |||
|
180 | GAIN => 1.0 | |||
|
181 | ) | |||
|
182 | PORT MAP( | |||
|
183 | clk => sample_val, | |||
|
184 | end_of_simu => end_of_simu, | |||
|
185 | out_signal => signal_gen | |||
|
186 | ); | |||
|
187 | ||||
|
188 | ChanelLoop : FOR i IN 0 TO ChanelCount-1 GENERATE | |||
|
189 | SampleLoop : FOR j IN 0 TO 15 GENERATE | |||
|
190 | sample(I)(J) <= signal_gen(I,J); | |||
|
191 | END GENERATE; | |||
|
192 | END GENERATE; | |||
|
193 | ||||
|
194 | output_splitter: FOR CHAN IN 0 TO 5 GENERATE | |||
|
195 | bits_splitter: FOR BIT IN 0 TO 15 GENERATE | |||
|
196 | signal_f0_rec(CHAN,BIT) <= sample_f0_wdata((CHAN*16) + BIT); | |||
|
197 | signal_f1_rec(CHAN,BIT) <= sample_f1_wdata((CHAN*16) + BIT); | |||
|
198 | signal_f2_rec(CHAN,BIT) <= sample_f2_wdata((CHAN*16) + BIT); | |||
|
199 | signal_f3_rec(CHAN,BIT) <= sample_f3_wdata((CHAN*16) + BIT); | |||
|
200 | END GENERATE bits_splitter; | |||
|
201 | END GENERATE output_splitter; | |||
|
202 | ||||
|
203 | ||||
|
204 | ----------------------------------------------------------------------------- | |||
|
205 | -- RECORD SIGNALS | |||
|
206 | ----------------------------------------------------------------------------- | |||
|
207 | ||||
|
208 | f0_rec : sig_recorder | |||
|
209 | GENERIC MAP( | |||
|
210 | FNAME => "output_f0.txt", | |||
|
211 | WIDTH => 6, | |||
|
212 | RESOLUTION => 16 | |||
|
213 | ) | |||
|
214 | PORT MAP( | |||
|
215 | clk => sample_f0_val, | |||
|
216 | end_of_simu => end_of_simu, | |||
|
217 | timestamp => TSTAMP, | |||
|
218 | input_signal => signal_f0_rec | |||
|
219 | ); | |||
|
220 | ||||
|
221 | f1_rec : sig_recorder | |||
|
222 | GENERIC MAP( | |||
|
223 | FNAME => "output_f1.txt", | |||
|
224 | WIDTH => 6, | |||
|
225 | RESOLUTION => 16 | |||
|
226 | ) | |||
|
227 | PORT MAP( | |||
|
228 | clk => sample_f1_val, | |||
|
229 | end_of_simu => end_of_simu, | |||
|
230 | timestamp => TSTAMP, | |||
|
231 | input_signal => signal_f1_rec | |||
|
232 | ); | |||
|
233 | ||||
|
234 | f2_rec : sig_recorder | |||
|
235 | GENERIC MAP( | |||
|
236 | FNAME => "output_f2.txt", | |||
|
237 | WIDTH => 6, | |||
|
238 | RESOLUTION => 16 | |||
|
239 | ) | |||
|
240 | PORT MAP( | |||
|
241 | clk => sample_f2_val, | |||
|
242 | end_of_simu => end_of_simu, | |||
|
243 | timestamp => TSTAMP, | |||
|
244 | input_signal => signal_f2_rec | |||
|
245 | ); | |||
|
246 | ||||
|
247 | f3_rec : sig_recorder | |||
|
248 | GENERIC MAP( | |||
|
249 | FNAME => "output_f3.txt", | |||
|
250 | WIDTH => 6, | |||
|
251 | RESOLUTION => 16 | |||
|
252 | ) | |||
|
253 | PORT MAP( | |||
|
254 | clk => sample_f3_val, | |||
|
255 | end_of_simu => end_of_simu, | |||
|
256 | timestamp => TSTAMP, | |||
|
257 | input_signal => signal_f3_rec | |||
|
258 | ); | |||
|
259 | ||||
|
260 | END; |
@@ -0,0 +1,93 | |||||
|
1 | VHDLIB=../.. | |||
|
2 | SCRIPTSDIR=$(VHDLIB)/scripts/ | |||
|
3 | GRLIB := $(shell sh $(VHDLIB)/scripts/lpp_relpath.sh) | |||
|
4 | TOP=testbench | |||
|
5 | BOARD=LFR-EQM | |||
|
6 | include $(VHDLIB)/boards/$(BOARD)/Makefile_RTAX.inc | |||
|
7 | DEVICE=$(PART)-$(PACKAGE)$(SPEED) | |||
|
8 | UCF= | |||
|
9 | QSF= | |||
|
10 | EFFORT=high | |||
|
11 | XSTOPT= | |||
|
12 | SYNPOPT= | |||
|
13 | VHDLSYNFILES= | |||
|
14 | VHDLSIMFILES= tb.vhd | |||
|
15 | SIMTOP=testbench | |||
|
16 | CLEAN=soft-clean | |||
|
17 | ||||
|
18 | ## GHDLRUNOPT = --assert-level=error --ieee-asserts=disable --vcd=wave.vcd | |||
|
19 | ||||
|
20 | TECHLIBS = axcelerator | |||
|
21 | ||||
|
22 | LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ | |||
|
23 | tmtc openchip hynix ihp gleichmann micron usbhc opencores fmf ftlib gsi | |||
|
24 | ||||
|
25 | DIRSKIP = b1553 pcif leon2 leon3v3 leon2ft crypto satcan ddr usb ata i2c \ | |||
|
26 | pci grusbhc haps slink ascs can pwm greth coremp7 spi ac97 srmmu atf \ | |||
|
27 | grlfpc \ | |||
|
28 | ./dsp/lpp_fft_rtax \ | |||
|
29 | ./amba_lcd_16x2_ctrlr \ | |||
|
30 | ./general_purpose/lpp_AMR \ | |||
|
31 | ./general_purpose/lpp_balise \ | |||
|
32 | ./general_purpose/lpp_delay \ | |||
|
33 | ./lpp_bootloader \ | |||
|
34 | ./lfr_management \ | |||
|
35 | ./lpp_sim/CY7C1061DV33 \ | |||
|
36 | ./lpp_cna \ | |||
|
37 | ./lpp_uart \ | |||
|
38 | ./lpp_usb \ | |||
|
39 | ./dsp/lpp_fft \ | |||
|
40 | ./lpp_leon3_soc \ | |||
|
41 | ./lpp_debug_lfr | |||
|
42 | ||||
|
43 | FILESKIP = i2cmst.vhd \ | |||
|
44 | APB_MULTI_DIODE.vhd \ | |||
|
45 | APB_MULTI_DIODE.vhd \ | |||
|
46 | Top_MatrixSpec.vhd \ | |||
|
47 | APB_FFT.vhd \ | |||
|
48 | lpp_lfr_ms_FFT.vhd \ | |||
|
49 | lpp_lfr_apbreg.vhd \ | |||
|
50 | CoreFFT.vhd \ | |||
|
51 | lpp_lfr_ms.vhd \ | |||
|
52 | lpp_lfr_sim_pkg.vhd \ | |||
|
53 | mtie_maps.vhd \ | |||
|
54 | ftsrctrlc.vhd \ | |||
|
55 | ftsdctrl.vhd \ | |||
|
56 | ftsrctrl8.vhd \ | |||
|
57 | ftmctrl.vhd \ | |||
|
58 | ftsdctrl64.vhd \ | |||
|
59 | ftahbram.vhd \ | |||
|
60 | ftahbram2.vhd \ | |||
|
61 | sramft.vhd \ | |||
|
62 | nandfctrlx.vhd | |||
|
63 | ||||
|
64 | include $(GRLIB)/bin/Makefile | |||
|
65 | include $(GRLIB)/software/leon3/Makefile | |||
|
66 | ################## project specific targets ########################## | |||
|
67 | distclean:myclean | |||
|
68 | vsim:cp_for_vsim | |||
|
69 | ||||
|
70 | myclean: | |||
|
71 | rm -f input.txt output_f*.txt *.log | |||
|
72 | rm -rf ./2016* | |||
|
73 | ||||
|
74 | generate : | |||
|
75 | python ./generate.py | |||
|
76 | ||||
|
77 | cp_for_vsim: generate | |||
|
78 | cp ./input.txt simulation/ | |||
|
79 | ||||
|
80 | archivate: | |||
|
81 | python ./archivate.py | |||
|
82 | ||||
|
83 | test-common: | generate ghdl ghdl-run archivate | |||
|
84 | ||||
|
85 | test-vsim-common: | generate vsim vsim-run archivate | |||
|
86 | ||||
|
87 | test-vsim: test-vsim-common | |||
|
88 | ||||
|
89 | test: test-common | |||
|
90 | ||||
|
91 | ||||
|
92 | ||||
|
93 |
@@ -0,0 +1,10 | |||||
|
1 | import os | |||
|
2 | import shutil | |||
|
3 | import datetime as dt | |||
|
4 | import glob | |||
|
5 | ||||
|
6 | folder=dt.datetime.today().strftime("%Y-%m-%d_%H-%M-%S") | |||
|
7 | os.mkdir(folder) | |||
|
8 | shutil.copy("input.txt",folder+"/input.txt") | |||
|
9 | for file in glob.glob("output_f*.txt"): | |||
|
10 | shutil.copy(file, folder) |
@@ -0,0 +1,23 | |||||
|
1 | import numpy as np | |||
|
2 | import random | |||
|
3 | ||||
|
4 | W,H=8,10000 | |||
|
5 | low,high=-100,100 | |||
|
6 | INPUT_F=98304 | |||
|
7 | test = np.random.randint(low=low,high=high,size=(H,W)) | |||
|
8 | test *= 0 | |||
|
9 | ||||
|
10 | test=np.stack(( +1.*(20000.*np.sin(np.arange(len(test)) *2.*np.pi * 3. /INPUT_F )).astype(int) , | |||
|
11 | -1.*(20000.*np.sin(np.arange(len(test)) *2.*np.pi * 3. /INPUT_F )).astype(int) , | |||
|
12 | +1.*(20000.*np.sin(np.arange(len(test)) *2.*np.pi * 3. /INPUT_F )).astype(int) , | |||
|
13 | -1.*(20000.*np.sin(np.arange(len(test)) *2.*np.pi * 3. /INPUT_F )).astype(int) , | |||
|
14 | +1.*(20000.*np.sin(np.arange(len(test)) *2.*np.pi * 3. /INPUT_F )).astype(int) , | |||
|
15 | -1.*(20000.*np.sin(np.arange(len(test)) *2.*np.pi * 3. /INPUT_F )).astype(int) , | |||
|
16 | +1.*(20000.*np.sin(np.arange(len(test)) *2.*np.pi * 3. /INPUT_F )).astype(int) , | |||
|
17 | -1.*(20000.*np.sin(np.arange(len(test)) *2.*np.pi * 3. /INPUT_F )).astype(int))).transpose() | |||
|
18 | ||||
|
19 | np.savetxt("input.txt", test,fmt="%d", delimiter=" ") | |||
|
20 | ||||
|
21 | ||||
|
22 | ||||
|
23 |
@@ -0,0 +1,156 | |||||
|
1 | { | |||
|
2 | "cells": [ | |||
|
3 | { | |||
|
4 | "cell_type": "code", | |||
|
5 | "execution_count": 52, | |||
|
6 | "metadata": { | |||
|
7 | "collapsed": false | |||
|
8 | }, | |||
|
9 | "outputs": [], | |||
|
10 | "source": [ | |||
|
11 | "import numpy as np\n", | |||
|
12 | "import matplotlib.pyplot as plt\n", | |||
|
13 | "import glob \n", | |||
|
14 | "import pandas as pds" | |||
|
15 | ] | |||
|
16 | }, | |||
|
17 | { | |||
|
18 | "cell_type": "code", | |||
|
19 | "execution_count": null, | |||
|
20 | "metadata": { | |||
|
21 | "collapsed": false | |||
|
22 | }, | |||
|
23 | "outputs": [], | |||
|
24 | "source": [] | |||
|
25 | }, | |||
|
26 | { | |||
|
27 | "cell_type": "code", | |||
|
28 | "execution_count": 55, | |||
|
29 | "metadata": { | |||
|
30 | "collapsed": false | |||
|
31 | }, | |||
|
32 | "outputs": [ | |||
|
33 | { | |||
|
34 | "data": { | |||
|
35 | "image/png": "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\n", | |||
|
36 | "text/plain": [ | |||
|
37 | "<matplotlib.figure.Figure at 0x7f1f2a6d3a90>" | |||
|
38 | ] | |||
|
39 | }, | |||
|
40 | "metadata": {}, | |||
|
41 | "output_type": "display_data" | |||
|
42 | } | |||
|
43 | ], | |||
|
44 | "source": [ | |||
|
45 | "for folder in glob.glob(\"./2016*\"):\n", | |||
|
46 | " inputsig = pds.read_csv(folder+\"/input.txt\",sep=\" \",header=None)\n", | |||
|
47 | " inputsig.columns=[ \"CH{}\".format(i) for i in range(inputsig.shape[1])]\n", | |||
|
48 | " outputsig = pds.read_csv(folder+\"/output_f0.txt\",sep=\" \",header=None)\n", | |||
|
49 | " outputsig.columns=[\"Tstamp\"]+[ \"CH{}\".format(i) for i in range(outputsig.shape[1]-1)]\n", | |||
|
50 | " f, axarr = plt.subplots(1,2,figsize=(14, 6))\n", | |||
|
51 | " inputsig.plot(ax=axarr[0])\n", | |||
|
52 | " axarr[0].legend(loc='upper right')\n", | |||
|
53 | " (outputsig.filter(regex=\"CH*\")[:]/0.8912).plot(ax=axarr[1])\n", | |||
|
54 | " axarr[1].legend(loc='upper right')\n", | |||
|
55 | " plt.show()" | |||
|
56 | ] | |||
|
57 | }, | |||
|
58 | { | |||
|
59 | "cell_type": "code", | |||
|
60 | "execution_count": 8, | |||
|
61 | "metadata": { | |||
|
62 | "collapsed": false | |||
|
63 | }, | |||
|
64 | "outputs": [ | |||
|
65 | { | |||
|
66 | "ename": "FileNotFoundError", | |||
|
67 | "evalue": "File b'./simulation//input.txt' does not exist", | |||
|
68 | "output_type": "error", | |||
|
69 | "traceback": [ | |||
|
70 | "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", | |||
|
71 | "\u001b[0;31mFileNotFoundError\u001b[0m Traceback (most recent call last)", | |||
|
72 | "\u001b[0;32m<ipython-input-8-b0157b87c19d>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0mfolder\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"./simulation/\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0minputsig\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpds\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_csv\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfolder\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0;34m\"/input.txt\"\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0msep\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\" \"\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mheader\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0minputsig\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcolumns\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m[\u001b[0m \u001b[0;34m\"CH{}\"\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minputsig\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0moutputsig\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpds\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_csv\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfolder\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0;34m\"/output_f2.txt\"\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0msep\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\" \"\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mheader\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0moutputsig\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcolumns\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"Tstamp\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0;34m[\u001b[0m \u001b[0;34m\"CH{}\"\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0moutputsig\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |||
|
73 | "\u001b[0;32m/home/adminlpp/venv/lib/python3.5/site-packages/pandas/io/parsers.py\u001b[0m in \u001b[0;36mparser_f\u001b[0;34m(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, escapechar, comment, encoding, dialect, tupleize_cols, error_bad_lines, warn_bad_lines, skipfooter, skip_footer, doublequote, delim_whitespace, as_recarray, compact_ints, use_unsigned, low_memory, buffer_lines, memory_map, float_precision)\u001b[0m\n\u001b[1;32m 643\u001b[0m skip_blank_lines=skip_blank_lines)\n\u001b[1;32m 644\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 645\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0m_read\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilepath_or_buffer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 646\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 647\u001b[0m \u001b[0mparser_f\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__name__\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |||
|
74 | "\u001b[0;32m/home/adminlpp/venv/lib/python3.5/site-packages/pandas/io/parsers.py\u001b[0m in \u001b[0;36m_read\u001b[0;34m(filepath_or_buffer, kwds)\u001b[0m\n\u001b[1;32m 386\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 387\u001b[0m \u001b[0;31m# Create the parser.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 388\u001b[0;31m \u001b[0mparser\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mTextFileReader\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilepath_or_buffer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 389\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 390\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mnrows\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mchunksize\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |||
|
75 | "\u001b[0;32m/home/adminlpp/venv/lib/python3.5/site-packages/pandas/io/parsers.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, f, engine, **kwds)\u001b[0m\n\u001b[1;32m 727\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0moptions\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'has_index_names'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mkwds\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'has_index_names'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 728\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 729\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_make_engine\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mengine\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 730\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 731\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mclose\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |||
|
76 | "\u001b[0;32m/home/adminlpp/venv/lib/python3.5/site-packages/pandas/io/parsers.py\u001b[0m in \u001b[0;36m_make_engine\u001b[0;34m(self, engine)\u001b[0m\n\u001b[1;32m 920\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_make_engine\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mengine\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'c'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 921\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mengine\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'c'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 922\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_engine\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mCParserWrapper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0moptions\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 923\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 924\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mengine\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'python'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |||
|
77 | "\u001b[0;32m/home/adminlpp/venv/lib/python3.5/site-packages/pandas/io/parsers.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, src, **kwds)\u001b[0m\n\u001b[1;32m 1387\u001b[0m \u001b[0mkwds\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'allow_leading_cols'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mindex_col\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mFalse\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1388\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1389\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_reader\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_parser\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mTextReader\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msrc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1390\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1391\u001b[0m \u001b[0;31m# XXX\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |||
|
78 | "\u001b[0;32mpandas/parser.pyx\u001b[0m in \u001b[0;36mpandas.parser.TextReader.__cinit__ (pandas/parser.c:4175)\u001b[0;34m()\u001b[0m\n", | |||
|
79 | "\u001b[0;32mpandas/parser.pyx\u001b[0m in \u001b[0;36mpandas.parser.TextReader._setup_parser_source (pandas/parser.c:8440)\u001b[0;34m()\u001b[0m\n", | |||
|
80 | "\u001b[0;31mFileNotFoundError\u001b[0m: File b'./simulation//input.txt' does not exist" | |||
|
81 | ] | |||
|
82 | } | |||
|
83 | ], | |||
|
84 | "source": [ | |||
|
85 | "folder=\"./simulation/\"\n", | |||
|
86 | "inputsig = pds.read_csv(folder+\"/input.txt\",sep=\" \",header=None)\n", | |||
|
87 | "inputsig.columns=[ \"CH{}\".format(i) for i in range(inputsig.shape[1])]\n", | |||
|
88 | "outputsig = pds.read_csv(folder+\"/output_f2.txt\",sep=\" \",header=None)\n", | |||
|
89 | "outputsig.columns=[\"Tstamp\"]+[ \"CH{}\".format(i) for i in range(outputsig.shape[1]-1)]\n", | |||
|
90 | "f, axarr = plt.subplots(1,2,figsize=(14, 6))\n", | |||
|
91 | "(outputsig.filter(regex=\"CH*\")- inputsig*0.8912)[150:].plot(ax=axarr[0])\n", | |||
|
92 | "axarr[0].legend(loc='upper right')\n", | |||
|
93 | "(outputsig.filter(regex=\"CH*\")[:100]/0.8912).plot(ax=axarr[1])\n", | |||
|
94 | "axarr[1].legend(loc='upper right')\n", | |||
|
95 | "plt.show()" | |||
|
96 | ] | |||
|
97 | }, | |||
|
98 | { | |||
|
99 | "cell_type": "code", | |||
|
100 | "execution_count": null, | |||
|
101 | "metadata": { | |||
|
102 | "collapsed": true | |||
|
103 | }, | |||
|
104 | "outputs": [], | |||
|
105 | "source": [] | |||
|
106 | }, | |||
|
107 | { | |||
|
108 | "cell_type": "code", | |||
|
109 | "execution_count": null, | |||
|
110 | "metadata": { | |||
|
111 | "collapsed": true | |||
|
112 | }, | |||
|
113 | "outputs": [], | |||
|
114 | "source": [] | |||
|
115 | }, | |||
|
116 | { | |||
|
117 | "cell_type": "code", | |||
|
118 | "execution_count": null, | |||
|
119 | "metadata": { | |||
|
120 | "collapsed": true | |||
|
121 | }, | |||
|
122 | "outputs": [], | |||
|
123 | "source": [] | |||
|
124 | }, | |||
|
125 | { | |||
|
126 | "cell_type": "code", | |||
|
127 | "execution_count": null, | |||
|
128 | "metadata": { | |||
|
129 | "collapsed": true | |||
|
130 | }, | |||
|
131 | "outputs": [], | |||
|
132 | "source": [] | |||
|
133 | } | |||
|
134 | ], | |||
|
135 | "metadata": { | |||
|
136 | "kernelspec": { | |||
|
137 | "display_name": "Python 3", | |||
|
138 | "language": "python", | |||
|
139 | "name": "python3" | |||
|
140 | }, | |||
|
141 | "language_info": { | |||
|
142 | "codemirror_mode": { | |||
|
143 | "name": "ipython", | |||
|
144 | "version": 3 | |||
|
145 | }, | |||
|
146 | "file_extension": ".py", | |||
|
147 | "mimetype": "text/x-python", | |||
|
148 | "name": "python", | |||
|
149 | "nbconvert_exporter": "python", | |||
|
150 | "pygments_lexer": "ipython3", | |||
|
151 | "version": "3.5.2" | |||
|
152 | } | |||
|
153 | }, | |||
|
154 | "nbformat": 4, | |||
|
155 | "nbformat_minor": 1 | |||
|
156 | } |
@@ -0,0 +1,260 | |||||
|
1 | ||||
|
2 | LIBRARY ieee; | |||
|
3 | USE ieee.std_logic_1164.ALL; | |||
|
4 | use ieee.numeric_std.all; | |||
|
5 | USE IEEE.std_logic_signed.ALL; | |||
|
6 | USE IEEE.MATH_real.ALL; | |||
|
7 | ||||
|
8 | LIBRARY techmap; | |||
|
9 | USE techmap.gencomp.ALL; | |||
|
10 | ||||
|
11 | library std; | |||
|
12 | use std.textio.all; | |||
|
13 | ||||
|
14 | LIBRARY lpp; | |||
|
15 | USE lpp.iir_filter.ALL; | |||
|
16 | USE lpp.lpp_ad_conv.ALL; | |||
|
17 | USE lpp.FILTERcfg.ALL; | |||
|
18 | USE lpp.lpp_lfr_filter_coeff.ALL; | |||
|
19 | USE lpp.general_purpose.ALL; | |||
|
20 | USE lpp.data_type_pkg.ALL; | |||
|
21 | USE lpp.lpp_lfr_pkg.ALL; | |||
|
22 | USE lpp.general_purpose.ALL; | |||
|
23 | USE lpp.lpp_sim_pkg.ALL; | |||
|
24 | ||||
|
25 | ENTITY testbench IS | |||
|
26 | GENERIC( | |||
|
27 | tech : INTEGER := 0; --axcel,0 | |||
|
28 | Mem_use : INTEGER := use_CEL --use_RAM,use_CEL | |||
|
29 | ); | |||
|
30 | END; | |||
|
31 | ||||
|
32 | ARCHITECTURE behav OF testbench IS | |||
|
33 | CONSTANT ChanelCount : INTEGER := 8; | |||
|
34 | ||||
|
35 | SIGNAL TSTAMP : INTEGER:=0; | |||
|
36 | SIGNAL clk : STD_LOGIC := '0'; | |||
|
37 | SIGNAL clk_98304Hz : STD_LOGIC := '0'; | |||
|
38 | SIGNAL clk_98304Hz_r : STD_LOGIC := '0'; | |||
|
39 | SIGNAL rstn : STD_LOGIC; | |||
|
40 | ||||
|
41 | SIGNAL signal_gen : sample_vector(0 to ChanelCount-1,15 downto 0); | |||
|
42 | ||||
|
43 | SIGNAL sample : Samples(7 DOWNTO 0); | |||
|
44 | ||||
|
45 | SIGNAL sample_val : STD_LOGIC; | |||
|
46 | ||||
|
47 | SIGNAL sample_f0_val : STD_LOGIC; | |||
|
48 | SIGNAL sample_f1_val : STD_LOGIC; | |||
|
49 | SIGNAL sample_f2_val : STD_LOGIC; | |||
|
50 | SIGNAL sample_f3_val : STD_LOGIC; | |||
|
51 | ||||
|
52 | SIGNAL sample_f0_wdata : STD_LOGIC_VECTOR((6*16)-1 DOWNTO 0); | |||
|
53 | SIGNAL sample_f1_wdata : STD_LOGIC_VECTOR((6*16)-1 DOWNTO 0); | |||
|
54 | SIGNAL sample_f2_wdata : STD_LOGIC_VECTOR((6*16)-1 DOWNTO 0); | |||
|
55 | SIGNAL sample_f3_wdata : STD_LOGIC_VECTOR((6*16)-1 DOWNTO 0); | |||
|
56 | ||||
|
57 | SIGNAL signal_f0_rec : sample_vector(0 to 5,15 downto 0); | |||
|
58 | SIGNAL signal_f1_rec : sample_vector(0 to 5,15 downto 0); | |||
|
59 | SIGNAL signal_f2_rec : sample_vector(0 to 5,15 downto 0); | |||
|
60 | SIGNAL signal_f3_rec : sample_vector(0 to 5,15 downto 0); | |||
|
61 | ||||
|
62 | SIGNAL end_of_simu : STD_LOGIC := '0'; | |||
|
63 | ||||
|
64 | CONSTANT half_samplig_period : time := 5086263 ps;--INTEGER( REAL(REAL(1000**4) / REAL(2.0*4.0*24576.0))) * 1 ps; | |||
|
65 | ||||
|
66 | ||||
|
67 | ||||
|
68 | BEGIN | |||
|
69 | ||||
|
70 | ----------------------------------------------------------------------------- | |||
|
71 | -- CLOCK and RESET | |||
|
72 | ----------------------------------------------------------------------------- | |||
|
73 | PROCESS | |||
|
74 | BEGIN -- PROCESS | |||
|
75 | WAIT UNTIL clk = '1'; | |||
|
76 | rstn <= '0'; | |||
|
77 | WAIT UNTIL clk = '1'; | |||
|
78 | WAIT UNTIL clk = '1'; | |||
|
79 | WAIT UNTIL clk = '1'; | |||
|
80 | rstn <= '1'; | |||
|
81 | WAIT UNTIL end_of_simu = '1'; | |||
|
82 | WAIT FOR 10 ps; | |||
|
83 | assert false report "end of test" severity note; | |||
|
84 | -- Wait forever; this will finish the simulation. | |||
|
85 | wait; | |||
|
86 | END PROCESS; | |||
|
87 | ----------------------------------------------------------------------------- | |||
|
88 | ||||
|
89 | ||||
|
90 | clk_98304Hz_gen:PROCESS | |||
|
91 | BEGIN | |||
|
92 | IF end_of_simu /= '1' THEN | |||
|
93 | clk_98304Hz <= NOT clk_98304Hz; | |||
|
94 | WAIT FOR half_samplig_period; | |||
|
95 | ELSE | |||
|
96 | WAIT FOR 10 ps; | |||
|
97 | assert false report "end of test" severity note; | |||
|
98 | WAIT; | |||
|
99 | END IF; | |||
|
100 | END PROCESS; | |||
|
101 | ||||
|
102 | clk_25M_gen:PROCESS | |||
|
103 | BEGIN | |||
|
104 | IF end_of_simu /= '1' THEN | |||
|
105 | clk <= NOT clk; | |||
|
106 | TSTAMP <= TSTAMP+20; | |||
|
107 | WAIT FOR 20 ns; | |||
|
108 | ELSE | |||
|
109 | WAIT FOR 10 ps; | |||
|
110 | assert false report "end of test" severity note; | |||
|
111 | WAIT; | |||
|
112 | END IF; | |||
|
113 | END PROCESS; | |||
|
114 | ||||
|
115 | ||||
|
116 | ----------------------------------------------------------------------------- | |||
|
117 | -- LPP_LFR_FILTER | |||
|
118 | ----------------------------------------------------------------------------- | |||
|
119 | lpp_lfr_filter_1: lpp_lfr_filter | |||
|
120 | GENERIC MAP ( | |||
|
121 | tech => tech, | |||
|
122 | Mem_use => Mem_use, | |||
|
123 | RTL_DESIGN_LIGHT =>0, | |||
|
124 | DATA_SHAPING_SATURATION => 1 | |||
|
125 | ) | |||
|
126 | PORT MAP ( | |||
|
127 | sample => sample, | |||
|
128 | sample_val => sample_val, | |||
|
129 | sample_time => (others=>'0'), | |||
|
130 | clk => clk, | |||
|
131 | rstn => rstn, | |||
|
132 | ||||
|
133 | data_shaping_SP0 => '1', | |||
|
134 | data_shaping_SP1 => '1', | |||
|
135 | data_shaping_R0 => '1', | |||
|
136 | data_shaping_R1 => '0', | |||
|
137 | data_shaping_R2 => '0', | |||
|
138 | ||||
|
139 | sample_f0_val => sample_f0_val, | |||
|
140 | sample_f1_val => sample_f1_val, | |||
|
141 | sample_f2_val => sample_f2_val, | |||
|
142 | sample_f3_val => sample_f3_val, | |||
|
143 | ||||
|
144 | sample_f0_wdata => sample_f0_wdata, | |||
|
145 | sample_f1_wdata => sample_f1_wdata, | |||
|
146 | sample_f2_wdata => sample_f2_wdata, | |||
|
147 | sample_f3_wdata => sample_f3_wdata | |||
|
148 | ); | |||
|
149 | ----------------------------------------------------------------------------- | |||
|
150 | ||||
|
151 | ||||
|
152 | ----------------------------------------------------------------------------- | |||
|
153 | -- SAMPLE PULSE GENERATION | |||
|
154 | ----------------------------------------------------------------------------- | |||
|
155 | PROCESS (clk, rstn) | |||
|
156 | BEGIN -- PROCESS | |||
|
157 | IF rstn = '0' THEN -- asynchronous reset (active low) | |||
|
158 | sample_val <= '0'; | |||
|
159 | clk_98304Hz_r <= '0'; | |||
|
160 | ELSIF clk'EVENT AND clk = '1' THEN -- rising clock edge | |||
|
161 | clk_98304Hz_r <= clk_98304Hz; | |||
|
162 | IF clk_98304Hz = '1' AND clk_98304Hz_r = '0' THEN | |||
|
163 | sample_val <= '1'; | |||
|
164 | ELSE | |||
|
165 | sample_val <= '0'; | |||
|
166 | END IF; | |||
|
167 | END IF; | |||
|
168 | END PROCESS; | |||
|
169 | ----------------------------------------------------------------------------- | |||
|
170 | ||||
|
171 | ||||
|
172 | ----------------------------------------------------------------------------- | |||
|
173 | -- READ INPUT SIGNALS | |||
|
174 | ----------------------------------------------------------------------------- | |||
|
175 | gen: sig_reader | |||
|
176 | GENERIC MAP( | |||
|
177 | FNAME => "input.txt", | |||
|
178 | WIDTH => ChanelCount, | |||
|
179 | RESOLUTION => 16, | |||
|
180 | GAIN => 1.0 | |||
|
181 | ) | |||
|
182 | PORT MAP( | |||
|
183 | clk => sample_val, | |||
|
184 | end_of_simu => end_of_simu, | |||
|
185 | out_signal => signal_gen | |||
|
186 | ); | |||
|
187 | ||||
|
188 | ChanelLoop : FOR i IN 0 TO ChanelCount-1 GENERATE | |||
|
189 | SampleLoop : FOR j IN 0 TO 15 GENERATE | |||
|
190 | sample(I)(J) <= signal_gen(I,J); | |||
|
191 | END GENERATE; | |||
|
192 | END GENERATE; | |||
|
193 | ||||
|
194 | output_splitter: FOR CHAN IN 0 TO 5 GENERATE | |||
|
195 | bits_splitter: FOR BIT IN 0 TO 15 GENERATE | |||
|
196 | signal_f0_rec(CHAN,BIT) <= sample_f0_wdata((CHAN*16) + BIT); | |||
|
197 | signal_f1_rec(CHAN,BIT) <= sample_f1_wdata((CHAN*16) + BIT); | |||
|
198 | signal_f2_rec(CHAN,BIT) <= sample_f2_wdata((CHAN*16) + BIT); | |||
|
199 | signal_f3_rec(CHAN,BIT) <= sample_f3_wdata((CHAN*16) + BIT); | |||
|
200 | END GENERATE bits_splitter; | |||
|
201 | END GENERATE output_splitter; | |||
|
202 | ||||
|
203 | ||||
|
204 | ----------------------------------------------------------------------------- | |||
|
205 | -- RECORD SIGNALS | |||
|
206 | ----------------------------------------------------------------------------- | |||
|
207 | ||||
|
208 | f0_rec : sig_recorder | |||
|
209 | GENERIC MAP( | |||
|
210 | FNAME => "output_f0.txt", | |||
|
211 | WIDTH => 6, | |||
|
212 | RESOLUTION => 16 | |||
|
213 | ) | |||
|
214 | PORT MAP( | |||
|
215 | clk => sample_f0_val, | |||
|
216 | end_of_simu => end_of_simu, | |||
|
217 | timestamp => TSTAMP, | |||
|
218 | input_signal => signal_f0_rec | |||
|
219 | ); | |||
|
220 | ||||
|
221 | f1_rec : sig_recorder | |||
|
222 | GENERIC MAP( | |||
|
223 | FNAME => "output_f1.txt", | |||
|
224 | WIDTH => 6, | |||
|
225 | RESOLUTION => 16 | |||
|
226 | ) | |||
|
227 | PORT MAP( | |||
|
228 | clk => sample_f1_val, | |||
|
229 | end_of_simu => end_of_simu, | |||
|
230 | timestamp => TSTAMP, | |||
|
231 | input_signal => signal_f1_rec | |||
|
232 | ); | |||
|
233 | ||||
|
234 | f2_rec : sig_recorder | |||
|
235 | GENERIC MAP( | |||
|
236 | FNAME => "output_f2.txt", | |||
|
237 | WIDTH => 6, | |||
|
238 | RESOLUTION => 16 | |||
|
239 | ) | |||
|
240 | PORT MAP( | |||
|
241 | clk => sample_f2_val, | |||
|
242 | end_of_simu => end_of_simu, | |||
|
243 | timestamp => TSTAMP, | |||
|
244 | input_signal => signal_f2_rec | |||
|
245 | ); | |||
|
246 | ||||
|
247 | f3_rec : sig_recorder | |||
|
248 | GENERIC MAP( | |||
|
249 | FNAME => "output_f3.txt", | |||
|
250 | WIDTH => 6, | |||
|
251 | RESOLUTION => 16 | |||
|
252 | ) | |||
|
253 | PORT MAP( | |||
|
254 | clk => sample_f3_val, | |||
|
255 | end_of_simu => end_of_simu, | |||
|
256 | timestamp => TSTAMP, | |||
|
257 | input_signal => signal_f3_rec | |||
|
258 | ); | |||
|
259 | ||||
|
260 | END; |
@@ -33,6 +33,15 USE IEEE.NUMERIC_STD.ALL; | |||||
33 |
|
33 | |||
34 | PACKAGE general_purpose IS |
|
34 | PACKAGE general_purpose IS | |
35 |
|
35 | |||
|
36 | COMPONENT saturation | |||
|
37 | generic ( | |||
|
38 | SIZE_INPUT : integer := 18; | |||
|
39 | SIZE_OUTPUT : integer := 16); | |||
|
40 | port ( | |||
|
41 | s_in : in std_logic_vector(SIZE_INPUT-1 downto 0); | |||
|
42 | s_out : out std_logic_vector(SIZE_OUTPUT-1 downto 0) ); | |||
|
43 | end COMPONENT; | |||
|
44 | ||||
36 | COMPONENT general_counter |
|
45 | COMPONENT general_counter | |
37 | GENERIC ( |
|
46 | GENERIC ( | |
38 | CYCLIC : STD_LOGIC := '1'; |
|
47 | CYCLIC : STD_LOGIC := '1'; |
@@ -26,3 +26,4 RR_Arbiter_4.vhd | |||||
26 | general_counter.vhd |
|
26 | general_counter.vhd | |
27 | ramp_generator.vhd |
|
27 | ramp_generator.vhd | |
28 | TimeGenAdvancedTrigger.vhd |
|
28 | TimeGenAdvancedTrigger.vhd | |
|
29 | saturation.vhd |
@@ -43,7 +43,8 ENTITY lpp_lfr IS | |||||
43 |
|
43 | |||
44 | DEBUG_FORCE_DATA_DMA : INTEGER := 0; |
|
44 | DEBUG_FORCE_DATA_DMA : INTEGER := 0; | |
45 | RTL_DESIGN_LIGHT : INTEGER := 0; |
|
45 | RTL_DESIGN_LIGHT : INTEGER := 0; | |
46 | WINDOWS_HAANNING_PARAM_SIZE : INTEGER := 15 |
|
46 | WINDOWS_HAANNING_PARAM_SIZE : INTEGER := 15; | |
|
47 | DATA_SHAPING_SATURATION : INTEGER := 0 | |||
47 |
|
|
48 | ); | |
48 | PORT ( |
|
49 | PORT ( | |
49 | clk : IN STD_LOGIC; |
|
50 | clk : IN STD_LOGIC; |
@@ -33,6 +33,7 USE lpp.lpp_waveform_pkg.ALL; | |||||
33 | USE lpp.cic_pkg.ALL; |
|
33 | USE lpp.cic_pkg.ALL; | |
34 | USE lpp.data_type_pkg.ALL; |
|
34 | USE lpp.data_type_pkg.ALL; | |
35 | USE lpp.lpp_lfr_filter_coeff.ALL; |
|
35 | USE lpp.lpp_lfr_filter_coeff.ALL; | |
|
36 | use lpp.general_purpose.all; | |||
36 |
|
37 | |||
37 | LIBRARY techmap; |
|
38 | LIBRARY techmap; | |
38 | USE techmap.gencomp.ALL; |
|
39 | USE techmap.gencomp.ALL; | |
@@ -45,9 +46,10 USE GRLIB.DMA2AHB_Package.ALL; | |||||
45 |
|
46 | |||
46 | ENTITY lpp_lfr_filter IS |
|
47 | ENTITY lpp_lfr_filter IS | |
47 | GENERIC( |
|
48 | GENERIC( | |
48 | tech : INTEGER := 0; |
|
49 | tech : INTEGER := 0; | |
49 | Mem_use : INTEGER := use_RAM; |
|
50 | Mem_use : INTEGER := use_RAM; | |
50 | RTL_DESIGN_LIGHT : INTEGER := 0 |
|
51 | RTL_DESIGN_LIGHT : INTEGER := 0; | |
|
52 | DATA_SHAPING_SATURATION : INTEGER := 1 | |||
51 | ); |
|
53 | ); | |
52 | PORT ( |
|
54 | PORT ( | |
53 | sample : IN Samples(7 DOWNTO 0); |
|
55 | sample : IN Samples(7 DOWNTO 0); | |
@@ -116,12 +118,14 ARCHITECTURE tb OF lpp_lfr_filter IS | |||||
116 | SIGNAL sample_filter_v2_out : samplT(ChanelCount-1 DOWNTO 0, 17 DOWNTO 0); |
|
118 | SIGNAL sample_filter_v2_out : samplT(ChanelCount-1 DOWNTO 0, 17 DOWNTO 0); | |
117 | ----------------------------------------------------------------------------- |
|
119 | ----------------------------------------------------------------------------- | |
118 | SIGNAL sample_data_shaping_out_val : STD_LOGIC; |
|
120 | SIGNAL sample_data_shaping_out_val : STD_LOGIC; | |
119 |
SIGNAL sample_data_shaping_out : samplT(ChanelCount-1 DOWNTO 0, 1 |
|
121 | SIGNAL sample_data_shaping_out : samplT(ChanelCount-1 DOWNTO 0, 15 DOWNTO 0); | |
120 | SIGNAL sample_data_shaping_f0_s : STD_LOGIC_VECTOR(17 DOWNTO 0); |
|
122 | SIGNAL sample_data_shaping_f0_s : STD_LOGIC_VECTOR(17 DOWNTO 0); | |
121 | SIGNAL sample_data_shaping_f1_s : STD_LOGIC_VECTOR(17 DOWNTO 0); |
|
123 | SIGNAL sample_data_shaping_f1_s : STD_LOGIC_VECTOR(17 DOWNTO 0); | |
122 | SIGNAL sample_data_shaping_f2_s : STD_LOGIC_VECTOR(17 DOWNTO 0); |
|
124 | SIGNAL sample_data_shaping_f2_s : STD_LOGIC_VECTOR(17 DOWNTO 0); | |
123 |
SIGNAL sample_data_shaping_f1_f0_s : STD_LOGIC_VECTOR(1 |
|
125 | SIGNAL sample_data_shaping_f1_f0_s : STD_LOGIC_VECTOR(18 DOWNTO 0); | |
124 |
SIGNAL sample_data_shaping_f2_f1_s : STD_LOGIC_VECTOR(1 |
|
126 | SIGNAL sample_data_shaping_f2_f1_s : STD_LOGIC_VECTOR(18 DOWNTO 0); | |
|
127 | SIGNAL sample_data_shaping_f1_f0_saturated_s : STD_LOGIC_VECTOR(15 DOWNTO 0); | |||
|
128 | SIGNAL sample_data_shaping_f2_f1_saturated_s : STD_LOGIC_VECTOR(15 DOWNTO 0); | |||
125 | ----------------------------------------------------------------------------- |
|
129 | ----------------------------------------------------------------------------- | |
126 | SIGNAL sample_filter_v2_out_val_s : STD_LOGIC; |
|
130 | SIGNAL sample_filter_v2_out_val_s : STD_LOGIC; | |
127 | SIGNAL sample_filter_v2_out_s : samplT(ChanelCount-1 DOWNTO 0, 15 DOWNTO 0); |
|
131 | SIGNAL sample_filter_v2_out_s : samplT(ChanelCount-1 DOWNTO 0, 15 DOWNTO 0); | |
@@ -311,9 +315,32 BEGIN | |||||
311 | sample_data_shaping_f2_s(I) <= sample_filter_v2_out(2, I); |
|
315 | sample_data_shaping_f2_s(I) <= sample_filter_v2_out(2, I); | |
312 | END GENERATE all_data_shaping_in_loop; |
|
316 | END GENERATE all_data_shaping_in_loop; | |
313 |
|
317 | |||
314 | sample_data_shaping_f1_f0_s <= sample_data_shaping_f1_s - sample_data_shaping_f0_s; |
|
318 | sample_data_shaping_f1_f0_s <= STD_LOGIC_VECTOR(resize( SIGNED(sample_data_shaping_f1_s) - SIGNED(sample_data_shaping_f0_s),19)); | |
315 | sample_data_shaping_f2_f1_s <= sample_data_shaping_f2_s - sample_data_shaping_f1_s; |
|
319 | sample_data_shaping_f2_f1_s <= STD_LOGIC_VECTOR(resize( SIGNED(sample_data_shaping_f2_s) - SIGNED(sample_data_shaping_f1_s),19)); | |
|
320 | ||||
|
321 | DATA_SHAPING_SATURATION_ENABLED: if DATA_SHAPING_SATURATION = 1 generate | |||
|
322 | saturation_SP0 : saturation | |||
|
323 | generic map ( | |||
|
324 | SIZE_INPUT => 19, | |||
|
325 | SIZE_OUTPUT => 16) | |||
|
326 | port map ( | |||
|
327 | s_in => sample_data_shaping_f1_f0_s, | |||
|
328 | s_out => sample_data_shaping_f1_f0_saturated_s ); | |||
316 |
|
329 | |||
|
330 | saturation_SP1 : saturation | |||
|
331 | generic map ( | |||
|
332 | SIZE_INPUT => 19, | |||
|
333 | SIZE_OUTPUT => 16) | |||
|
334 | port map ( | |||
|
335 | s_in => sample_data_shaping_f2_f1_s, | |||
|
336 | s_out => sample_data_shaping_f2_f1_saturated_s ); | |||
|
337 | end generate DATA_SHAPING_SATURATION_ENABLED; | |||
|
338 | ||||
|
339 | DATA_SHAPING_SATURATION_DISABLED: if DATA_SHAPING_SATURATION = 0 generate | |||
|
340 | sample_data_shaping_f1_f0_saturated_s <= sample_data_shaping_f1_f0_s(16 downto 1); | |||
|
341 | sample_data_shaping_f2_f1_saturated_s <= sample_data_shaping_f2_f1_s(16 downto 1); | |||
|
342 | end generate DATA_SHAPING_SATURATION_DISABLED; | |||
|
343 | ||||
317 |
|
|
344 | PROCESS (clk, rstn) | |
318 | BEGIN -- PROCESS |
|
345 | BEGIN -- PROCESS | |
319 | IF rstn = '0' THEN -- asynchronous reset (active low) |
|
346 | IF rstn = '0' THEN -- asynchronous reset (active low) | |
@@ -323,7 +350,7 BEGIN | |||||
323 | END IF; |
|
350 | END IF; | |
324 | END PROCESS; |
|
351 | END PROCESS; | |
325 |
|
352 | |||
326 |
SampleLoop_data_shaping : FOR j IN 0 TO 1 |
|
353 | SampleLoop_data_shaping : FOR j IN 0 TO 15 GENERATE | |
327 | PROCESS (clk, rstn) |
|
354 | PROCESS (clk, rstn) | |
328 | BEGIN |
|
355 | BEGIN | |
329 | IF rstn = '0' THEN |
|
356 | IF rstn = '0' THEN | |
@@ -338,12 +365,12 BEGIN | |||||
338 | ELSIF clk'EVENT AND clk = '1' THEN -- rising clock edge |
|
365 | ELSIF clk'EVENT AND clk = '1' THEN -- rising clock edge | |
339 | sample_data_shaping_out(0, j) <= sample_filter_v2_out(0, j); |
|
366 | sample_data_shaping_out(0, j) <= sample_filter_v2_out(0, j); | |
340 | IF data_shaping_SP0 = '1' THEN |
|
367 | IF data_shaping_SP0 = '1' THEN | |
341 | sample_data_shaping_out(1, j) <= sample_data_shaping_f1_f0_s(j); |
|
368 | sample_data_shaping_out(1, j) <= sample_data_shaping_f1_f0_saturated_s(j); | |
342 | ELSE |
|
369 | ELSE | |
343 | sample_data_shaping_out(1, j) <= sample_filter_v2_out(1, j); |
|
370 | sample_data_shaping_out(1, j) <= sample_filter_v2_out(1, j); | |
344 | END IF; |
|
371 | END IF; | |
345 | IF data_shaping_SP1 = '1' THEN |
|
372 | IF data_shaping_SP1 = '1' THEN | |
346 | sample_data_shaping_out(2, j) <= sample_data_shaping_f2_f1_s(j); |
|
373 | sample_data_shaping_out(2, j) <= sample_data_shaping_f2_f1_saturated_s(j); | |
347 | ELSE |
|
374 | ELSE | |
348 | sample_data_shaping_out(2, j) <= sample_filter_v2_out(2, j); |
|
375 | sample_data_shaping_out(2, j) <= sample_filter_v2_out(2, j); | |
349 | END IF; |
|
376 | END IF; |
@@ -179,7 +179,8 PACKAGE lpp_lfr_pkg IS | |||||
179 | GENERIC ( |
|
179 | GENERIC ( | |
180 | tech : INTEGER; |
|
180 | tech : INTEGER; | |
181 | Mem_use : INTEGER; |
|
181 | Mem_use : INTEGER; | |
182 | RTL_DESIGN_LIGHT : INTEGER |
|
182 | RTL_DESIGN_LIGHT : INTEGER; | |
|
183 | DATA_SHAPING_SATURATION : INTEGER | |||
183 | ); |
|
184 | ); | |
184 | PORT ( |
|
185 | PORT ( | |
185 | sample : IN Samples(7 DOWNTO 0); |
|
186 | sample : IN Samples(7 DOWNTO 0); | |
@@ -225,7 +226,8 PACKAGE lpp_lfr_pkg IS | |||||
225 | top_lfr_version : STD_LOGIC_VECTOR(23 DOWNTO 0); |
|
226 | top_lfr_version : STD_LOGIC_VECTOR(23 DOWNTO 0); | |
226 | DEBUG_FORCE_DATA_DMA : INTEGER; |
|
227 | DEBUG_FORCE_DATA_DMA : INTEGER; | |
227 | RTL_DESIGN_LIGHT : INTEGER; |
|
228 | RTL_DESIGN_LIGHT : INTEGER; | |
228 | WINDOWS_HAANNING_PARAM_SIZE : INTEGER |
|
229 | WINDOWS_HAANNING_PARAM_SIZE : INTEGER; | |
|
230 | DATA_SHAPING_SATURATION : INTEGER | |||
229 | ); |
|
231 | ); | |
230 | PORT ( |
|
232 | PORT ( | |
231 | clk : IN STD_LOGIC; |
|
233 | clk : IN STD_LOGIC; |
General Comments 0
You need to be logged in to leave comments.
Login now