📄 microoven_tbw.translate_vhw
字号:
STD.TEXTIO.write(TX_LOC, string'("ns b="));
IEEE.STD_LOGIC_TEXTIO.write(TX_LOC, b);
STD.TEXTIO.write(TX_LOC, string'(", Expected = "));
IEEE.STD_LOGIC_TEXTIO.write(TX_LOC, next_b);
STD.TEXTIO.write(TX_LOC, string'(" "));
TX_STR(TX_LOC.all'range) := TX_LOC.all;
STD.TEXTIO.Deallocate(TX_LOC);
ASSERT (FALSE) REPORT TX_STR SEVERITY ERROR;
TX_ERROR := TX_ERROR + 1;
END IF;
END;
PROCEDURE CHECK_c(
next_c : std_logic;
TX_TIME : INTEGER
) IS
VARIABLE TX_STR : String(1 to 4096);
VARIABLE TX_LOC : LINE;
BEGIN
IF (c /= next_c) THEN
STD.TEXTIO.write(TX_LOC, string'("Error at time="));
STD.TEXTIO.write(TX_LOC, TX_TIME);
STD.TEXTIO.write(TX_LOC, string'("ns c="));
IEEE.STD_LOGIC_TEXTIO.write(TX_LOC, c);
STD.TEXTIO.write(TX_LOC, string'(", Expected = "));
IEEE.STD_LOGIC_TEXTIO.write(TX_LOC, next_c);
STD.TEXTIO.write(TX_LOC, string'(" "));
TX_STR(TX_LOC.all'range) := TX_LOC.all;
STD.TEXTIO.Deallocate(TX_LOC);
ASSERT (FALSE) REPORT TX_STR SEVERITY ERROR;
TX_ERROR := TX_ERROR + 1;
END IF;
END;
PROCEDURE CHECK_d(
next_d : std_logic;
TX_TIME : INTEGER
) IS
VARIABLE TX_STR : String(1 to 4096);
VARIABLE TX_LOC : LINE;
BEGIN
IF (d /= next_d) THEN
STD.TEXTIO.write(TX_LOC, string'("Error at time="));
STD.TEXTIO.write(TX_LOC, TX_TIME);
STD.TEXTIO.write(TX_LOC, string'("ns d="));
IEEE.STD_LOGIC_TEXTIO.write(TX_LOC, d);
STD.TEXTIO.write(TX_LOC, string'(", Expected = "));
IEEE.STD_LOGIC_TEXTIO.write(TX_LOC, next_d);
STD.TEXTIO.write(TX_LOC, string'(" "));
TX_STR(TX_LOC.all'range) := TX_LOC.all;
STD.TEXTIO.Deallocate(TX_LOC);
ASSERT (FALSE) REPORT TX_STR SEVERITY ERROR;
TX_ERROR := TX_ERROR + 1;
END IF;
END;
PROCEDURE CHECK_e(
next_e : std_logic;
TX_TIME : INTEGER
) IS
VARIABLE TX_STR : String(1 to 4096);
VARIABLE TX_LOC : LINE;
BEGIN
IF (e /= next_e) THEN
STD.TEXTIO.write(TX_LOC, string'("Error at time="));
STD.TEXTIO.write(TX_LOC, TX_TIME);
STD.TEXTIO.write(TX_LOC, string'("ns e="));
IEEE.STD_LOGIC_TEXTIO.write(TX_LOC, e);
STD.TEXTIO.write(TX_LOC, string'(", Expected = "));
IEEE.STD_LOGIC_TEXTIO.write(TX_LOC, next_e);
STD.TEXTIO.write(TX_LOC, string'(" "));
TX_STR(TX_LOC.all'range) := TX_LOC.all;
STD.TEXTIO.Deallocate(TX_LOC);
ASSERT (FALSE) REPORT TX_STR SEVERITY ERROR;
TX_ERROR := TX_ERROR + 1;
END IF;
END;
PROCEDURE CHECK_f(
next_f : std_logic;
TX_TIME : INTEGER
) IS
VARIABLE TX_STR : String(1 to 4096);
VARIABLE TX_LOC : LINE;
BEGIN
IF (f /= next_f) THEN
STD.TEXTIO.write(TX_LOC, string'("Error at time="));
STD.TEXTIO.write(TX_LOC, TX_TIME);
STD.TEXTIO.write(TX_LOC, string'("ns f="));
IEEE.STD_LOGIC_TEXTIO.write(TX_LOC, f);
STD.TEXTIO.write(TX_LOC, string'(", Expected = "));
IEEE.STD_LOGIC_TEXTIO.write(TX_LOC, next_f);
STD.TEXTIO.write(TX_LOC, string'(" "));
TX_STR(TX_LOC.all'range) := TX_LOC.all;
STD.TEXTIO.Deallocate(TX_LOC);
ASSERT (FALSE) REPORT TX_STR SEVERITY ERROR;
TX_ERROR := TX_ERROR + 1;
END IF;
END;
PROCEDURE CHECK_g(
next_g : std_logic;
TX_TIME : INTEGER
) IS
VARIABLE TX_STR : String(1 to 4096);
VARIABLE TX_LOC : LINE;
BEGIN
IF (g /= next_g) THEN
STD.TEXTIO.write(TX_LOC, string'("Error at time="));
STD.TEXTIO.write(TX_LOC, TX_TIME);
STD.TEXTIO.write(TX_LOC, string'("ns g="));
IEEE.STD_LOGIC_TEXTIO.write(TX_LOC, g);
STD.TEXTIO.write(TX_LOC, string'(", Expected = "));
IEEE.STD_LOGIC_TEXTIO.write(TX_LOC, next_g);
STD.TEXTIO.write(TX_LOC, string'(" "));
TX_STR(TX_LOC.all'range) := TX_LOC.all;
STD.TEXTIO.Deallocate(TX_LOC);
ASSERT (FALSE) REPORT TX_STR SEVERITY ERROR;
TX_ERROR := TX_ERROR + 1;
END IF;
END;
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: 1560ns
WAIT FOR 20 ns;
CHECK_f('1', 1560);
-- -------------------------------------
-- ------------- Current Time: 1640ns
WAIT FOR 80 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;
IF (TX_ERROR = 0) THEN
STD.TEXTIO.write(TX_OUT, string'("No errors or warnings"));
ASSERT (FALSE) REPORT
"Simulation successful (not a failure). No problems detected."
SEVERITY FAILURE;
ELSE
STD.TEXTIO.write(TX_OUT, TX_ERROR);
STD.TEXTIO.write(TX_OUT,
string'(" errors found in simulation"));
ASSERT (FALSE) REPORT "Errors found during simulation"
SEVERITY FAILURE;
END IF;
END PROCESS;
END testbench_arch;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -