📄 cpu_test_bench.vhd
字号:
end if; end process; process (clk) VARIABLE write_line12 : line; begin if clk'event and clk = '1' then if std_logic'(reset_n) = '1' then if is_x(std_ulogic(i_readdatavalid)) then write(write_line12, now); write(write_line12, string'(": ")); write(write_line12, string'("ERROR: cpu_test_bench/i_readdatavalid is 'x'")); write(output, write_line12.all & CR); deallocate (write_line12); assert false report "VHDL STOP" severity failure; end if; end if; end if; end process; process (clk) VARIABLE write_line13 : line; begin if clk'event and clk = '1' then if std_logic'(reset_n) = '1' then if is_x(std_ulogic(d_write)) then write(write_line13, now); write(write_line13, string'(": ")); write(write_line13, string'("ERROR: cpu_test_bench/d_write is 'x'")); write(output, write_line13.all & CR); deallocate (write_line13); assert false report "VHDL STOP" severity failure; end if; end if; end if; end process; process (clk, reset_n) VARIABLE write_line14 : line; begin if reset_n = '0' then elsif clk'event and clk = '1' then if std_logic'(d_write) = '1' then if is_x(d_byteenable) then write(write_line14, now); write(write_line14, string'(": ")); write(write_line14, string'("ERROR: cpu_test_bench/d_byteenable is 'x'")); write(output, write_line14.all & CR); deallocate (write_line14); assert false report "VHDL STOP" severity failure; end if; end if; end if; end process; process (clk, reset_n) VARIABLE write_line15 : line; begin if reset_n = '0' then elsif clk'event and clk = '1' then if std_logic'((d_write OR d_read)) = '1' then if is_x(d_address) then write(write_line15, now); write(write_line15, string'(": ")); write(write_line15, string'("ERROR: cpu_test_bench/d_address is 'x'")); write(output, write_line15.all & CR); deallocate (write_line15); assert false report "VHDL STOP" severity failure; end if; end if; end if; end process; process (clk) VARIABLE write_line16 : line; begin if clk'event and clk = '1' then if std_logic'(reset_n) = '1' then if is_x(std_ulogic(d_read)) then write(write_line16, now); write(write_line16, string'(": ")); write(write_line16, string'("ERROR: cpu_test_bench/d_read is 'x'")); write(output, write_line16.all & CR); deallocate (write_line16); assert false report "VHDL STOP" severity failure; end if; end if; end if; end process; process is variable status : file_open_status; -- status for fopen VARIABLE write_line17 : line; VARIABLE write_line18 : line; begin -- process file_open(status, trace_handle, "cpu.tr", WRITE_MODE); write(write_line17, string'("version 2")); write(trace_handle, write_line17.all & LF); deallocate (write_line17); write(write_line18, string'("numThreads 1")); write(trace_handle, write_line18.all & LF); deallocate (write_line18); wait; -- wait forever end process; process (clk) VARIABLE write_line19 : line; begin if clk'event and clk = '1' then if std_logic'((NOT reset_n OR ((M_valid AND M_en)))) = '1' then write(write_line19, now); write(write_line19, string'(": ")); write(write_line19, to_hex_string(NOT reset_n, pad_none)); write(write_line19, string'(",")); write(write_line19, to_hex_string(M_pcb, pad_none)); write(write_line19, string'(",")); write(write_line19, to_hex_string(std_logic_vector'("00000000000000000000000000000000"), pad_none)); write(write_line19, string'(",")); write(write_line19, to_hex_string(M_op_intr, pad_none)); write(write_line19, string'(",")); write(write_line19, to_hex_string(M_op_hbreak, pad_none)); write(write_line19, string'(",")); write(write_line19, to_hex_string(M_iw, pad_none)); write(write_line19, string'(",")); write(write_line19, to_hex_string(M_wr_dst_reg, pad_none)); write(write_line19, string'(",")); write(write_line19, to_hex_string(M_dst_regnum, pad_none)); write(write_line19, string'(",")); write(write_line19, to_hex_string(internal_M_wr_data_filtered, pad_none)); write(write_line19, string'(",")); write(write_line19, to_hex_string(M_alu_result, pad_none)); write(write_line19, string'(",")); write(write_line19, to_hex_string(M_st_data, pad_none)); write(write_line19, string'(",")); write(write_line19, to_hex_string(M_mem_byte_en, pad_none)); write(write_line19, string'(",")); write(write_line19, to_hex_string(M_cmp_result, pad_none)); write(write_line19, string'(",")); write(write_line19, to_hex_string(M_target_pcb, pad_none)); write(write_line19, string'(",")); write(write_line19, to_hex_string(M_status_reg, pad_none)); write(write_line19, string'(",")); write(write_line19, to_hex_string(M_estatus_reg, pad_none)); write(write_line19, string'(",")); write(write_line19, to_hex_string(M_bstatus_reg, pad_none)); write(write_line19, string'(",")); write(write_line19, to_hex_string(M_ienable_reg, pad_none)); write(write_line19, string'(",")); write(write_line19, to_hex_string(M_ipending_reg, pad_none)); write(write_line19, string'(",")); write(write_line19, to_hex_string(std_logic_vector'("00000000000000000000000000000000"), pad_none)); write(write_line19, string'("")); write(trace_handle, write_line19.all & LF); deallocate (write_line19); end if; end if; end process; W_inst <= A_WE_StdLogicVector((((std_logic_vector'("00000000000000000000000000") & (W_iw_op(5 DOWNTO 0))) = std_logic_vector'("00000000000000000000000000000010"))), std_logic_vector'("00100000001000000111001001110011011101100011000000110010"), A_WE_StdLogicVector((((std_logic_vector'("00000000000000000000000000") & (W_iw_op(5 DOWNTO 0))) = std_logic_vector'("00000000000000000000000000010000"))), std_logic_vector'("00100000011000110110110101110000011011000111010001101001"), A_WE_StdLogicVector((((std_logic_vector'("00000000000000000000000000") & (W_iw_op(5 DOWNTO 0))) = std_logic_vector'("00000000000000000000000000010010"))), std_logic_vector'("00100000001000000111001001110011011101100011000100111000"), A_WE_StdLogicVector((((std_logic_vector'("00000000000000000000000000") & (W_iw_op(5 DOWNTO 0))) = std_logic_vector'("00000000000000000000000000000001"))), std_logic_vector'("00100000001000000111001001110011011101100011000000110001"), A_WE_StdLogicVector((((std_logic_vector'("00000000000000000000000000") & (W_iw_op(5 DOWNTO 0))) = std_logic_vector'("00000000000000000000000000011010"))), std_logic_vector'("00100000001000000111001001110011011101100011001000110110"), A_WE_StdLogicVector((((std_logic_vector'("00000000000000000000000000") & (W_iw_op(5 DOWNTO 0))) = std_logic_vector'("00000000000000000000000000101010"))), std_logic_vector'("00100000001000000111001001110011011101100011010000110010"), A_WE_StdLogicVector((((std_logic_vector'("00000000000000000000000000") & (W_iw_op(5 DOWNTO 0))) = std_logic_vector'("00000000000000000000000000100111"))), std_logic_vector'("00100000001000000110110001100100011000100110100101101111"), A_WE_StdLogicVector((((std_logic_vector'("00000000000000000000000000") & (W_iw_op(5 DOWNTO 0))) = std_logic_vector'("00000000000000000000000000000011"))), std_logic_vector'("00100000001000000010000001101100011001000110001001110101"), A_WE_StdLogicVector((((std_logic_vector'("00000000000000000000000000") & (W_iw_op(5 DOWNTO 0))) = std_logic_vector'("00000000000000000000000000110100"))), std_logic_vector'("00100000001000000010000001101111011100100110100001101001"), A_WE_StdLogicVector((((std_logic_vector'("00000000000000000000000000") & (W_iw_op(5 DOWNTO 0))) = std_logic_vector'("00000000000000000000000000011111"))), std_logic_vector'("00100000001000000111001001110011011101100011001100110001"), A_WE_StdLogicVector((((std_logic_vector'("00000000000000000000000000") & (W_iw_op(5 DOWNTO 0))) = std_logic_vector'("00000000000000000000000000001110"))), std_logic_vector'("00100000001000000010000000100000011000100110011101100101"), A_WE_StdLogicVector((((std_logic_vector'("00000000000000000000000000") & (W_iw_op(5 DOWNTO 0))) = std_logic_vector'("00000000000000000000000000000110"))), std_logic_vector'("00100000001000000010000000100000001000000110001001110010"), A_WE_StdLogicVector((((std_logic_vector'("00000000000000000000000000") & (W_iw_op(5 DOWNTO 0))) = std_logic_vector'("00000000000000000000000000101111"))), std_logic_vector'("00100000001000000110110001100100011010000110100101101111"), A_WE_StdLogicVector((((std_logic_vector'("00000000000000000000000000") & (W_iw_op(5 DOWNTO 0))) = std_logic_vector'("00000000000000000000000000101001"))), std_logic_vector'("00100000001000000111001001110011011101100011010000110001"), A_WE_StdLogicVector((((std_logic_vector'("00000000000000000000000000") & (W_iw_op(5 DOWNTO 0))) = std_logic_vector'("00000000000000000000000000010011"))), std_logic_vector'("00100000001000000111001001110011011101100011000100111001"), A_WE_StdLogicVector((((std_logic_vector'("00000000000000000000000000") & (W_iw_op(5 DOWNTO 0))) = std_logic_vector'("00000000000000000000000000110111"))), std_logic_vector'("00100000001000000110110001100100011101110110100101101111"), A_WE_StdLogicVector((((std_logic_vector'("00000000000000000000000000") & (W_iw_op(5 DOWNTO 0))) = std_logic_vector'("00000000000000000000000000011101"))), std_logic_vector'("00100000001000000111001001110011011101100011001000111001"), A_WE_StdLogicVector((((std_logic_vector'("00000000000000000000000000") & (W_iw_op(5 DOWNTO 0))) = std_logic_vector'("00000000000000000000000000111101"))), std_logic_vector'("00100000001000000111001001110011011101100011011000110001"), A_WE_StdLogicVector((((std_logic_vector'("00000000000000000000000000") & (W_iw_op(5 DOWNTO 0))) = std_logic_vector'("00000000000000000000000000000101"))), std_logic_vector'("00100000001000000010000000100000011100110111010001100010"), A_WE_StdLogicVector((((std_logic_vector'("00000000000000000000000000") & (W_iw_op(5 DOWNTO 0))) = std_logic_vector'("00000000000000000000000000111110"))), std_logic_vector'("00100000001000000111001001110011011101100011011000110010"), A_WE_StdLogicVector((((std_logic_vector'("00000000000000000000000000") & (W_iw_op(5 DOWNTO 0))) = std_logic_vector'("00000000000000000000000000110110"))), std_logic_vector'("00100000001000000010000001100010011011000111010001110101"), A_WE_StdLogicVector((((std_logic_vector'("00000000000000000000000000") & (W_iw_op(5 DOWNTO 0))) = std_logic_vector'("00000000000000000000000000110010"))), std_logic_vector'("00100000011000110111010101110011011101000110111101101101"), A_WE_StdLogicVector((((std_logic_vector'("00000000000000000000000000") & (W_iw_op(5 DOWNTO 0))) = std_logic_vector'("00000000000000000000000000100100"))), std_logic_vector'("00100000001000000010000001101101011101010110110001101001"), A_WE_StdLogicVector((((std_logic_vector'("00000000000000000000000000") & (W_iw_op(5 DOWNTO 0))) = std_logic_vector'("00000000000000000000000000011100"))), std_logic_vector'("00100000001000000010000001111000011011110111001001101001"), A_WE_StdLogicVector((((std_logic_vector'("00000000000000000000000000") & (W_iw_op(5 DOWNTO 0))) = std_logic_vector'("00000000000000000000000000001000"))), std_logic_vector'("00100000011000110110110101110000011001110110010101101001"), A_WE_StdLogicVector((((std_logic_vector'("00000000000000000000000000") & (W_iw_op(5 DOWNTO 0))) = std_logic_vector'("00000000000000000000000000010111"))), std_logic_vector'("00100000001000000010000000100000011011000110010001110111"), A_WE_StdLogicVector((((std_logic_vector'("00000000000000000000000000") & (W_iw_op(5 DOWNTO 0))) = std_logic_vector'("00000000000000000000000000100000"))), std_logic_vector'("00100000011000110110110101110000011001010111000101101001"), A_WE_StdLogicVector((((std_logic_vector'("00000000000000000000000000") & (W_iw_op(5 DOWNTO 0))) = std_logic_vector'("00000000000000000000000000001111"))), std_logic_vector'("00100000001000000010000000100000011011000110010001101000"), A_WE_StdLogicVector((((std_logic_vector'("00000000000000000000000000") & (W_iw_op(5 DOWNTO 0))) = std_logic_vector'("00000000000000000000000000010101"))), std_logic_vector'("00100000001000000010000000100000011100110111010001110111"), A_WE_StdLogicVector((((std_logic_vector'("00000000000000000000000000") & (W_iw_op(5 DOWNTO 0))) = std_logic_vector'("00000000000000000000000000001001"))), std_logic_vector'("00100000001000000111001001110011011101100011000000111001"), A_WE_StdLogicVector((((std_logic_vector'("00000000000000000000000000") & (W_iw_op(5 DOWNTO 0))) = std_logic_vector'("00000000000000000000000000011000"))), std_logic_vector'("00100000011000110110110101110000011011100110010101101001"), A_WE_StdLogicVector((((std_logic_vector'("00000000000000000000000000") & (W_iw_op(5 DOWNTO 0))) = std_logic_vector'("00000000000000000000000000000111"))), std_logic_vector'("00100000001000000010000000100000011011000110010001100010"), A_WE_StdLogicVector((((std_logic_vector'("00000000000000000000000000") & (W_iw_op(5 DOWNTO 0))) = std_logic_vector'("00000000000000000000000000101110"))), std_logic_vector'("00100000001000000010000001100010011001110110010101110101"), A_WE_StdLogicVector((((std_logic_vector'("00000000000000000000000000") & (W_iw_op(5 DOWNTO 0))) = std_logic_vector'("00000000000000000000000000110101"))), std_logic_vector'("00100000001000000111001101110100011101110110100101101111"), A_WE_StdLogicVector((((std_logic_vector'("00000000000000000000000000") & (W_iw_op(5 DOWNTO 0))) = std_logic_vector'("00000000000000000000000000100001"))), std_logic_vector'("00100000001000000111001001110011011101100011001100110011"), A_WE_StdLogicVector((((std_logic_vector'("00000000000000000000000000") & (W_iw_op(5 DOWNTO 0))) = std_logic_vector'("00000000000000000000000000101100"))), std_logic_vector'("0010000000100000011000010110111001100100011010000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -