null第三章第三章硬件描述语言VHDL3.1 引言3.1 引言VHDL的特点:
1.支持多种
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
方法和技术。
2.与工艺技术独立。
3. 多层次描述能力。
4.
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
化,易于共享和复用。
VHDL程序的构件
实体 结构体 程序包 配置 库
VHDL的版本:IEEE STD 1076.1987[LRM87]
IEEE STD 1076.1993[LRM93]
3.2 VHDL的基础知识3.2 VHDL的基础知识3.2.1 VHDL程序的结构
8位计数器
ENTITY counter IS
PORT( data_in: IN INTEGER
RANGE 0 TO 255;
clk,ena,load,clear: IN
STD_LOGIC;
Count_out: OUT
INTEGER RANGE
0 TO 255);
END counter; LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164
.ALL;
USE IEEE.STD_LOGIC_ARITH
.ALL;
USE IEEE.STD_LOGIC
_UNSIGNED.ALL; 8位计数器的功能描述:
ARCHITECTURE behav_count OF counter IS
SIGNAL counter_data: INTEGER RANGE 0 TO 255;
BEGIN
PROCESS( clk,clear,load )
BEGIN
IF ( clear =‘0’ ) THEN counter_data=0;
ELSIF ( clk ‘EVENT AND clk=‘1’ ) THEN
IF ( load=‘1’ ) THEN counter_data <=data_in;
ELSE
IF ( ena=‘1’) THEN
IF counter_data=255 THEN counter_data<=0;
ELSE counter_data<=counter_data+1;
ENDIF;
ELSE
counter_data<=counter_data;
ENDIF;
ENDIF;
ENDIF;
END PROCESS;
count_out<=counter_data;
END behav_count;8位计数器的功能描述:
ARCHITECTURE behav_count OF counter IS
SIGNAL counter_data: INTEGER RANGE 0 TO 255;
BEGIN
PROCESS( clk,clear,load )
BEGIN
IF ( clear =‘0’ ) THEN counter_data=0;
ELSIF ( clk ‘EVENT AND clk=‘1’ ) THEN
IF ( load=‘1’ ) THEN counter_data <=data_in;
ELSE
IF ( ena=‘1’) THEN
IF counter_data=255 THEN counter_data<=0;
ELSE counter_data<=counter_data+1;
ENDIF;
ELSE
counter_data<=counter_data;
ENDIF;
ENDIF;
ENDIF;
END PROCESS;
count_out<=counter_data;
END behav_count;进
程结
构
体
1.实体( ENTITY) 说明
1.实体( ENTITY) 说明
ENTITY 实体名 IS [GENERIC ( 类属
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
) ;] [PORT ( 端口表 ) ;] [实体说明部分 ;] [BEGIN
实体语句部分 ;] END 实体名 ; 类属说明
GENERIC ( 端口名{,端口名}:类型名[:=初始值]
{端口名{,端口名}:类型名[:=初始值]});例
GENERIC ( m :TIME :=3ns);
(2) 端口说明(2) 端口说明
PORT ( 端口名{,端口名} : 方向 数据类型;
:
:
端口名{,端口名} : 方向 数据类型 );
端口方向
实
体INOUTINOUTBUFFERLINKAGE 2 结构体 (ARCHITECTURE) 2 结构体 (ARCHITECTURE)ARCHITECTURE 结构体名 OF 实体名 IS
[定义语句]
BEGIN
[并行处理语句]
END 结构体名;
3 库 (LIBRARY)3 库 (LIBRARY)
设
计
库IEEE库预定义库
(隐含打开)STD库STANDARD(隐含说明)
TEXTIO(用UES说明)WORK库资 源 库
(用LIBRARY)其它库STD_LOGIC_1164
STD_LOGIC_ARITH
STD_LOGIC_UNSIGNED
NUMERIC_STD
NUMERIC_BIT
MATH_REAL
MATH_COMPLEX
VITAL_TIMING
VITAL_PRIMITIVE 4. 程序包 (PACKAGE) 4. 程序包 (PACKAGE)PACKAGE 程序包名 IS
[说明语句]
END [PACKAGE] [程序包名];
PACKAGE BODY 程序包名 IS
[说明语句]
END [PACKAGE BODY] [程序包名];
程序包
说 明程
序
包
体程序包设计举例1程序包设计举例1 LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
PACKAGE upac IS
CONSTANT k : INTEGER := 4;
TYPE instruction IS ( add, sub, adc, inc,
srf, slf , mov );
SUBTYPE cpu_bus IS STD_LOGIC_VECTOR
( k-1 DOWNTO 0 );
END upac; 程序包体的应用程序包体的应用PACKAGE example IS
CONSTANT pi : REAL := 3.1415926;
CONSTANT defer : INTEGER;
FUNCTION mean (a, b, c : REAL) RETURN REAL;
COMPONENT and IS
GENERIC ( tpd1, tpd2 : TIME := 3ns);
PORT ( in1, in2 :IN BIT;y:OUT BIT );
END COMPONENT and;
END example; PACKAGE BODY example IS
CONSTANT defer : INTEGER := 5;
FUNCTION mean ( a, b, c : REAL ) RETURN REAL IS
BEGIN
RETURN ( a+b+c)/3.0;
END FUNCTION mean;
END PACKAGE BODY example; 3.2.2 VHDL常用资源库中的程序包 3.2.2 VHDL常用资源库中的程序包 1.STANDARDD程序包
2. TEXTIO程序包
3.STD_LOGIC_1164程序包
4.NUMERICSTD和NUMERIC_BIT程序包
5.VITAL_TIMING和VITAL_PRIMITIVE程序包
6.MATH_REAL和MATH_COMPLEX
程序包 STDI
E
E
E
3.2.4 数据对象和类型 3.2.4 数据对象和类型 1.对象 常量( CONSTANT )
变量( VARIABLE )
信号( SIGNAL )
文件(FILE)
(1)常量
CONSTANT 常量名:数据类型∶= 标达式;
例如: CONSTANT Vcc : REAL ∶=5.0;
(2)变量
VARIABLE 变量名:数据类型 约束条件∶= 表达式;
例: VARIABLE x: STD_LOGIC ∶=’0’;
VARIABLE a, b : INTEGER ;
(3)信号(3)信号SIGNAL 信号名:数据类型 约束条件∶= 表达式;
例如: SIGNAL clk : BIT∶= ‘0’ ;
除了基本信号之外,信号也用于表示不同宽度的总线,例如:
SIGNAL bus_a : STD_LOGIC_VECTOR
( 7 DOWNTO 0 );
SIGNAL bus_b : STD_LOGIC_VECTOR
( 0 DOWNTO 7 );
信号在说明语句中用赋值号“:= ”赋初始值 ,
信号量用代入语句赋值,并可延时, 信号量的代入:
y <= a AND b;
在VHDL语言中,信号是全局量。
2. VHDL语言的数据类型 2. VHDL语言的数据类型 VHDL语言所定义的标准数据类型有10个:
整型(INTEGER),
实型(REAL),
位(BIT),
位矢量(BIT_VECTOR),
布尔量(BOOLEAN),
字符(CHARACTER),
时间类型(TIME),
错误等级(SEVERITY LEVEL),
自然数(NATURAL)、正整数(POSITIVE),
字符串(STRING)。
属于用户自定义的数据类型有: 属于用户自定义的数据类型有: 枚举类型(ENUMERATED),
整型(INTEGER),
实型(REAL),
数组(ARRAY),
存取类型(ACCESS),
文件类型(FILE),
记录类型(RECODE),
时间类型(TIME)。
(1) 标准定义的数据类型 (1) 标准定义的数据类型 整数类型 1,-2
实数类型 1.2, 1.2E+3
位 ‘0’, ‘1’
位矢量 “001100”,X“00BE”
布尔量 真(TRUE), 假(FALSE)
字符 字符是用单引号括起来的字母或符号,字符区分大小写,‘A’、’a’、‘B’、’b’都是不同的字符。
字符串 字符串是由双引号括起来的一个字符序列。例如:“COUNTER”、“8bit_bus”等。
时间类型 55 sec;2 min 。
在STANDARD程序包中给出的时间预定义单位为:
fs , ps, ns, μs, ms, sec, min, hr 。
null错误等级
错误等级在仿真时用于表示系统工作的状态。错误等级分为四钟:NOTE(注意)、WARING(警告)、ERROR(错误)和FAILURE(失败)。
自然数(NATURAL)和正整数(POSITIVE)
(2)用户定义的数据类型
TYPE 数据类型名{,数据类型名} 数据类型定义;
枚举类型
TYPE 数据类型名 IS (元素,元素,……);
例如: TYPE instruction IS (add, sub, inc, srl, srf,
mov,dec,);
整数类型和实数类型
TYPE digit IS INTEGER RANGE 0 TO 9;
数组
TYPE 数组名 IS ARRAY [下标约束] OF 数组元素
的类型名;
TYPE word8 IS ARRAY (1 TO 8 ) OF BIT;
TYPE word8 IS ARRAY ( INTEGER RANGE 1 TO 8 ) OF BIT;
TYPE word8 IS ARRAY (INTEGER RANGE <>) OF
STD_LOGIC; --无界数组
TYPE RAM IS ARRAY (1 TO 8, 1 TO 10 ) OF BIT ; --二维数组
TYPE instruction IS ( add, sub, inc, dec , srl, srf, mov, xfr );
TYPE insflag IS ARRAY (instruction add TO srf ) OF
STD_LOGIC ;
多维数组仅用于仿真生成硬件的抽象模型,而不能用于逻辑综合。
null时间类型 (物理类型)
TYPE 数据类型名 IS 范围
UNITS 基本单位;
单位;
END UNITS;
例如:
TYPE time IS RANGE –1E18 TO 1E18
UNITS fs ;
ps =1000 fs ;
ns =1000 ps ;
us =1000 ns ;
ms =1000 us ;
sec =1000 ms ;
min =60 sec ;
hr =60 min ;
END UNITS;
物理量的定义应用物理量的定义应用TYPE capacitor IS RANGE 0 TO 1E18
UNITS fF ;
pF =1000 fF ;
nF =1000 pF ;
uF =1000 nF ;
mF =1000 uF ;
F =1000 mF ;
END UNITS;
记录 记录 记录是由不同类型的数据集合在一起形成的数据类型,
TYPE 数据类型名 IS RECODE
元素名:数据类型;
元素名:数据类型;
∶
END RECODE;
记录经常用于描述总线和通讯
协议
离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载
。例如:
TYPE PCI_bus IS RECODE
Addr : STD_LOGIC_VECTOR (31 DOWNTO 0 ) ;
Data : STD_LOGIC_VECTOR ( 31 DOWNTO 0 ) ;
R0 : INTEGER ;
Inst : instruction ;
END RECODE ; 文件类型 文件类型 文件类型是在系统环境中定义为代表文件的一类客体。其说明格式为:
TYPE 文件类型名 IS FILE 限制;
例如: TYPE text IS FILE OF string ;
在TEXTIO中有两个预定义的标准文本文件:
FILE input : text OPEN read_mode IS
“STD_INPUT”;
FILE output : text OPEN write_mode IS
“STD_OUTPUT”;
存取类型 存取类型 存取类型用于为客体之间建立联系,或者给新对象分配或释放存储空间。其说明格式为:
TYPE 数据类型名 IS ACCESS 限制;
例如,在TEXTIO程序包中定义了一个存取类型的量:
TYPE line IS ACCESS string ;
(3) 用户定义的子类型 (3) 用户定义的子类型 用户定义的子类型是用户对已定义的数据类型,作一些范围限制而形成的一种新的数据类型。子类型的名称通常采用用户容易理解的名字。子类型定义的一般格式为:
SUBTYPE 子类型名 IS 数据类型名[范围];
例如,在“STD_LOGIC_VECTOR”基础上形成的子类:
SUBTYPE iobus IS STD_LOGIC_VECTOR ( 7
DOWNTO 0 );
SUBTYPE digit IS INTEGER RANGE 0 TO 9 ;
通常,用户定义的数据类型和子类型都放在程序包中定义,然后通过USE语句调用。
(4) 数据类型的转换
(5) IEEE标准数据类型“STD_LOGIC”和
“STD_LOGIC_VECTOR” (4) 数据类型的转换
(5) IEEE标准数据类型“STD_LOGIC”和
“STD_LOGIC_VECTOR” 数字系统中的逻辑值有: ‘0’ 、‘1’和‘X’;
数字系统中的逻辑强度:强强度F、电阻强度R、弱电阻强度W、高阻强度Z。
y<=a;
y<=b;逻辑强度逻辑强度
“IEEE.STD_LOGIC”九态数值模型如下:
‘U’——初始值; ‘X’—— 不定态;
‘1’—— 逻辑1; ‘0’—— 逻辑0;
‘Z’—— 高阻态; ‘W’—— 弱信号不定;
‘L’—— 弱信号0 ‘H’—— 弱信号1;
‘—’——不可能情况 。 3.3 VHDL结构体的描述方式3.3 VHDL结构体的描述方式
结构体说明
信号说明,类型说明,元件说明,常量
说明和子程说明 BEGIN
并行语句 块语句
并行语句集合元件例化
产生另一个实体的元件例化信号赋值语句过程调用语句
调用预定义的算法进程语句
定义一个算法结构体结构体的
描述方式
行为描述
RTL描述
结构化描述3.3.1 结构体的行为描述 3.3.1 结构体的行为描述 所谓结构体的行为描述(Behavioral Descriptions),即对设计实体按算法的路径进行描述。行为描述往往不涉及设计实体的电路结构,是设计实体整体功能的一种抽象描述。在行为描述方式的程序中,往往大量采用算术运算、关系运算、惯性延时、传输延时等难以进行逻辑综合和不能进行逻辑综合的VHDL语句。采用行为描述的VHDL程序主要用于系统数学模型的仿真或系统工作原理的仿真,少数也可以用于综合。 8位比较器结构体的行为描述 8位比较器结构体的行为描述 LIBRARY IEEE ;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY comparator IS
PORT ( a, b : IN STD_LOGIC_VECTOR ( 7 DOWNTO 0 );
c : OUT STD_LOGIC) ;
END comparator ;
ARCHITECTURE behavior OF comparator IS
BEGIN
PROCESS ( a, b )
BEGIN
IF a = b THEN c<=’1’ ;
ELSE c<=’0’;
END IF;
END PROCESS;
END behavior ;
3.3.2 结构体的RTL描述 3.3.2 结构体的RTL描述 RTL(Regesist Transform Leval)描述,即寄存器传输级描述,有的文献称为数据流描述。RTL描述是用于逻辑综合的实体描述方法,与行为描述不同,RTL描述中指定了各个寄存器的时钟,确定了存储单元的复用结构及总线,指定了电路元件之间的连接关系。RTL数据模型描述的语句与实际寄存器的结构模型之间存在直接的映射关系,程序的描述隐含了电路结构。在RTL描述中,信号代表了硬件中数据的实际移动方向以及电路的互连关系。由于RTL描述用于逻辑综合,故RTL描述对语句有严格限制,一些难以综合的语句(如信号代入中的延时等)、一些抽象的数据类型(如实数、记录、文件等)和一些难以综合或不可综合的运算符(如除法/、乘方**等),都不能在程序中使用。8位比较器的布尔方程RTL描述。 8位比较器的布尔方程RTL描述。 LIBRARY IEEE ;
USE IEEE.STD_LOGIC_1164.ALL ;
ENTITY comparator IS
PORT ( a, b : IN STD_LOGIC_VECTOR
( 7 DOWNTO 0 ) ;
c : OUT STD_LOGIC ) ;
END comparator ;
ARCHITECTURE rtl OF comparator IS
BEGIN
8位比较器的布尔方程RTL描述的逻辑电路8位比较器的布尔方程RTL描述的逻辑电路nullc<= NOT( a (0) XOR b(0)) AND NOT (a (1) XOR b (1))
AND NOT (a(2) XOR b(2)) AND NOT (a(3)XOR b(3))
AND NOT (a(4) XOR b(4)) AND NOT (a(5) XOR b(5))
AND NOT (a(6) XOR b(6)) AND NOT (a(7)XOR b(7)) ;
END rtl ;
RTL描述的限制
1.为了保证逻电路的正确,应对不定态“X”状态有所限制;
2. 禁止在一个进程中存在两个寄存器描述;寄存器描述中必须代入信号值;
3. 关联性强的信号应放在一个进程中;
4.避免使用WAIT FOR xx ns 或AFTER xx ns类语句;
3.3.3 结构体的结构化描述 3.3.3 结构体的结构化描述 结构化描述是常用的层次化设计方法。对于一个复杂的电子系统,可将其分解成若干个子系统,子系统再可以进一步分解成若干个模块。层次化设计便于多人协作,同时并行设计。在结构化设计中,每个设计层次可以作为一个元件,而无需考虑元件的复杂性。每个元件可以分别仿真,然后将各个元件组合起来构成系统,进行整体调试。
结构化描述的系统功能体现在所调用的元件功能及相互间的互连关系中。 8位比较器结构体的结构化描述 8位比较器结构体的结构化描述 LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY comparator IS
PORT ( a,b: IN STD_LOGIC_VECTOR
( 7 DOWNTO 0 );
c: OUT STD_LOGIC );
END comparator;
ARCHITECTURE structure OF comparator IS
SIGNAL x: STD_LIGIC_VECTOR ( 7 DOWNTO 0 ) ;
COMPONENT xnor2
PORT ( a,b: IN STD_LOGIC; c: OUT STD_LOGIC );
END COMPONENT;nullBEGIIN
U0:xnor2 PORT MAP ( a(0), b(0), x (0) );
U1:xnor2 PORT MAP ( a(1), b(1), x (1) );
U2:xnor2 PORT MAP ( a(2), b(2), x (2) );
U3:xnor2 PORT MAP ( a(2), b(2), x (2) );
U4:xnor2 PORT MAP ( a(4), b(4), x (4) );
U5:xnor2 PORT MAP ( a(5), b(5), x (5) );
U6:xnor2 PORT MAP ( a(6), b(6), x (6) );
U7:xnor2 PORT MAP (a(7),b(7),x (7));
c<= x(0) AND x(1) AND x(2) AND x (3) AND x(4)
AND x(5) AND x(6) AND x(7);
END structure;
底层元件二输入同或门的描述底层元件二输入同或门的描述 LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY xnor2 IS
PORT ( a,b: IN STD_LOGIC;
c: OUT STD_LOGIC );
END xnor2;
ARCHITECTURE bool OF xnor2 IS
BEGIN
c<=NOT ( NOT a)AND b OR a AND( NOT b));
END bool;
用户将自己设计的电路标准化后作为一个元件放在库中供调用的过程称为元件例化,或者称为标准化。
核 (IP Core) 软核 固核 硬核元件例化的主要语句元件例化的主要语句 COMPONENT语句
COMPONENT 元件名
[GENERIC 说明;] --参数说明,仅整型可综合,
[PORT 说明;]
END COMPONENT;
映射语句
标号名:元件名
[GENERIC MAP (类属关联表);]
[ PORT MAP(端口关联表); ]
标号名在结构体中必须是唯一的。映射方式 映射方式 参数映射关系和端口映射关系有两种:位置映射和名称映射。
1.位置映射方法
PORT MAP (a(0) , b(0), x(0) );
PORT ( a , b: IN STD_LOGIC ;
c: OUT STD_LOGIC ); --元件说明语句
2. 名称映射方法
U0:xnor2 PORT MAP (a=>a(0), c=> x(0), b=>b(0) ); 3.4 结构体的子结构形式 3.4 结构体的子结构形式 进程(PROCESS)块(BLOCK)子程序(SUBPROGRAM)结构体3.4.1进程 3.4.1进程 [进程名:] PROCESS [(敏感信号量表)]
说明语句
∶
BEGIN
顺序执行语句
∶
END PROCESS [进程名];
1.进程内部所有的语句都是顺序执行的,
2. 进程和进程之间是并行执行的,
3.进程的启动由PROCESS语句的敏感信号量表中的信号量触发,也可以由WAIT语句触发。
进程的应用进程的应用利用进程语句设计一位加法器
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY half-adder IS
PORT(a, b: IN STD_LOGIC; sum, carry: OUT STD_LOGIC);
END half-adder;
ARCHITECTURE behav OF half-adder IS
BEGIN
PROCESS (a, b)
BEGIN
sum<= a XOR b AFTER 5nS;
carry<= a AND b AFTER 5nS;
END PROCESS
END behav;
用进程设计D触发器用进程设计D触发器 LIBRARY IEEE
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY dff4 IS
PORT (clk, d, clr, pset:IN STD_LOGIC;
q:OUT STD_LOGIC );
END dff4;
ARCHITECTURE rtl OF dff4 IS
BEGIN
PROCESS (clk, pset, clr)
BEGIN
IF (clr = '0' ) THEN q <= ‘0';
ELSIF (pset = '0') THEN q <= ‘1';
ELSIF (clk 'EVENT AND clk = '1') THEN
q <= d;
END IF;
END PROCESS;
END rtl; clrpset进程启动的WAIT语句进程启动的WAIT语句(1) 无限等待
WAIT;
(2) 敏感信号量变化等待
WAIT ON 信号名[,信号名];
(3) 条件等待
WAIT UNTIL 表达式;
(4) 时间等待
WAIT FOR 时间表达式;
例如 :WAIT FOR 20nS;--同步点在延时20nS后,
WAIT ON clk, interrupt FOR 5nS;--当信号clk或
interrupt变化5nS后启动进程。 3.4.2 复杂结构体的多进程组织方法 3.4.2 复杂结构体的多进程组织方法 硬件的行为描述中,构造算法模型实际上就是把描述系统功能的自然语言翻译成为一组进程,每个进程完成不同的功能。为了方便系统的行为描述,通常用进程模型图(PMG)表示系统的行为。如图所示的系统分解成四个进程,每个进程完成一定的功能,进程之间的关联由箭头线表示。
两个进程间的通信 两个进程间的通信 ENTITY pro_com IS
PORT (sa: IN BIT, q: OUT BIT)
END pro_com;
ARCHITECTURE folow OF pro_com IS
SINGAL sta, stb: BIT: =’0’;
BEGIN
A: PROCESS (sa, sta)
BEGIN
IF (sa‘EVENT AND sa=’1’) OR
(sta’EVENT AND sta=’1’) ;
THEN
stb<=‘1’ AFTER 20nS ; ‘0’ AFTER 30nS;
ENDIF;
END PROCESS A;
nullB: PROCESS (stb)
BEGIN
IF (stb’EVENT AND stb = ’1’) THEN
sta<=’1’ AFTER 10nS;
‘0’ AFTER 20nS;
ENDIF;
END PROCESS B;
END folow;
3.4.3 块 3.4.3 块 块(BLOCK)是VHDL程序中又一种常用的子结构形式。采用多模块组织方法描述一个复杂的结构体,是一种结构化描述方法。
块名:BLOCK[条件表达式]
[类属子句 类属接口表;]
[端口子句 端口接口表;]
[块说明部分]
BEGIN
:
并发执行语句
:
END BLOCK[块名];
块结构的特点块结构的特点从块的结构可以知道块具有如下特点:
(1)块内的语句是并发执行的,运行结果与语句的书写顺序无关;
(2)在结构体内,可以有多个块结构,块在结构体内是并发运行的;
(3)块的运行有无条件运行和条件运行两种。条件运行的块结构称为卫式BLOCK(GUARDED BLOCK)。
(4)构内可以再有块结构,形成块的嵌套,组成复杂系统的层次化结构。
综上所述,块的内部结构与结构体类似,是一种层次化结构设计方法。 块结构的使用方法块结构的使用方法LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
PACKAGE bit32 IS --定义一个名为bit32的程序包
TYPE tw32 IS ARRAY (31 DOWNTO 0)
OF STD_LOGIC; --定义一个名为tw32的数组
END bit32;
USE IEEE.STD_LOGIC_1164.ALL;
USE WORK.bit32.ALL;
ENTITY cpu IS
PORT (clk, interrupt: IN STD_LOGIC;
Addr: OUT TW32; --定义32位地址总线
Data: INOUT TW32); --定义32位数据总线