- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ALU(算术逻辑运算单元)的设计
EDA技术与应用
实验报告(四)
实验名称: ALU(算术逻辑运算单元)的设计
姓 名: 学 号: 班 级: 11通信3班 时 间: 2013.11.28
南京理工大学紫金学院电光系
实验目的
1、学习包集和元件例化语句的使用。
2、学习ALU电路的设计。
二、 实验原理
1、ALU原理
ALU的电路原理图如图1 所示,主要由算术运算单元、逻辑单元、选择单元构成。
图1
ALU功能表如表1 所示。
表1
2、元件、包集
在结构体的层次化设计中,采用结构描述方法就是通过调用库中的元件或者已经设计好的模块来完成相应的设计。在这种结构体中,功能描述就像网表一样来表示模块和模块之间的互联。如ALU 是由算术单元、逻辑单元、多路复用器互相连接而构成。而以上三个模块是由相应的VHDL 代码产生的,在VHDL 输入方式下,如果要将三个模块连接起来,就要用到元件例化语句。元件例化语句分为元件声明和元件例化。
1、元件声明
在VHDL 代码中要引入设计好的模块,首先要在结构体的说明部分对要引入的模块进行说明。然后使用元件例化语句引入模块。
元件声明语句格式:
component 引入的元件(或模块)名
port(端口说明);
end component;
注意:元件说明语句要放在“architecture”和“begin”之间。
2、元件例化语句
为将引入的元件正确地嵌入到高一层的结构体描述中,就必须将被引用的元件端口信号与结构体相应端口信号正确地连接起来,元件例化语句可以实现该功能。
元件例化语句格式:
标号名:元件名(模块名) port map(端口映射);
标号名是元件例化语句的唯一标识,且结构体中的标识必须是唯一的;端口映射分为:位置映射、
名称映射。
位置映射指 port map 中实际信号的书写顺序与component 中端口说明中的信号书写顺序一致,位置映射对书写顺序要求很严格,不能颠倒;名称映射指port map 中将引用的元件的端口信号名称赋予结构体中要使用元件的各个信号,名称映射的书写顺序要求不严格,顺序可以颠倒。
3 包集
在实体及结构体中定义的对象、数据类型,对另外代码的实体是不能使用的。但是在同一工程的不同VHDL 文件中,有些对象、数据类型、子程序等常常被重复使用。为方便VHDL 代码的编写,简化电路设计,故引入包集。包集也称为程序包。
包集主要由两部分组成:程序包说明和程序包体。其中,程序包体是可选的,一般程序包说明列出所有项的名称,而程序包体给出各项的细节。
程序包说明中包含的内容很多,只要是通用的全局量,都可以在程序包中加以说明。主要内容如下:
★ 对象(常量、变量、信号)的数据类型说明。
★ 对象(常量、变量、信号)子类型的数值范围说明。
★ 函数与过程说明。
★ 元件语句说明。
程序包说明的书写格式如下:
package 程序包名 is
说明语句;
end 程序包名;
程序包名:设计者自定义便于记忆的标识符。说明语句:包括各种类型的说明语句。
程序包体书写格式如下:
package body 程序包名 is
52
顺序语句;
end 程序包名;
注意:程序包定义的内容不是自动可见的,不是自动被使用。若某个实体及结构体设计需要使用程序包,可以使用use 语句制定要使用的程序包。
如:use work.程序包名.all;
实验内容
算术单元 arith_unit
仿真结果:
2、逻辑单元 logic_unit
仿真结果:
多路复用器 sel
仿真结果:
包集 package alu
主程序 alu_unit
仿真结果:
管脚配置:
小结与体会
通过这次实验我知道了什么是顺序关联法和名称关联法以及他们的区别。
在VHDL代码中要引入设计好的模块,首先要在结构体的说明部分对要引入的模块进行说明。然后使用元件例化语句引入模块。掌握了如何使用多个模块编译代码,掌握了如何使用包集。
注意每次运行检验的时候都要将文件置顶,否则编译无法通过。
文档评论(0)