📄 iface.vhd
字号:
------------------------------------------------------------------------------ This file is a part of the LEON VHDL model-- Copyright (C) 1999 European Space Agency (ESA)---- This library is free software; you can redistribute it and/or-- modify it under the terms of the GNU Lesser General Public-- License as published by the Free Software Foundation; either-- version 2 of the License, or (at your option) any later version.---- See the file COPYING.LGPL for the full details of the license.------------------------------------------------------------------------------- Entity: iface-- File: iface.vhd-- Author: Jiri Gaisler - ESA/ESTEC-- Description: Package with type declarations for module interconnections------------------------------------------------------------------------------ library IEEE;use IEEE.std_logic_1164.all;use work.config.all;use work.sparcv8.all;package iface issubtype clk_type is std_logic;-------------------------------------------------------------------------------- Add I/Os for custom peripherals in the records below-------------------------------------------------------------------------------- peripheral inputstype io_in_type is record piol : std_logic_vector(15 downto 0); -- I/O port inputsend record;-- peripheral outputstype io_out_type is record piol : std_logic_vector(15 downto 0); -- I/O port outputs piodir : std_logic_vector(15 downto 0); -- I/O port direction errorn : std_logic; -- CPU in error mode wdog : std_logic; -- watchdog outputend record;-------------------------------------------------------------------------------- register file inputstype rf_in_type is record rd1addr : std_logic_vector(RABITS-1 downto 0); -- read address 1 rd2addr : std_logic_vector(RABITS-1 downto 0); -- read address 2 wraddr : std_logic_vector(RABITS-1 downto 0); -- write address wrdata : std_logic_vector(RDBITS-1 downto 0); -- write data wren : std_logic; -- write enableend record;-- instruction cache diagnostic access inputstype icdiag_in_type is record addr : std_logic_vector(31 downto 0); -- memory stage address enable : std_logic; read : std_logic; tag : std_logic; flush : std_logic;end record;-- data cache controller inputstype dcache_in_type is record asi : std_logic_vector(7 downto 0); -- ASI for load/store maddress : std_logic_vector(31 downto 0); -- memory stage address eaddress : std_logic_vector(31 downto 0); -- execute stage address edata : std_logic_vector(31 downto 0); -- execute stage data size : std_logic_vector(1 downto 0); signed : std_logic; enaddr : std_logic; eenaddr : std_logic; nullify : std_logic; lock : std_logic; read : std_logic; write : std_logic; flush : std_logic;end record;-- data cache controller outputstype dcache_out_type is record data : std_logic_vector(31 downto 0); -- Data bus address mexc : std_logic; -- memory exception hold : std_logic; mds : std_logic; werr : std_logic; -- memory write error icdiag : icdiag_in_type; cache : std_logic; -- cacheable dataend record;type icache_in_type is record rpc : std_logic_vector(31 downto PCLOW); -- raw address (npc) fpc : std_logic_vector(31 downto PCLOW); -- latched address (fpc) dpc : std_logic_vector(31 downto PCLOW); -- latched address (dpc) rbranch : std_logic; -- Instruction branch fbranch : std_logic; -- Instruction branch nullify : std_logic; -- instruction nullify su : std_logic; -- super-user flush : std_logic; -- flush icacheend record;type icache_out_type is record data : std_logic_vector(31 downto 0); exception : std_logic; hold : std_logic; flush : std_logic; -- flush in progress diagrdy : std_logic; -- diagnostic access ready diagdata : std_logic_vector(31 downto 0); -- diagnostic data mds : std_logic; -- memory data strobe cache : std_logic; -- cacheable dataend record;type rf_out_type is record data1 : std_logic_vector(RDBITS-1 downto 0); -- read data 1 data2 : std_logic_vector(RDBITS-1 downto 0); -- read data 2end record;type memory_ic_in_type is record address : std_logic_vector(31 downto 0); -- memory address burst : std_logic; -- burst request req : std_logic; -- memory cycle request su : std_logic; -- supervisor address space flush : std_logic; -- flush in progressend record;type memory_ic_out_type is record data : std_logic_vector(31 downto 0); -- memory data ready : std_logic; -- cycle ready grant : std_logic; -- retry : std_logic; -- mexc : std_logic; -- memory exception burst : std_logic; -- memory burst enable ics : std_logic_vector(1 downto 0); -- icache state (from CCR) cache : std_logic; -- cacheable dataend record;type memory_dc_in_type is record address : std_logic_vector(31 downto 0); data : std_logic_vector(31 downto 0); asi : std_logic_vector(3 downto 0); size : std_logic_vector(1 downto 0); burst : std_logic; read : std_logic; req : std_logic; flush : std_logic; -- flush in progress lock : std_logic;end record;type memory_dc_out_type is record data : std_logic_vector(31 downto 0); -- memory data ready : std_logic; -- cycle ready grant : std_logic; -- retry : std_logic; -- mexc : std_logic; -- memory exception werr : std_logic; -- memory write error dcs : std_logic_vector(1 downto 0); cache : std_logic; -- cacheable dataend record;type memory_in_type is record data : std_logic_vector(31 downto 0); -- Data bus address brdyn : std_logic; bexcn : std_logic; writen : std_logic; wrn : std_logic_vector(3 downto 0);end record;type memory_out_type is record address : std_logic_vector(27 downto 0); data : std_logic_vector(31 downto 0); ramsn : std_logic_vector(3 downto 0); ramoen : std_logic_vector(3 downto 0); iosn : std_logic; romsn : std_logic_vector(1 downto 0); oen : std_logic; writen : std_logic; wrn : std_logic_vector(3 downto 0); bdrive : std_logic_vector(3 downto 0); read : std_logic;end record;type pio_in_type is record piol : std_logic_vector(15 downto 0); pioh : std_logic_vector(15 downto 0);end record;type pio_out_type is record irq : std_logic_vector(3 downto 0); piol : std_logic_vector(15 downto 0); piodir : std_logic_vector(15 downto 0); io8lsb : std_logic_vector(7 downto 0); rxd : std_logic_vector(1 downto 0); ctsn : std_logic_vector(1 downto 0);end record;type wprot_out_type is record wprothit : std_logic;end record;type ahbstat_out_type is record ahberr : std_logic;end record;type mctrl_out_type is record pioh : std_logic_vector(15 downto 0);end record;type itram_in_type is record tag : std_logic_vector(ITAG_BITS - ILINE_SIZE - 1 downto 0); valid : std_logic_vector(ILINE_SIZE -1 downto 0); enable : std_logic; write : std_logic;end record;type itram_out_type is record tag : std_logic_vector(ITAG_BITS - ILINE_SIZE -1 downto 0); valid : std_logic_vector(ILINE_SIZE -1 downto 0);end record;type idram_in_type is record address : std_logic_vector((IOFFSET_BITS + ILINE_BITS -1) downto 0); data : std_logic_vector(31 downto 0); enable : std_logic; write : std_logic;end record;type idram_out_type is record data : std_logic_vector(31 downto 0);end record;type dtram_in_type is record tag : std_logic_vector(DTAG_BITS - DLINE_SIZE - 1 downto 0); valid : std_logic_vector(DLINE_SIZE -1 downto 0); enable : std_logic; write : std_logic;end record;type dtram_out_type is record tag : std_logic_vector(DTAG_BITS - DLINE_SIZE -1 downto 0); valid : std_logic_vector(DLINE_SIZE -1 downto 0);end record;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -