post sim: simulation verhaelt sich leider nicht wie gewuenscht
nachdem ich schon den ganzen nachmittag verschissen hab, die postlayout simulation zum laufen zu
kriegen, hier mal eine zusammenfassung meiner erkenntnisse:
* quartus erstellt simulationsdaten (wenn das tcl-skript verwendet wird) fuer modelsim im
verzeichnis ~hwmod/quartus/calc/simulation/modelsim
* modelsim starten
* change directory (z.b. ~hwmod/sim/post)
* File -> New -> Lib
* Compile -> Compile und folgende files kompilieren
o ~hwmod/quartus/calc/simulation/modelsim/calc.vho
o ~hwmod/src/gen_pkg.vhd
o ~hwmod/src/alu_tb_post.vhd
* Simulate -> Start Simulation
o in den tab "SDF" wechseln und die datei ~hwmod/quartus/calc/simulation/modelsim/calc_vhd.sdo
waehlen und in das feld "apply to region" "/bla" eingeben ("bla" ist dabei die instanz in der
testbench)
o nun unter dem tab "Design" work -> alu_tb -> sim und die testbench waehlen und die simulation
starten
das groesste problem war dabei, dass die entity in der calc.vho zu folgende wird:
> ENTITY alu IS
> PORT (
> sys_clk : IN std_logic;
> sys_res_n : IN std_logic;
> \opcode.NOP\ : IN std_logic;
> \opcode.SUB\ : IN std_logic;
> \opcode.ADD\ : IN std_logic;
> \opcode.MUL\ : IN std_logic;
> \opcode.DIV\ : IN std_logic;
> \opcode.DONE\ : IN std_logic;
> op1 : IN std_logic_vector(31 DOWNTO 0);
> op2 : IN std_logic_vector(31 DOWNTO 0);
> op3 : OUT std_logic_vector(31 DOWNTO 0);
> do_calc : IN std_logic;
> calc_done : OUT std_logic
> );
> END alu;
statt wie original:
> package gen_pkg is
> type alu_ops is (NOP, SUB, ADD, MUL, DIV, DONE);
> constant CBITS : integer := 32;
> subtype csigned is signed((CBITS-1) downto 0);
> end package gen_pkg;
>
> entity alu is
> port
> (
> sys_clk : in std_logic;
> sys_res_n : in std_logic;
> opcode : in alu_ops;
> op1 : in csigned;
> op2 : in csigned;
> op3 : out csigned;
> do_calc : in std_logic;
> calc_done : out std_logic
> );
> end entity alu;
das hat die folge dass man die testbench der beh-sim nicht verwenden kann UND dass ein ewig lange
fehlerliste kommt, wodurch es schwer war, festzustellen worin die fehlerursache ueberhaupt nun liegt.
es ist auch nicht besonders praktisch wie sich die entity defintion entartet... trotzdem hab ich mal
die testbench der beh-sim dafuer angepasst. die simulation dazu verhaelt sich leider nicht
gewuenscht, und ich hab im moment auch keine ahnung woran das liegen koennte :/