哈工大计算机组成大作业完整版

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

哈工大计算机组成大作业

哈工大计算机组成原理自主实验

计算机组成原理自主实验报告

第四章‐实验1

一个2114 存储芯片的实现

要求:外特性与2114 芯片一致(P77,图4.12),可以设计成为64*64 个存储单元的堆。

A0-A9:地址线

I/O:数据输入输出线

CS:片选信号

R/W:读写信号

VHDL代码:

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

entity shiyan41 is

PORT(clk, we, cs,reset: in STD_LOGIC;

data: inout STD_LOGIC_VECTOR(3 downto 0);

adr: in STD_LOGIC_VECTOR(9 downto 0));

end shiyan41;

architecture Behavioral of shiyan41 is

typemem is array (63 downto 0) of STD_LOGIC_VECTOR(63 downto 0); signal data_in: STD_LOGIC_VECTOR(3 downto 0);

signaldata_out: STD_LOGIC_VECTOR(3 downto 0);

signalsram : mem;

signalcs_s : std_logic;

signalwe_s : std_logic;

signaladdr_in_row: std_logic_vector(5 downto 0);

signaladdr_in_col: std_logic_vector(3 downto 0);

begin

cs_s

we_s

addr_in_row

addr_in_col

process(clk)

begin

ifclk'event and clk='1' then

if(cs_s='0' and we_s='0') then

sram(conv_integer(addr_in_row))(conv_integer(addr_in_col)) sram(conv_integer(addr_in_row))(conv_integer(addr_in_col) 16) end if;

end process;

process(clk,reset)

begin

if reset = '1' then

data_out '0');

elsifclk'event and clk='1' then

ifcs='0' and we='1' then

data_out

sram(conv_integer(addr_in_row))(conv_integer(addr_in_col) 48) &sram(conv_integer(addr_in_row))(conv_integer(addr_in_col) 32) &sram(conv_integer(addr_in_row))(conv_integer(addr_in_col) 16) &sram(conv_integer(addr_in_row))(conv_integer(addr_in_col)); end if;

end if;

end process;

data_in

data 'Z');

end Behavioral;

仿真结果:

写操作:

读操作:

仿真分析:

在进行写操作时,片选信号低电平有效,we为0,在地址000001000存入0001;在进行读操作时,片选信号低电平有效,we为1,读出地址000001000中存入的数0001.

实际框图:

第五章‐实验(5%)

简单程序中断方式接口电路的实现

要求:按照P198,图5.41 实现一个简单的程序中断方式接口电路。

VHDL代码:

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

entity shiyan5 is

Port ( start : in STD_LOGIC;

stop : in STD_LOGIC;

mask : in STD_LOGIC_VECTOR (3 downto 0);

B :inout STD_LOGIC;

D :inout STD_LOGIC;

address : out STD_LOGIC_VECTOR (3 downto 0); INTA : in STD_LOGIC;

INTR :inout STD_LOGIC_VECTOR (3 downto 0); INTP :inout STD_LOGIC_VECTOR (3 downto 0)); end shiyan5;

architecture Behavioral of shiyan5 is

begin

process(start,stop,mask)

begin

if(start='1') then

B

D

end if;

相关文档
最新文档