ALU37Word格式文档下载.docx

上传人:b****5 文档编号:18899510 上传时间:2023-01-02 格式:DOCX 页数:11 大小:325.57KB
下载 相关 举报
ALU37Word格式文档下载.docx_第1页
第1页 / 共11页
ALU37Word格式文档下载.docx_第2页
第2页 / 共11页
ALU37Word格式文档下载.docx_第3页
第3页 / 共11页
ALU37Word格式文档下载.docx_第4页
第4页 / 共11页
ALU37Word格式文档下载.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

ALU37Word格式文档下载.docx

《ALU37Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《ALU37Word格式文档下载.docx(11页珍藏版)》请在冰豆网上搜索。

ALU37Word格式文档下载.docx

而以上三个模块是由相应的VHDL代码产生的,在VHDL输入方式下,如果要将三个模块连接起来,就要用到元件例化语句。

元件例化语句分为元件声明和元件例化。

(1)元件声明

在VHDL代码中要引入设计好的模块,首先要在结构体的说明部分对要引入的模块进行说明。

然后使用元件例化语句引入模块。

元件声明语句格式:

Component引入的元件(或模块)名

Port(端口说明);

EndComponent;

注意:

元件说明语句要放在“architecture”和“begin”之间。

(2)元件例化语句

为将引入的元件正确地嵌入到高一层的结构体描述中,就必须将被引用的元件端口信号与结构体相应端口信号正确地连接起来,元件例化语句可以实现该功能。

元件例化语句格式:

标号名:

元件名(模块名)Portmap(端口映射);

标号名是元件例化语句的唯一标识,且结构体中的标识必须是唯一的;

端口映射分为:

位置映射、名称映射。

位置映射是指Portmap中世纪信号的书写顺序与component中端口说明中的信号书写顺序一致,位置映射对书写顺序要求很严格,不能颠倒;

名称映射指Portmap中将引用的元件的端口信号名称赋予结构体中要使用元件的各个信号,名称映射的说书写要求不严格,顺序可以颠倒。

(3)包集

在实体及结构体中定义的对象、数据类型,对另外代码的实体是不能使用的。

但是在同一工程的不同VHDL文件中,有些对象、数据类型、子程序等常常被重复使用。

为方便VHDL代码的编写,简化电路设计故引入包集。

包集主要由两部分组成:

程序包说明和程序包体。

其中,程序包体是可选的,一般程序包说明列出所有项的名称,而程序包体给出各项的细节。

程序包说明中包含的内容很多,只要是通过的全局量,都可以在程序包中加以说明。

主要内容如下:

对象(常量、变量、信号)的数据类型说明。

对象(常量、变量、信号)子类型的数值范围说明。

函数与过程说明。

元件语句说明。

程序包说明书写格式如下:

Package程序包名1is

说明语句;

End程序包名;

程序包名:

设计者自定义便于记忆的标识符。

说明语句;

包括各种类型的说明语句。

程序包体书写格式如下:

Packagebody程序包名is

顺序语句;

注意:

程序包定义的内容不是自动可见的,不是自动被使用。

若摸个实体及结构体设计需要使用程序包,可以使用use语句制定要使用的程序包。

代码,要增加注释;

ALU的VHDL代码如下:

alu_unit_37_38

libraryieee;

useieee.std_logic_1164.all;

--调用1164包

usework.alu_37_38.all;

entityalu_unit_37_38is

port(a,b:

instd_logic_vector(7downto0);

--a,b为8位的逻辑矢量输入类型

clk:

instd_logic;

--clk为逻辑量输入

cin:

--cin为逻辑量输入

selout:

outstd_logic_vector(3downto0);

--selout为4位的逻辑矢量输出类型

y:

outstd_logic_vector(7downto0));

--y为8位的逻辑矢量输出类型

end;

architecturerhgofalu_unit_37_38is

signalx1,x2:

std_logic_vector(7downto0);

signalx3:

std_logic_vector(3downto0);

begin

u1:

arith_37_38portmap(a,b,x3,cin,x1);

--与元件arith_27_28的端口映射

u2:

logic_37_38portmap(a,b,x3,x2);

--与元件logic_unit_27_28的端口映射

u3:

sel_37_38portmap(x3,x1,x2,y);

--与元件sel_27_28的端口映射

u4:

clk_37_38portmap(clk,x3);

--与元件clk_27_28的端口映射

selout<

=x3;

end;

arith_37_38

useieee.std_logic_unsigned.all;

entityarith_37_38is

--将a,b定义为8位的逻辑矢量输入类型

sel:

instd_logic_vector(3downto0);

--定义为4位的逻辑矢量输入类型

cin:

x:

architecturerhgofarith_37_38is

begin

withselselect--选择信号赋值语句

x<

=awhen"

0000"

--当sel为"

时,将a的值赋给x

a+1when"

0001"

a-1when"

0010"

bwhen"

0011"

b-1when"

0101"

a+bwhen"

0110"

a+b+cinwhen"

0111"

--当sel为"

时,将a+b+cin的值赋给x

"

00000000"

whenothers;

endrhg;

logic_37_38

entitylogic_37_38is

--将sel定义为4位的逻辑矢量输入类型

--将x定义为8位的逻辑矢量输出类型

architecturerhgoflogic_37_38is

=notawhen"

1000"

时,将a非的值赋给x

notbwhen"

1001"

aandbwhen"

1010"

anandbwhen"

1100"

anorbwhen"

1101"

axorbwhen"

1110"

not(axorb)when"

1111"

时,将a异或b的非的值赋给x

sel_37_38

entitysel_37_38is

port(sel:

--定义sel数据类型为逻辑矢量,宽度为4位

arith:

--定义arith为逻辑矢量,宽度为8位

logic:

--定义logic为逻辑矢量,宽度为8位

y:

--定义y为逻辑矢量,宽度为8位

architecturerhgofsel_37_38is

withsel(3)select--信号赋值语句

y<

=arithwhen'

0'

--当sel的最高位为0时,将arith的值赋给y

logicwhenothers;

--当sel的最高位不为0时,将logic的值赋给y

clk_37_38

entityclk_37_38is

port(clk:

bufferstd_logic_vector(3downto0));

--将y定义为buffer的4位逻辑矢量

architecturerhgofclk_37_38is

process(clk)--clk作为敏感信号

variables:

begin

ifclk'

eventandclk='

1'

then

ifs="

s:

="

;

else

=s+1;

endif;

endif;

=s;

endprocess;

end;

packagealu_37_38

packagealu_37_38is

componentarith_37_38

--cin为逻辑矢量输入类型

--x为8位的逻辑矢量输出类型

endcomponent;

componentlogic_37_38

--sel为4位的逻辑矢量输入类型

componentsel_37_38

arith:

--arith为8位的逻辑矢量输入类型

--logic为8位的逻辑矢量输入类型

componentclk_37_38

--y定义为buffer的4位逻辑矢量

endalu_37_38;

仿真波形图,对波形进行分析;

1)算术单元仿真波

2)逻辑单元仿真波形

3)Sel仿真波形

4)Alu仿真波形

总结与体会

通过这次试验掌握了ALU的设计,并对结构体的说明部分对要引入的模块进行说明,说明语句要放在“architecture”和“begin”之间。

还有就是注意程序包定义的内容不是自动可见的,不是自动被使用。

学的时间感觉不会的东西越多,如果课前不准备感觉在有限的时间内很难做出老师的要求,上电看到正确的现象我一点都不觉得累,感觉时间过得好快啊。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 教育学心理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1