563 lines
9.5 KiB
Plaintext
563 lines
9.5 KiB
Plaintext
/*<simulation_settings>
|
|
<ftestbench_cmd>quartus_eda --gen_testbench --tool=modelsim_oem --format=vhdl --write_settings_files=off AdderDemo -c AdderDemo --vector_source="/home/tiagorg/repos/uaveiro-leci/1ano/2semestre/lsd/pratica03/AdderDemo/Adder4.vwf" --testbench_file="/home/tiagorg/repos/uaveiro-leci/1ano/2semestre/lsd/pratica03/AdderDemo/simulation/qsim/Adder4.vwf.vht"</ftestbench_cmd>
|
|
<ttestbench_cmd>quartus_eda --gen_testbench --tool=modelsim_oem --format=vhdl --write_settings_files=off AdderDemo -c AdderDemo --vector_source="/home/tiagorg/repos/uaveiro-leci/1ano/2semestre/lsd/pratica03/AdderDemo/Adder4.vwf" --testbench_file="/home/tiagorg/repos/uaveiro-leci/1ano/2semestre/lsd/pratica03/AdderDemo/simulation/qsim/Adder4.vwf.vht"</ttestbench_cmd>
|
|
<fnetlist_cmd>quartus_eda --write_settings_files=off --simulation --functional=on --flatten_buses=off --tool=modelsim_oem --format=vhdl --output_directory="/home/tiagorg/repos/uaveiro-leci/1ano/2semestre/lsd/pratica03/AdderDemo/simulation/qsim/" AdderDemo -c AdderDemo</fnetlist_cmd>
|
|
<tnetlist_cmd>quartus_eda --write_settings_files=off --simulation --functional=off --flatten_buses=off --timescale=1ps --tool=modelsim_oem --format=vhdl --output_directory="/home/tiagorg/repos/uaveiro-leci/1ano/2semestre/lsd/pratica03/AdderDemo/simulation/qsim/" AdderDemo -c AdderDemo</tnetlist_cmd>
|
|
<modelsim_script>onerror {exit -code 1}
|
|
vlib work
|
|
vcom -work work AdderDemo.vho
|
|
vcom -work work Adder4.vwf.vht
|
|
vsim -c -t 1ps -L cycloneive -L altera -L altera_mf -L 220model -L sgate -L altera_lnsim work.Adder4_vhd_vec_tst
|
|
vcd file -direction AdderDemo.msim.vcd
|
|
vcd add -internal Adder4_vhd_vec_tst/*
|
|
vcd add -internal Adder4_vhd_vec_tst/i1/*
|
|
proc simTimestamp {} {
|
|
echo "Simulation time: $::now ps"
|
|
if { [string equal running [runStatus]] } {
|
|
after 2500 simTimestamp
|
|
}
|
|
}
|
|
after 2500 simTimestamp
|
|
run -all
|
|
quit -f
|
|
</modelsim_script>
|
|
<modelsim_script_timing>onerror {exit -code 1}
|
|
vlib work
|
|
vcom -work work AdderDemo.vho
|
|
vcom -work work Adder4.vwf.vht
|
|
vsim -novopt -c -t 1ps -sdfmax Adder4_vhd_vec_tst/i1=AdderDemo_vhd.sdo -L cycloneive -L altera -L altera_mf -L 220model -L sgate -L altera_lnsim work.Adder4_vhd_vec_tst
|
|
vcd file -direction AdderDemo.msim.vcd
|
|
vcd add -internal Adder4_vhd_vec_tst/*
|
|
vcd add -internal Adder4_vhd_vec_tst/i1/*
|
|
proc simTimestamp {} {
|
|
echo "Simulation time: $::now ps"
|
|
if { [string equal running [runStatus]] } {
|
|
after 2500 simTimestamp
|
|
}
|
|
}
|
|
after 2500 simTimestamp
|
|
run -all
|
|
quit -f
|
|
</modelsim_script_timing>
|
|
<hdl_lang>vhdl</hdl_lang>
|
|
</simulation_settings>*/
|
|
/*
|
|
WARNING: Do NOT edit the input and output ports in this file in a text
|
|
editor if you plan to continue editing the block that represents it in
|
|
the Block Editor! File corruption is VERY likely to occur.
|
|
*/
|
|
|
|
/*
|
|
Copyright (C) 2020 Intel Corporation. All rights reserved.
|
|
Your use of Intel Corporation's design tools, logic functions
|
|
and other software and tools, and any partner logic
|
|
functions, and any output files from any of the foregoing
|
|
(including device programming or simulation files), and any
|
|
associated documentation or information are expressly subject
|
|
to the terms and conditions of the Intel Program License
|
|
Subscription Agreement, the Intel Quartus Prime License Agreement,
|
|
the Intel FPGA IP License Agreement, or other applicable license
|
|
agreement, including, without limitation, that your use is for
|
|
the sole purpose of programming logic devices manufactured by
|
|
Intel and sold by Intel or its authorized distributors. Please
|
|
refer to the applicable agreement for further details, at
|
|
https://fpgasoftware.intel.com/eula.
|
|
*/
|
|
|
|
HEADER
|
|
{
|
|
VERSION = 1;
|
|
TIME_UNIT = ns;
|
|
DATA_OFFSET = 0.0;
|
|
DATA_DURATION = 1000.0;
|
|
SIMULATION_TIME = 0.0;
|
|
GRID_PHASE = 0.0;
|
|
GRID_PERIOD = 10.0;
|
|
GRID_DUTY_CYCLE = 50;
|
|
}
|
|
|
|
SIGNAL("a")
|
|
{
|
|
VALUE_TYPE = NINE_LEVEL_BIT;
|
|
SIGNAL_TYPE = BUS;
|
|
WIDTH = 4;
|
|
LSB_INDEX = 0;
|
|
DIRECTION = INPUT;
|
|
PARENT = "";
|
|
}
|
|
|
|
SIGNAL("a[3]")
|
|
{
|
|
VALUE_TYPE = NINE_LEVEL_BIT;
|
|
SIGNAL_TYPE = SINGLE_BIT;
|
|
WIDTH = 1;
|
|
LSB_INDEX = -1;
|
|
DIRECTION = INPUT;
|
|
PARENT = "a";
|
|
}
|
|
|
|
SIGNAL("a[2]")
|
|
{
|
|
VALUE_TYPE = NINE_LEVEL_BIT;
|
|
SIGNAL_TYPE = SINGLE_BIT;
|
|
WIDTH = 1;
|
|
LSB_INDEX = -1;
|
|
DIRECTION = INPUT;
|
|
PARENT = "a";
|
|
}
|
|
|
|
SIGNAL("a[1]")
|
|
{
|
|
VALUE_TYPE = NINE_LEVEL_BIT;
|
|
SIGNAL_TYPE = SINGLE_BIT;
|
|
WIDTH = 1;
|
|
LSB_INDEX = -1;
|
|
DIRECTION = INPUT;
|
|
PARENT = "a";
|
|
}
|
|
|
|
SIGNAL("a[0]")
|
|
{
|
|
VALUE_TYPE = NINE_LEVEL_BIT;
|
|
SIGNAL_TYPE = SINGLE_BIT;
|
|
WIDTH = 1;
|
|
LSB_INDEX = -1;
|
|
DIRECTION = INPUT;
|
|
PARENT = "a";
|
|
}
|
|
|
|
SIGNAL("b")
|
|
{
|
|
VALUE_TYPE = NINE_LEVEL_BIT;
|
|
SIGNAL_TYPE = BUS;
|
|
WIDTH = 4;
|
|
LSB_INDEX = 0;
|
|
DIRECTION = INPUT;
|
|
PARENT = "";
|
|
}
|
|
|
|
SIGNAL("b[3]")
|
|
{
|
|
VALUE_TYPE = NINE_LEVEL_BIT;
|
|
SIGNAL_TYPE = SINGLE_BIT;
|
|
WIDTH = 1;
|
|
LSB_INDEX = -1;
|
|
DIRECTION = INPUT;
|
|
PARENT = "b";
|
|
}
|
|
|
|
SIGNAL("b[2]")
|
|
{
|
|
VALUE_TYPE = NINE_LEVEL_BIT;
|
|
SIGNAL_TYPE = SINGLE_BIT;
|
|
WIDTH = 1;
|
|
LSB_INDEX = -1;
|
|
DIRECTION = INPUT;
|
|
PARENT = "b";
|
|
}
|
|
|
|
SIGNAL("b[1]")
|
|
{
|
|
VALUE_TYPE = NINE_LEVEL_BIT;
|
|
SIGNAL_TYPE = SINGLE_BIT;
|
|
WIDTH = 1;
|
|
LSB_INDEX = -1;
|
|
DIRECTION = INPUT;
|
|
PARENT = "b";
|
|
}
|
|
|
|
SIGNAL("b[0]")
|
|
{
|
|
VALUE_TYPE = NINE_LEVEL_BIT;
|
|
SIGNAL_TYPE = SINGLE_BIT;
|
|
WIDTH = 1;
|
|
LSB_INDEX = -1;
|
|
DIRECTION = INPUT;
|
|
PARENT = "b";
|
|
}
|
|
|
|
SIGNAL("cin")
|
|
{
|
|
VALUE_TYPE = NINE_LEVEL_BIT;
|
|
SIGNAL_TYPE = SINGLE_BIT;
|
|
WIDTH = 1;
|
|
LSB_INDEX = -1;
|
|
DIRECTION = INPUT;
|
|
PARENT = "";
|
|
}
|
|
|
|
SIGNAL("cout")
|
|
{
|
|
VALUE_TYPE = NINE_LEVEL_BIT;
|
|
SIGNAL_TYPE = SINGLE_BIT;
|
|
WIDTH = 1;
|
|
LSB_INDEX = -1;
|
|
DIRECTION = OUTPUT;
|
|
PARENT = "";
|
|
}
|
|
|
|
SIGNAL("s")
|
|
{
|
|
VALUE_TYPE = NINE_LEVEL_BIT;
|
|
SIGNAL_TYPE = BUS;
|
|
WIDTH = 4;
|
|
LSB_INDEX = 0;
|
|
DIRECTION = OUTPUT;
|
|
PARENT = "";
|
|
}
|
|
|
|
SIGNAL("s[3]")
|
|
{
|
|
VALUE_TYPE = NINE_LEVEL_BIT;
|
|
SIGNAL_TYPE = SINGLE_BIT;
|
|
WIDTH = 1;
|
|
LSB_INDEX = -1;
|
|
DIRECTION = OUTPUT;
|
|
PARENT = "s";
|
|
}
|
|
|
|
SIGNAL("s[2]")
|
|
{
|
|
VALUE_TYPE = NINE_LEVEL_BIT;
|
|
SIGNAL_TYPE = SINGLE_BIT;
|
|
WIDTH = 1;
|
|
LSB_INDEX = -1;
|
|
DIRECTION = OUTPUT;
|
|
PARENT = "s";
|
|
}
|
|
|
|
SIGNAL("s[1]")
|
|
{
|
|
VALUE_TYPE = NINE_LEVEL_BIT;
|
|
SIGNAL_TYPE = SINGLE_BIT;
|
|
WIDTH = 1;
|
|
LSB_INDEX = -1;
|
|
DIRECTION = OUTPUT;
|
|
PARENT = "s";
|
|
}
|
|
|
|
SIGNAL("s[0]")
|
|
{
|
|
VALUE_TYPE = NINE_LEVEL_BIT;
|
|
SIGNAL_TYPE = SINGLE_BIT;
|
|
WIDTH = 1;
|
|
LSB_INDEX = -1;
|
|
DIRECTION = OUTPUT;
|
|
PARENT = "s";
|
|
}
|
|
|
|
TRANSITION_LIST("a[3]")
|
|
{
|
|
NODE
|
|
{
|
|
REPEAT = 1;
|
|
LEVEL 1 FOR 240.0;
|
|
LEVEL 0 FOR 760.0;
|
|
}
|
|
}
|
|
|
|
TRANSITION_LIST("a[2]")
|
|
{
|
|
NODE
|
|
{
|
|
REPEAT = 1;
|
|
LEVEL 1 FOR 160.0;
|
|
LEVEL 0 FOR 840.0;
|
|
}
|
|
}
|
|
|
|
TRANSITION_LIST("a[1]")
|
|
{
|
|
NODE
|
|
{
|
|
REPEAT = 1;
|
|
LEVEL 1 FOR 240.0;
|
|
LEVEL 0 FOR 760.0;
|
|
}
|
|
}
|
|
|
|
TRANSITION_LIST("a[0]")
|
|
{
|
|
NODE
|
|
{
|
|
REPEAT = 1;
|
|
LEVEL 1 FOR 160.0;
|
|
LEVEL 0 FOR 840.0;
|
|
}
|
|
}
|
|
|
|
TRANSITION_LIST("b[3]")
|
|
{
|
|
NODE
|
|
{
|
|
REPEAT = 1;
|
|
LEVEL 1 FOR 80.0;
|
|
LEVEL 0 FOR 80.0;
|
|
LEVEL 1 FOR 80.0;
|
|
LEVEL 0 FOR 760.0;
|
|
}
|
|
}
|
|
|
|
TRANSITION_LIST("b[2]")
|
|
{
|
|
NODE
|
|
{
|
|
REPEAT = 1;
|
|
LEVEL 1 FOR 80.0;
|
|
LEVEL 0 FOR 80.0;
|
|
LEVEL 1 FOR 80.0;
|
|
LEVEL 0 FOR 760.0;
|
|
}
|
|
}
|
|
|
|
TRANSITION_LIST("b[1]")
|
|
{
|
|
NODE
|
|
{
|
|
REPEAT = 1;
|
|
LEVEL 1 FOR 80.0;
|
|
LEVEL 0 FOR 920.0;
|
|
}
|
|
}
|
|
|
|
TRANSITION_LIST("b[0]")
|
|
{
|
|
NODE
|
|
{
|
|
REPEAT = 1;
|
|
LEVEL 1 FOR 80.0;
|
|
LEVEL 0 FOR 920.0;
|
|
}
|
|
}
|
|
|
|
TRANSITION_LIST("cin")
|
|
{
|
|
NODE
|
|
{
|
|
REPEAT = 1;
|
|
LEVEL 0 FOR 80.0;
|
|
LEVEL 1 FOR 80.0;
|
|
LEVEL 0 FOR 840.0;
|
|
}
|
|
}
|
|
|
|
TRANSITION_LIST("cout")
|
|
{
|
|
NODE
|
|
{
|
|
REPEAT = 1;
|
|
LEVEL X FOR 1000.0;
|
|
}
|
|
}
|
|
|
|
TRANSITION_LIST("s[3]")
|
|
{
|
|
NODE
|
|
{
|
|
REPEAT = 1;
|
|
LEVEL X FOR 1000.0;
|
|
}
|
|
}
|
|
|
|
TRANSITION_LIST("s[2]")
|
|
{
|
|
NODE
|
|
{
|
|
REPEAT = 1;
|
|
LEVEL X FOR 1000.0;
|
|
}
|
|
}
|
|
|
|
TRANSITION_LIST("s[1]")
|
|
{
|
|
NODE
|
|
{
|
|
REPEAT = 1;
|
|
LEVEL X FOR 1000.0;
|
|
}
|
|
}
|
|
|
|
TRANSITION_LIST("s[0]")
|
|
{
|
|
NODE
|
|
{
|
|
REPEAT = 1;
|
|
LEVEL X FOR 1000.0;
|
|
}
|
|
}
|
|
|
|
DISPLAY_LINE
|
|
{
|
|
CHANNEL = "a";
|
|
EXPAND_STATUS = EXPANDED;
|
|
RADIX = Binary;
|
|
TREE_INDEX = 0;
|
|
TREE_LEVEL = 0;
|
|
CHILDREN = 1, 2, 3, 4;
|
|
}
|
|
|
|
DISPLAY_LINE
|
|
{
|
|
CHANNEL = "a[3]";
|
|
EXPAND_STATUS = COLLAPSED;
|
|
RADIX = Binary;
|
|
TREE_INDEX = 1;
|
|
TREE_LEVEL = 1;
|
|
PARENT = 0;
|
|
}
|
|
|
|
DISPLAY_LINE
|
|
{
|
|
CHANNEL = "a[2]";
|
|
EXPAND_STATUS = COLLAPSED;
|
|
RADIX = Binary;
|
|
TREE_INDEX = 2;
|
|
TREE_LEVEL = 1;
|
|
PARENT = 0;
|
|
}
|
|
|
|
DISPLAY_LINE
|
|
{
|
|
CHANNEL = "a[1]";
|
|
EXPAND_STATUS = COLLAPSED;
|
|
RADIX = Binary;
|
|
TREE_INDEX = 3;
|
|
TREE_LEVEL = 1;
|
|
PARENT = 0;
|
|
}
|
|
|
|
DISPLAY_LINE
|
|
{
|
|
CHANNEL = "a[0]";
|
|
EXPAND_STATUS = COLLAPSED;
|
|
RADIX = Binary;
|
|
TREE_INDEX = 4;
|
|
TREE_LEVEL = 1;
|
|
PARENT = 0;
|
|
}
|
|
|
|
DISPLAY_LINE
|
|
{
|
|
CHANNEL = "b";
|
|
EXPAND_STATUS = EXPANDED;
|
|
RADIX = Binary;
|
|
TREE_INDEX = 5;
|
|
TREE_LEVEL = 0;
|
|
CHILDREN = 6, 7, 8, 9;
|
|
}
|
|
|
|
DISPLAY_LINE
|
|
{
|
|
CHANNEL = "b[3]";
|
|
EXPAND_STATUS = COLLAPSED;
|
|
RADIX = Binary;
|
|
TREE_INDEX = 6;
|
|
TREE_LEVEL = 1;
|
|
PARENT = 5;
|
|
}
|
|
|
|
DISPLAY_LINE
|
|
{
|
|
CHANNEL = "b[2]";
|
|
EXPAND_STATUS = COLLAPSED;
|
|
RADIX = Binary;
|
|
TREE_INDEX = 7;
|
|
TREE_LEVEL = 1;
|
|
PARENT = 5;
|
|
}
|
|
|
|
DISPLAY_LINE
|
|
{
|
|
CHANNEL = "b[1]";
|
|
EXPAND_STATUS = COLLAPSED;
|
|
RADIX = Binary;
|
|
TREE_INDEX = 8;
|
|
TREE_LEVEL = 1;
|
|
PARENT = 5;
|
|
}
|
|
|
|
DISPLAY_LINE
|
|
{
|
|
CHANNEL = "b[0]";
|
|
EXPAND_STATUS = COLLAPSED;
|
|
RADIX = Binary;
|
|
TREE_INDEX = 9;
|
|
TREE_LEVEL = 1;
|
|
PARENT = 5;
|
|
}
|
|
|
|
DISPLAY_LINE
|
|
{
|
|
CHANNEL = "cin";
|
|
EXPAND_STATUS = COLLAPSED;
|
|
RADIX = Binary;
|
|
TREE_INDEX = 10;
|
|
TREE_LEVEL = 0;
|
|
}
|
|
|
|
DISPLAY_LINE
|
|
{
|
|
CHANNEL = "cout";
|
|
EXPAND_STATUS = COLLAPSED;
|
|
RADIX = Binary;
|
|
TREE_INDEX = 11;
|
|
TREE_LEVEL = 0;
|
|
}
|
|
|
|
DISPLAY_LINE
|
|
{
|
|
CHANNEL = "s";
|
|
EXPAND_STATUS = COLLAPSED;
|
|
RADIX = Binary;
|
|
TREE_INDEX = 12;
|
|
TREE_LEVEL = 0;
|
|
CHILDREN = 13, 14, 15, 16;
|
|
}
|
|
|
|
DISPLAY_LINE
|
|
{
|
|
CHANNEL = "s[3]";
|
|
EXPAND_STATUS = COLLAPSED;
|
|
RADIX = Binary;
|
|
TREE_INDEX = 13;
|
|
TREE_LEVEL = 1;
|
|
PARENT = 12;
|
|
}
|
|
|
|
DISPLAY_LINE
|
|
{
|
|
CHANNEL = "s[2]";
|
|
EXPAND_STATUS = COLLAPSED;
|
|
RADIX = Binary;
|
|
TREE_INDEX = 14;
|
|
TREE_LEVEL = 1;
|
|
PARENT = 12;
|
|
}
|
|
|
|
DISPLAY_LINE
|
|
{
|
|
CHANNEL = "s[1]";
|
|
EXPAND_STATUS = COLLAPSED;
|
|
RADIX = Binary;
|
|
TREE_INDEX = 15;
|
|
TREE_LEVEL = 1;
|
|
PARENT = 12;
|
|
}
|
|
|
|
DISPLAY_LINE
|
|
{
|
|
CHANNEL = "s[0]";
|
|
EXPAND_STATUS = COLLAPSED;
|
|
RADIX = Binary;
|
|
TREE_INDEX = 16;
|
|
TREE_LEVEL = 1;
|
|
PARENT = 12;
|
|
}
|
|
|
|
TIME_BAR
|
|
{
|
|
TIME = 0;
|
|
MASTER = TRUE;
|
|
}
|
|
;
|