📄 microoven_tbw.translate_vhw
字号:
--------------------------------------------------------------------------------
-- Copyright (c) 1995-2003 Xilinx, Inc.
-- All Right Reserved.
--------------------------------------------------------------------------------
-- ____ ____
-- / /\/ /
-- /___/ \ / Vendor: Xilinx
-- \ \ \/ Version : 7.1.04i
-- \ \ Application : ISE WebPACK
-- / / Filename : microoven_tbw.translate_vhw
-- /___/ /\ Timestamp : Tue Mar 10 15:44:53 2009
-- \ \ / \
-- \___\/\___\
--
--Command:
--Design Name: microoven_tbw
--Device: Xilinx
--
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
USE IEEE.STD_LOGIC_TEXTIO.ALL;
USE STD.TEXTIO.ALL;
ENTITY microoven_tbw IS
END microoven_tbw;
ARCHITECTURE testbench_arch OF microoven_tbw IS
COMPONENT microoven
PORT (
key0 : In std_logic;
key1 : In std_logic;
key2 : In std_logic;
key3 : In std_logic;
key4 : In std_logic;
key5 : In std_logic;
key6 : In std_logic;
key7 : In std_logic;
key8 : In std_logic;
key9 : In std_logic;
Clear : In std_logic;
Start : In std_logic;
Set : In std_logic;
Door : In std_logic;
Clk : In std_logic;
H_LED : Out std_logic;
M_LED : Out std_logic;
L_LED : Out std_logic;
a : Out std_logic;
b : Out std_logic;
c : Out std_logic;
d : Out std_logic;
e : Out std_logic;
f : Out std_logic;
g : Out std_logic
);
END COMPONENT;
SIGNAL key0 : std_logic := '0';
SIGNAL key1 : std_logic := '0';
SIGNAL key2 : std_logic := '0';
SIGNAL key3 : std_logic := '0';
SIGNAL key4 : std_logic := '0';
SIGNAL key5 : std_logic := '0';
SIGNAL key6 : std_logic := '0';
SIGNAL key7 : std_logic := '0';
SIGNAL key8 : std_logic := '0';
SIGNAL key9 : std_logic := '0';
SIGNAL Clear : std_logic := '1';
SIGNAL Start : std_logic := '1';
SIGNAL Set : std_logic := '1';
SIGNAL Door : std_logic := '1';
SIGNAL Clk : std_logic := '0';
SIGNAL H_LED : std_logic := '0';
SIGNAL M_LED : std_logic := '0';
SIGNAL L_LED : std_logic := '0';
SIGNAL a : std_logic := '0';
SIGNAL b : std_logic := '0';
SIGNAL c : std_logic := '0';
SIGNAL d : std_logic := '0';
SIGNAL e : std_logic := '0';
SIGNAL f : std_logic := '0';
SIGNAL g : std_logic := '0';
SHARED VARIABLE TX_ERROR : INTEGER := 0;
SHARED VARIABLE TX_OUT : LINE;
constant PERIOD : time := 100 ns;
constant DUTY_CYCLE : real := 0.5;
constant OFFSET : time := 0 ns;
BEGIN
UUT : microoven
PORT MAP (
key0 => key0,
key1 => key1,
key2 => key2,
key3 => key3,
key4 => key4,
key5 => key5,
key6 => key6,
key7 => key7,
key8 => key8,
key9 => key9,
Clear => Clear,
Start => Start,
Set => Set,
Door => Door,
Clk => Clk,
H_LED => H_LED,
M_LED => M_LED,
L_LED => L_LED,
a => a,
b => b,
c => c,
d => d,
e => e,
f => f,
g => g
);
PROCESS -- clock process for Clk
BEGIN
WAIT for OFFSET;
CLOCK_LOOP : LOOP
Clk <= '0';
WAIT FOR (PERIOD - (PERIOD * DUTY_CYCLE));
Clk <= '1';
WAIT FOR (PERIOD * DUTY_CYCLE);
END LOOP CLOCK_LOOP;
END PROCESS;
PROCESS
PROCEDURE CHECK_H_LED(
next_H_LED : std_logic;
TX_TIME : INTEGER
) IS
VARIABLE TX_STR : String(1 to 4096);
VARIABLE TX_LOC : LINE;
BEGIN
IF (H_LED /= next_H_LED) THEN
STD.TEXTIO.write(TX_LOC, string'("Error at time="));
STD.TEXTIO.write(TX_LOC, TX_TIME);
STD.TEXTIO.write(TX_LOC, string'("ns H_LED="));
IEEE.STD_LOGIC_TEXTIO.write(TX_LOC, H_LED);
STD.TEXTIO.write(TX_LOC, string'(", Expected = "));
IEEE.STD_LOGIC_TEXTIO.write(TX_LOC, next_H_LED);
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_L_LED(
next_L_LED : std_logic;
TX_TIME : INTEGER
) IS
VARIABLE TX_STR : String(1 to 4096);
VARIABLE TX_LOC : LINE;
BEGIN
IF (L_LED /= next_L_LED) THEN
STD.TEXTIO.write(TX_LOC, string'("Error at time="));
STD.TEXTIO.write(TX_LOC, TX_TIME);
STD.TEXTIO.write(TX_LOC, string'("ns L_LED="));
IEEE.STD_LOGIC_TEXTIO.write(TX_LOC, L_LED);
STD.TEXTIO.write(TX_LOC, string'(", Expected = "));
IEEE.STD_LOGIC_TEXTIO.write(TX_LOC, next_L_LED);
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_M_LED(
next_M_LED : std_logic;
TX_TIME : INTEGER
) IS
VARIABLE TX_STR : String(1 to 4096);
VARIABLE TX_LOC : LINE;
BEGIN
IF (M_LED /= next_M_LED) THEN
STD.TEXTIO.write(TX_LOC, string'("Error at time="));
STD.TEXTIO.write(TX_LOC, TX_TIME);
STD.TEXTIO.write(TX_LOC, string'("ns M_LED="));
IEEE.STD_LOGIC_TEXTIO.write(TX_LOC, M_LED);
STD.TEXTIO.write(TX_LOC, string'(", Expected = "));
IEEE.STD_LOGIC_TEXTIO.write(TX_LOC, next_M_LED);
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_a(
next_a : std_logic;
TX_TIME : INTEGER
) IS
VARIABLE TX_STR : String(1 to 4096);
VARIABLE TX_LOC : LINE;
BEGIN
IF (a /= next_a) THEN
STD.TEXTIO.write(TX_LOC, string'("Error at time="));
STD.TEXTIO.write(TX_LOC, TX_TIME);
STD.TEXTIO.write(TX_LOC, string'("ns a="));
IEEE.STD_LOGIC_TEXTIO.write(TX_LOC, a);
STD.TEXTIO.write(TX_LOC, string'(", Expected = "));
IEEE.STD_LOGIC_TEXTIO.write(TX_LOC, next_a);
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_b(
next_b : std_logic;
TX_TIME : INTEGER
) IS
VARIABLE TX_STR : String(1 to 4096);
VARIABLE TX_LOC : LINE;
BEGIN
IF (b /= next_b) THEN
STD.TEXTIO.write(TX_LOC, string'("Error at time="));
STD.TEXTIO.write(TX_LOC, TX_TIME);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -