micro_test.vhd

来自「可编程器件厂商Xilinx的用于设计SMBus 控制器的源程序」· VHDL 代码 · 共 148 行

VHD
148
字号
--***********************************************************************************************
-- micro_test.vhd
--
-- Created: 3/10/00 ALS
--	This file is the top level testbench that instantiates the VHDL component that emulates the
--	micro-controller and instantiates two SMBUS CPLD designs. One of the SMBUS CPLD designs acts as 
--	SMBUS Master, the other as the SMBUS Slave.
-- Revised: 6/27/00 ALS
--	Modified to reflect support of Hitachi SH7750 processor.
-- Revised: 7/12/00 JRH
--	Modified to include a master only device
-- Modified: 11/27/00 JRH
--	Modified to use master/slave devices:  One configured as a master, the other as a slave
--***********************************************************************************************

library IEEE;
use IEEE.std_logic_1164.all;
 

entity MICRO_TEST is
end MICRO_TEST;

architecture archMICRO_TEST of MICRO_TEST is
    signal DATA_BUS: std_logic_vector(7 downto 0);
    signal DATA_MATCH: std_logic;
    signal ADDRESS: std_logic_vector(7 downto 0);
    signal MCF: std_logic;
    signal SDA: std_logic;
    signal CLK: std_logic;
    signal SCL: std_logic;
    signal IRQ: std_logic;
    signal BS_N: std_logic;
    signal MASTER_CS_N: std_logic;
    signal SLAVE_CS_N: std_logic;
    signal RD_N: std_logic;
    signal WE_N: std_logic;
    signal RD_WRN: std_logic;
    signal MASTER_RDYN: std_logic;
    signal SLAVE_RDYN: std_logic;
    signal SLAVE_MCF: std_logic;
    signal RESET: std_logic;
    
    component MICRO_TB
        port(
             IRQ: IN STD_LOGIC;
             MCF: IN STD_LOGIC;
             MASTER_CS_N: OUT STD_LOGIC;
	     SLAVE_CS_N: OUT STD_LOGIC;
             BS_N: OUT STD_LOGIC;
             RD_N: OUT STD_LOGIC;
	     WE_N: OUT STD_LOGIC;
	     RD_WRN: OUT STD_LOGIC;
	     MASTER_RDYN: IN STD_LOGIC;
	     SLAVE_RDYN: IN STD_LOGIC;
             ADDRESS: OUT STD_LOGIC_VECTOR(7 downto 0);
             RESET: INOUT STD_LOGIC;
             CLK: INOUT STD_LOGIC;
             DATA_MATCH: OUT STD_LOGIC;
             DATA_BUS: INOUT STD_LOGIC_VECTOR(7 downto 0));
    end component;

    component SMBUS
        port(SDA: INOUT STD_LOGIC;
             SCL: INOUT STD_LOGIC;
             ADDR_BUS: IN STD_LOGIC_VECTOR(7 downto 0);
             DATA_BUS: INOUT STD_LOGIC_VECTOR(7 downto 0);
             CS_N: IN STD_LOGIC;
             BS_N: IN STD_LOGIC;
             RD_N: IN STD_LOGIC;
             WE_N: IN STD_LOGIC;
	     RD_WRN: IN STD_LOGIC;
	     RDY_N: OUT STD_LOGIC;
             IRQ: OUT STD_LOGIC;
             MCF: INOUT STD_LOGIC;
             CLK: IN STD_LOGIC;
             RESET: IN STD_LOGIC);
    end component;

    component PULLUP
        port(v101: OUT std_logic);
    end component;
    
begin
    micro: MICRO_TB
        port map(
                 IRQ => IRQ,
                 MCF => MCF,
                 MASTER_CS_N => MASTER_CS_N,
		 SLAVE_CS_N => SLAVE_CS_N,
                 BS_N => BS_N,
                 RD_N => RD_N,
		 WE_N => WE_N,
		 RD_WRN => RD_WRN,
		 MASTER_RDYN => MASTER_RDYN,
		 SLAVE_RDYN => SLAVE_RDYN,
                 ADDRESS => ADDRESS,
                 RESET => RESET,
                 CLK => CLK,
                 DATA_MATCH => DATA_MATCH,
                 DATA_BUS => DATA_BUS);
    
    MASTER: SMBUS
        port map(SDA => SDA,
                 SCL => SCL,
                 ADDR_BUS => ADDRESS,
                 DATA_BUS => DATA_BUS,
                 CS_N => MASTER_CS_N,
                 BS_N => BS_N,
                 RD_N => RD_N,
		 WE_N => WE_N,
		 RD_WRN => RD_WRN,
		 RDY_N => MASTER_RDYN,
                 IRQ => IRQ,
                 MCF => MCF,
                 CLK => CLK,
                 RESET => RESET);
    
    SLAVE: SMBUS
        port map(SDA => SDA,
                 SCL => SCL,
                 ADDR_BUS => ADDRESS,
                 DATA_BUS => DATA_BUS,
                 CS_N => SLAVE_CS_N,
                 BS_N => BS_N,
                 RD_N => RD_N,
		 WE_N => WE_N,
		 RD_WRN => RD_WRN,
		 RDY_N => SLAVE_RDYN,
                 IRQ => IRQ,
                 MCF => SLAVE_MCF,
                 CLK => CLK,
                 RESET => RESET);
    
    v109: PULLUP
        port map(v101 => SCL);
    
    v110: PULLUP
        port map(v101 => SDA);
    
    
    v112: PULLUP
        port map(v101 => IRQ);
    
    
end archMICRO_TEST;


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?