📄 microoven_tbw.ant
字号:
STD.TEXTIO.Deallocate(TX_LOC);
END;
PROCEDURE ANNOTATE_c(
TX_TIME : INTEGER
) IS
VARIABLE TX_STR : String(1 to 4096);
VARIABLE TX_LOC : LINE;
BEGIN
STD.TEXTIO.write(TX_LOC, string'("Annotate["));
STD.TEXTIO.write(TX_LOC, TX_TIME);
STD.TEXTIO.write(TX_LOC, string'(", c, "));
IEEE.STD_LOGIC_TEXTIO.write(TX_LOC, c);
STD.TEXTIO.write(TX_LOC, string'("]"));
TX_STR(TX_LOC.all'range) := TX_LOC.all;
STD.TEXTIO.writeline(RESULTS, TX_LOC);
STD.TEXTIO.Deallocate(TX_LOC);
END;
PROCEDURE ANNOTATE_d(
TX_TIME : INTEGER
) IS
VARIABLE TX_STR : String(1 to 4096);
VARIABLE TX_LOC : LINE;
BEGIN
STD.TEXTIO.write(TX_LOC, string'("Annotate["));
STD.TEXTIO.write(TX_LOC, TX_TIME);
STD.TEXTIO.write(TX_LOC, string'(", d, "));
IEEE.STD_LOGIC_TEXTIO.write(TX_LOC, d);
STD.TEXTIO.write(TX_LOC, string'("]"));
TX_STR(TX_LOC.all'range) := TX_LOC.all;
STD.TEXTIO.writeline(RESULTS, TX_LOC);
STD.TEXTIO.Deallocate(TX_LOC);
END;
PROCEDURE ANNOTATE_e(
TX_TIME : INTEGER
) IS
VARIABLE TX_STR : String(1 to 4096);
VARIABLE TX_LOC : LINE;
BEGIN
STD.TEXTIO.write(TX_LOC, string'("Annotate["));
STD.TEXTIO.write(TX_LOC, TX_TIME);
STD.TEXTIO.write(TX_LOC, string'(", e, "));
IEEE.STD_LOGIC_TEXTIO.write(TX_LOC, e);
STD.TEXTIO.write(TX_LOC, string'("]"));
TX_STR(TX_LOC.all'range) := TX_LOC.all;
STD.TEXTIO.writeline(RESULTS, TX_LOC);
STD.TEXTIO.Deallocate(TX_LOC);
END;
PROCEDURE ANNOTATE_f(
TX_TIME : INTEGER
) IS
VARIABLE TX_STR : String(1 to 4096);
VARIABLE TX_LOC : LINE;
BEGIN
STD.TEXTIO.write(TX_LOC, string'("Annotate["));
STD.TEXTIO.write(TX_LOC, TX_TIME);
STD.TEXTIO.write(TX_LOC, string'(", f, "));
IEEE.STD_LOGIC_TEXTIO.write(TX_LOC, f);
STD.TEXTIO.write(TX_LOC, string'("]"));
TX_STR(TX_LOC.all'range) := TX_LOC.all;
STD.TEXTIO.writeline(RESULTS, TX_LOC);
STD.TEXTIO.Deallocate(TX_LOC);
END;
PROCEDURE ANNOTATE_g(
TX_TIME : INTEGER
) IS
VARIABLE TX_STR : String(1 to 4096);
VARIABLE TX_LOC : LINE;
BEGIN
STD.TEXTIO.write(TX_LOC, string'("Annotate["));
STD.TEXTIO.write(TX_LOC, TX_TIME);
STD.TEXTIO.write(TX_LOC, string'(", g, "));
IEEE.STD_LOGIC_TEXTIO.write(TX_LOC, g);
STD.TEXTIO.write(TX_LOC, string'("]"));
TX_STR(TX_LOC.all'range) := TX_LOC.all;
STD.TEXTIO.writeline(RESULTS, TX_LOC);
STD.TEXTIO.Deallocate(TX_LOC);
END;
BEGIN
WAIT for 1 fs;
ANNOTATE_H_LED(0);
ANNOTATE_M_LED(0);
ANNOTATE_L_LED(0);
ANNOTATE_a(0);
ANNOTATE_b(0);
ANNOTATE_c(0);
ANNOTATE_d(0);
ANNOTATE_e(0);
ANNOTATE_f(0);
ANNOTATE_g(0);
WAIT for OFFSET;
TX_TIME := TX_TIME + 0;
ANNO_LOOP : LOOP
--Rising Edge
WAIT for 60 ns;
TX_TIME := TX_TIME + 60;
ANNOTATE_H_LED(TX_TIME);
ANNOTATE_M_LED(TX_TIME);
ANNOTATE_L_LED(TX_TIME);
ANNOTATE_a(TX_TIME);
ANNOTATE_b(TX_TIME);
ANNOTATE_c(TX_TIME);
ANNOTATE_d(TX_TIME);
ANNOTATE_e(TX_TIME);
ANNOTATE_f(TX_TIME);
ANNOTATE_g(TX_TIME);
WAIT for 40 ns;
TX_TIME := TX_TIME + 40;
END LOOP ANNO_LOOP;
END PROCESS;
PROCESS
BEGIN
-- ------------- Current Time: 40ns
WAIT FOR 40 ns;
Clear <= '0';
-- -------------------------------------
-- ------------- Current Time: 140ns
WAIT FOR 100 ns;
Clear <= '1';
-- -------------------------------------
-- ------------- Current Time: 240ns
WAIT FOR 100 ns;
Set <= '0';
-- -------------------------------------
-- ------------- Current Time: 340ns
WAIT FOR 100 ns;
key9 <= '1';
-- -------------------------------------
-- ------------- Current Time: 440ns
WAIT FOR 100 ns;
key9 <= '0';
-- -------------------------------------
-- ------------- Current Time: 540ns
WAIT FOR 100 ns;
Set <= '1';
-- -------------------------------------
-- ------------- Current Time: 740ns
WAIT FOR 200 ns;
key9 <= '1';
-- -------------------------------------
-- ------------- Current Time: 840ns
WAIT FOR 100 ns;
key9 <= '0';
-- -------------------------------------
-- ------------- Current Time: 1240ns
WAIT FOR 400 ns;
key8 <= '1';
-- -------------------------------------
-- ------------- Current Time: 1340ns
WAIT FOR 100 ns;
key8 <= '0';
-- -------------------------------------
-- ------------- Current Time: 1540ns
WAIT FOR 200 ns;
Start <= '0';
-- -------------------------------------
-- ------------- Current Time: 1640ns
WAIT FOR 100 ns;
Start <= '1';
-- -------------------------------------
-- ------------- Current Time: 1940ns
WAIT FOR 300 ns;
Start <= '0';
-- -------------------------------------
-- ------------- Current Time: 2040ns
WAIT FOR 100 ns;
Start <= '1';
-- -------------------------------------
-- ------------- Current Time: 2240ns
WAIT FOR 200 ns;
Door <= '0';
-- -------------------------------------
-- ------------- Current Time: 2440ns
WAIT FOR 200 ns;
Start <= '0';
-- -------------------------------------
-- ------------- Current Time: 2540ns
WAIT FOR 100 ns;
Start <= '1';
-- -------------------------------------
-- ------------- Current Time: 2940ns
WAIT FOR 400 ns;
Start <= '0';
-- -------------------------------------
-- ------------- Current Time: 3040ns
WAIT FOR 100 ns;
Start <= '1';
-- -------------------------------------
-- ------------- Current Time: 3240ns
WAIT FOR 200 ns;
Door <= '1';
-- -------------------------------------
-- ------------- Current Time: 3340ns
WAIT FOR 100 ns;
Start <= '0';
-- -------------------------------------
-- ------------- Current Time: 3440ns
WAIT FOR 100 ns;
Start <= '1';
-- -------------------------------------
WAIT FOR 1660 ns;
STD.TEXTIO.write(TX_OUT, string'("Total[]"));
STD.TEXTIO.writeline(RESULTS, TX_OUT);
ASSERT (FALSE) REPORT
"Success! Simulation for annotation completed"
SEVERITY FAILURE;
END PROCESS;
END testbench_arch;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -