⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 i8051_all.vhd

📁 i8051 vhdl 文档
💻 VHD
字号:
---- Copyright (c) 1999-2000 Tony Givargis.  Permission to copy is granted-- provided that this header remains intact.  This software is provided-- with no warranties.---- Version : 2.8---------------------------------------------------------------------------------library IEEE;use IEEE.STD_LOGIC_1164.all;use IEEE.STD_LOGIC_ARITH.all;use WORK.I8051_LIB.all;----------------------------------------------------------------------------------- rst (active hi) : resets the 8051-- clk (rising edge) : clocks the 8051-- xrm_addr : this is the address of xram being requested-- xrm_out_data : this is the data sent to the xram-- xrm_in_data : this is the data received from the xram-- xrm_rd (active lo) : asserted to signal a xram read-- xrm_wr (active lo) : asserted to signal a xram write-- p0_in : port 0's input direction-- p0_out : port 0's output direction-- p0_in : port 1's input direction-- p0_out : port 1's output direction-- p0_in : port 2's input direction-- p0_out : port 2's output direction-- p0_in : port 3's input direction-- p0_out : port 3's output direction--entity I8051_ALL is    port(rst          : in  STD_LOGIC;         clk          : in  STD_LOGIC;         xrm_addr     : out UNSIGNED (15 downto 0);         xrm_out_data : out UNSIGNED (7 downto 0);         xrm_in_data  : in  UNSIGNED (7 downto 0);         xrm_rd       : out STD_LOGIC;         xrm_wr       : out STD_LOGIC;         p0_in        : in  UNSIGNED (7 downto 0);         p0_out       : out UNSIGNED (7 downto 0);         p1_in        : in  UNSIGNED (7 downto 0);         p1_out       : out UNSIGNED (7 downto 0);         p2_in        : in  UNSIGNED (7 downto 0);         p2_out       : out UNSIGNED (7 downto 0);         p3_in        : in  UNSIGNED (7 downto 0);         p3_out       : out UNSIGNED (7 downto 0));end I8051_ALL;-------------------------------------------------------------------------------architecture STR of I8051_ALL is    component I8051_ALU        port(rst     : in  STD_LOGIC;             op_code : in  UNSIGNED (3 downto 0);             src_1   : in  UNSIGNED (7 downto 0);             src_2   : in  UNSIGNED (7 downto 0);             src_3   : in  UNSIGNED (7 downto 0);             src_cy  : in  STD_LOGIC;             src_ac  : in  STD_LOGIC;             des_1   : out UNSIGNED (7 downto 0);             des_2   : out UNSIGNED (7 downto 0);             des_cy  : out STD_LOGIC;             des_ac  : out STD_LOGIC;             des_ov  : out STD_LOGIC);    end component;    component I8051_DEC        port(rst     : in  STD_LOGIC;             op_in   : in  UNSIGNED (7 downto 0);             op_out  : out UNSIGNED (8 downto 0));    end component;        component I8051_RAM        port(rst          : in  STD_LOGIC;             clk          : in  STD_LOGIC;             addr         : in  UNSIGNED (7 downto 0);             in_data      : in  UNSIGNED (7 downto 0);             out_data     : out UNSIGNED (7 downto 0);             in_bit_data  : in  STD_LOGIC;             out_bit_data : out STD_LOGIC;             rd           : in  STD_LOGIC;             wr           : in  STD_LOGIC;             is_bit_addr  : in  STD_LOGIC;             p0_in        : in  UNSIGNED (7 downto 0);             p0_out       : out UNSIGNED (7 downto 0);             p1_in        : in  UNSIGNED (7 downto 0);             p1_out       : out UNSIGNED (7 downto 0);             p2_in        : in  UNSIGNED (7 downto 0);             p2_out       : out UNSIGNED (7 downto 0);             p3_in        : in  UNSIGNED (7 downto 0);             p3_out       : out UNSIGNED (7 downto 0));    end component;    component I8051_ROM        port(rst      : in  STD_LOGIC;             clk      : in  STD_LOGIC;             addr     : in  UNSIGNED (11 downto 0);             data     : out UNSIGNED (7 downto 0);             rd       : in  STD_LOGIC);    end component;    component I8051_CTR        port(rst              : in  STD_LOGIC;             clk              : in  STD_LOGIC;             rom_addr         : out UNSIGNED (11 downto 0);             rom_data         : in  UNSIGNED (7 downto 0);             rom_rd           : out STD_LOGIC;             ram_addr         : out UNSIGNED (7 downto 0);             ram_out_data     : out UNSIGNED (7 downto 0);             ram_in_data      : in  UNSIGNED (7 downto 0);             ram_out_bit_data : out STD_LOGIC;             ram_in_bit_data  : in  STD_LOGIC;             ram_rd           : out STD_LOGIC;             ram_wr           : out STD_LOGIC;             ram_is_bit_addr  : out STD_LOGIC;             xrm_addr         : out UNSIGNED (15 downto 0);             xrm_out_data     : out UNSIGNED (7 downto 0);             xrm_in_data      : in  UNSIGNED (7 downto 0);             xrm_rd           : out STD_LOGIC;             xrm_wr           : out STD_LOGIC;             dec_op_out       : out UNSIGNED (7 downto 0);             dec_op_in        : in  UNSIGNED (8 downto 0);             alu_op_code      : out UNSIGNED (3 downto 0);             alu_src_1        : out UNSIGNED (7 downto 0);             alu_src_2        : out UNSIGNED (7 downto 0);             alu_src_3        : out UNSIGNED (7 downto 0);             alu_src_cy       : out STD_LOGIC;             alu_src_ac       : out STD_LOGIC;             alu_des_1        : in  UNSIGNED (7 downto 0);             alu_des_2        : in  UNSIGNED (7 downto 0);             alu_des_cy       : in  STD_LOGIC;             alu_des_ac       : in  STD_LOGIC;             alu_des_ov       : in  STD_LOGIC);    end component;        -- synopsys_synthesis off    component I8051_DBG        port(op_in   : in  UNSIGNED (8 downto 0));    end component;    -- synopsys_synthesis on        signal rom_addr         : UNSIGNED (11 downto 0);    signal rom_data         : UNSIGNED (7 downto 0);    signal rom_rd           : STD_LOGIC;    signal ram_addr         : UNSIGNED (7 downto 0);    signal ram_out_data     : UNSIGNED (7 downto 0);    signal ram_in_data      : UNSIGNED (7 downto 0);    signal ram_out_bit_data : STD_LOGIC;    signal ram_in_bit_data  : STD_LOGIC;    signal ram_rd           : STD_LOGIC;    signal ram_wr           : STD_LOGIC;    signal ram_is_bit_addr  : STD_LOGIC;    signal dec_op_out       : UNSIGNED (7 downto 0);    signal dec_op_in        : UNSIGNED (8 downto 0);    signal alu_op_code      : UNSIGNED (3 downto 0);    signal alu_src_1        : UNSIGNED (7 downto 0);    signal alu_src_2        : UNSIGNED (7 downto 0);    signal alu_src_3        : UNSIGNED (7 downto 0);    signal alu_src_cy       : STD_LOGIC;    signal alu_src_ac       : STD_LOGIC;    signal alu_des_1        : UNSIGNED (7 downto 0);    signal alu_des_2        : UNSIGNED (7 downto 0);    signal alu_des_cy       : STD_LOGIC;    signal alu_des_ac       : STD_LOGIC;    signal alu_des_ov       : STD_LOGIC;begin        U_ALU : I8051_ALU port map(rst,                               alu_op_code,                               alu_src_1,                               alu_src_2,                               alu_src_3,                               alu_src_cy,                               alu_src_ac,                               alu_des_1,                               alu_des_2,                               alu_des_cy,                               alu_des_ac,                               alu_des_ov);    U_DEC : I8051_DEC port map(rst,                               dec_op_out,                               dec_op_in);    U_RAM : I8051_RAM port map(rst,                               clk,                               ram_addr,                               ram_in_data,                               ram_out_data,                               ram_in_bit_data,                               ram_out_bit_data,                               ram_rd,                               ram_wr,                               ram_is_bit_addr,                               p0_in,                               p0_out,                               p1_in,                               p1_out,                               p2_in,                               p2_out,                               p3_in,                               p3_out);    U_ROM : I8051_ROM port map(rst,                               clk,                               rom_addr,                               rom_data,                               rom_rd);    U_CTR : I8051_CTR port map(rst,                               clk,                               rom_addr,                               rom_data,                               rom_rd,                               ram_addr,                               ram_in_data,                               ram_out_data,                               ram_in_bit_data,                               ram_out_bit_data,                               ram_rd,                               ram_wr,                               ram_is_bit_addr,                               xrm_addr,                               xrm_out_data,                               xrm_in_data,                               xrm_rd,                               xrm_wr,                               dec_op_out,                               dec_op_in,                               alu_op_code,                               alu_src_1,                               alu_src_2,                               alu_src_3,                               alu_src_cy,                               alu_src_ac,                               alu_des_1,                               alu_des_2,                               alu_des_cy,                               alu_des_ac,                               alu_des_ov);    -- synopsys_synthesis off    U_DBG : I8051_DBG port map(dec_op_in);    -- synopsys_synthesis onend STR;--------------------------------------------------------------------------------- end of file --

⌨️ 快捷键说明

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