11053编号重庆科创职业学院 实验7 三位乘法器(VHDL)

上传人:玩*** 文档编号:144341300 上传时间:2020-09-07 格式:PPT 页数:12 大小:1.91MB
返回 下载 相关 举报
11053编号重庆科创职业学院 实验7 三位乘法器(VHDL)_第1页
第1页 / 共12页
11053编号重庆科创职业学院 实验7 三位乘法器(VHDL)_第2页
第2页 / 共12页
11053编号重庆科创职业学院 实验7 三位乘法器(VHDL)_第3页
第3页 / 共12页
11053编号重庆科创职业学院 实验7 三位乘法器(VHDL)_第4页
第4页 / 共12页
11053编号重庆科创职业学院 实验7 三位乘法器(VHDL)_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《11053编号重庆科创职业学院 实验7 三位乘法器(VHDL)》由会员分享,可在线阅读,更多相关《11053编号重庆科创职业学院 实验7 三位乘法器(VHDL)(12页珍藏版)》请在金锄头文库上搜索。

1、1,任务七 三位乘法器的VHDL设计,2,一、任务分析:三位乘法器的设计原理,本次任务中所说的三位乘法器是指能实现三位二进制数的乘法运算的器件;其实二进制数的乘法与十进制数乘法类似,均可采用乘数的每一位均与被乘数相乘后错位累加。故也可与十进制乘法类似用算式的方式来表示运算过程,具体见下页图所示:,根据二进制数的乘法法则:0*0=0,0*1=0,1*0=0,1*1=1更可将算式中的结果进行简化。例如若B0=1, 则(A2B0)(A1B0)(A0B0)=A2A1A0;若B0=0,则(A2B0)(A1B0)(A0B0)=0 由于三位二进制数相乘的最大结果为111*111=110001,即数位为6位。

2、而从算式中看经错位累加后数位还只有5位,故在程序设计中还应注意数位的处理。 计算过程中,乘数的每一位与被乘数相乘的中间结果需要进行一次加法运算。由于VHDL语言中对电路的输入端口的数据类型一般处理为逻辑型数据,所以此处出现了逻辑型数据做加法运算的情况。这也是在程序中需要处理的一个问题。,1、普通的赋值语句,将一个值或者一个表达式传递给某一个数据对象,如信号,变量,或由此组成的数组。,信号赋值语句,变量赋值语句,分类:,注意信号和变量的定义位置,赋值目标,赋值符号,组成:,赋值源,基本元素只能是信号和变量,变量“:=”信号“=”,可以是一个数值或者是一个逻辑或运算表达式,赋值目标与赋值源的数据类

3、型必须严格一致。,2、VHDL库和程序包,库(Library)是用于存放预先编译好的程序包(Package),程序包中定义了数据集合体、逻辑操作和元件等。主要是声明在设计或实体中将用到的常量,数据类型,元件及子程序等。 库可以使设计者共享已经编译好的设计结果。,IEEE库:IEEE标准库 使用需声明 STD库:VHDL标准库 使用无需声明 ASIC库:EDA厂商提供库 使用需声明 WORK库:现行作业库,当前工作目录的所有设计 使用无需声明 USER库:用户自定义库 使用需声明,VHDL库的种类,库的用法,USE语句的使用有两种常用格式: USE 库名.程序包名.项目名 ; USE 库名.程序

4、包名.ALL ;,例: LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.STD_ULOGIC ; USE IEEE.STD_LOGIC_1164.RISING_EDGE ; USE IEEE.STD_LOGIC_1164.ALL;,格式:LIBRARY 库名;,USE 库名. 程序包名. All;,库说明的作用范围,从一个实体说明开始到其所属的结构体、配置为止。 当一个源程序中出现两个以上的实体时,必须重复说明。,例: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY example1 IS () END LIBR

5、ARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY example2 IS () END,返回,1、IEEE.STD_LOGIC_1164 程序包 用于说明STD_LOGIC数据类型; 2、IEEE.STD_LOGIC_ARITH 程序包 可用于说明rising_edge函数 3、IEEE.STD_LOGIC_UNSIGNED 程序包 可用于说明算术运算符的重载,即使得逻辑 数据可以实现算术运算,常用的VHDL库与程序包,library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsig

6、ned.all; -进行加法运算符的重载 entity mul3 is port(a,b:in std_logic_vector(2 downto 0); y:out std_logic_vector(5 downto 0); end mul3; -实体端口为三位的乘数和被乘数以及六位的积。,architecture behave of mul3 is signal temp1:std_logic_vector(2 downto 0); signal temp2:std_logic_vector(3 downto 0); signal temp3:std_logic_vector(4 downto 0); -三个信号用于存储乘数的每一位与被乘数相乘的结果; begin temp1=a when b(0)=1 else 000; temp2=(a,故本实验中乘法器根据设计方法称为移位相加乘法器。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号