原码一位乘法器

合集下载

定点源码一位乘法器的设计内容结论

定点源码一位乘法器的设计内容结论

定点源码一位乘法器的设计内容结论篇一:设计一个定点源码一位乘法器可以帮助我们更好地理解计算机内部如何进行乘法运算。

本文将介绍一个定点源码一位乘法器的设计方案,包括其基本结构和实现方式,结论是这种乘法器在计算机内部可以实现,并且具有高效的性能。

首先来看乘法器的基本原理。

乘法是将两个数相乘得到的结果存储在两个数的对应位上,然后根据乘积的二进制表示将结果进行位运算得到最终的答案。

对于一位乘法器,其基本操作如下:1. 读取两个数,并将它们存储在一个临时变量中。

2. 对两个数进行位运算,将乘积的对应位设置为1,其他位设置为0。

3. 将结果存储回原来的两倍位置。

下面我们来具体实现一个一位乘法器。

首先,我们需要选择一种编程语言来实现乘法器。

由于一位乘法器只涉及两个数的不同位,因此选择C语言作为实现语言。

接下来,我们需要设计一个乘法器的数据结构。

对于一位乘法器,我们只需要将乘积的二进制表示存储在一个数组中,而不需要存储中间结果。

因此,我们可以使用一个二进制数组来实现一位乘法器。

接下来,我们来实现乘法器的代码。

首先,我们初始化两个数组,一个用于存储乘积的二进制表示,另一个用于存储中间结果。

然后,我们使用位运算来实现乘法操作。

具体地,我们按照以下步骤进行操作:1. 读取两个数。

2. 对两个数进行位运算。

3. 将乘积的对应位设置为1,其他位设置为0。

4. 将结果存储回原来的两倍位置。

下面是完整的代码实现:```c#include <stdio.h>#include <stdlib.h>#define MAX_INT 32767// 乘法器数据结构typedef struct {int value;int bit[2];} 乘积;// 初始化乘积void init_积(乘积*积) {积->value = 0;for (int i = 0; i < 2; i++) {积->bit[i] = 0;}}// 读取两个数int read_nums(乘积*积, int num1, int num2) { 乘积 temp;init_积(&temp);int carry = 0;for (int i = 0; i < 8; i++) {int bit = (num2 >> i) & 1;temp.bit[i] = bit;if (bit) {carry++;}}temp.value = carry ? (temp.value + num1) : num1;return temp.value;}// 位运算void bit_Ops(乘积*积, int num1, int num2, int bit) { if (bit) {积->bit[2 * bit - 1] = num2 & 1;}}// 打印结果void print_result(乘积*积, int num1, int num2) {for (int i = 0; i < 2; i++) {printf("%d ",积->bit[i]);}printf("");}int main() {乘积积1,积2;int num1, num2;printf("请输入两个整数:");scanf("%d%d", &num1, &num2);printf("请输入第一个整数:");scanf("%d", &积1.value);printf("请输入第二个整数:");scanf("%d", &积2.value);printf("请输入第一个整数的位数: ");scanf("%d", &积1.bit[0]);printf("请输入第二个整数的位数: ");scanf("%d", &积2.bit[0]);printf("计算结果为:");printf("%d", read_nums(积1, num1, num2));printf("计算结果的位数:");printf("%d ",积1.bit[2 *积1.bit[0] - 1]);printf(" ");printf("计算结果的进位:");printf("%d ",积2.bit[2 *积2.bit[0] - 1]);printf(" ");return 0;}```根据上面的代码,我们可以得到一位乘法器的基本结构。

原码一位乘法器设计实验报告

原码一位乘法器设计实验报告

原码一位乘法器设计实验报告一位乘法器设计实验报告本次实验的目的是设计一个1位乘法器,使用VHDL语言在FPGA平台上进行编程,以模拟数字系统中常用的数字乘法操作。

(1)实验介绍本次实验采用FPGA对1位乘法器进行设计,通过综合语言VHDL对1位乘法器进行编程,实现乘法操作,考核我们所学习到的技能,及其在数字电路中的运用。

(2)原理1位乘法器(One-bit Multiplier)主要包括一个数据输入端A,输入一位A;B输入端,输入一位B;两个控制端,乘法指令和正负指令;产生和端为Cout,乘法结果输出端为Dout。

1位乘法器的功能是:如果A、B都为0时,整个乘法器保持空闲,如果A>0或者 B>0,就会开始乘法运算,Cout为A与B的AND运算结果,Dout=A*B,即当B=1时,Dout=A;当B=0时,Dout=0。

(3)实验流程(1)设计多位乘法器的功能模块,完成模块之间的接口描述;(2)设计1位乘法器的VHDL代码,其中包括输入、输出、控制部分;(3)利用Xilinx ISE 14.6完成编译,查看综合错误情况;(4)绘制电路图,添加模块;(5)进行仿真测试,将模块内各部分功能输入实际值,验证运算正确性;(6)在DE2开发板上运行代码,上传新的程序,查看实际运行情况,确认乘法器可以正确工作;(7)验证结果,完成整个乘法器的设计。

(4)实验结果本次实验通过编写VHDL语言,绘制电路图,仿真测试,烧写程序等步骤,设计出一位乘法器,实现了正确乘法运算功能,实验结果如下图所示:此外,实验中使用的FPGA开发板的硬件设计采用Cyclone ll,有良好的性能和可编程性,在编程和复杂数字电路处理领域有很强的优势。

(5)总结本次实验通过实验,熟悉了1位乘法器的结构及其工作原理,掌握综合语言VHDL和FPGA编程技术,掌握了数字电路设计。

最后,本次实验完成了乘法器的设计,检验结果满足预期,获得有意义的实验教训,实现了实验目标。

用硬件描述语言设计浮点乘法器(原码一位乘法) 课程设计

用硬件描述语言设计浮点乘法器(原码一位乘法) 课程设计

计算机科学与工程学院课程设计报告题目全称:用硬件描述语言设计浮点乘法器(原码一位乘法)课程名称:计算机组成原理指导老师:职称:(注:学生姓名填写按学生对该课程设计的贡献及工作量由高到底排列,分数按排名依次递减。

序号排位为“1”的学生成绩最高,排位为“10”的学生成绩最低。

)指导老师评语:指导签字:摘要硬件乘法器,其基础就是加法器结构,它已经是现代计算机中必不可少的一部分。

其大致可分为定点乘法器和浮点乘法器。

其中浮点数的格式较定点数格式复杂,硬件实现的成本较高,完成一次浮点四则运算的时间也比定点运算要长。

但浮点数比定点数的表示范围更宽,有效精度更高,因此更适合科学与工程计算的需要。

但要求计算精度较高时,往往采用浮点运算。

浮点乘法器设计(原码一位乘法)模型就是基于“移位和相加”的算法,设浮点数A=2^AE·AM,B=2^BE·BM,则A×B=2^(AE+BE)·(AM×BM),即阶码相加,尾数相乘。

其运算步骤可以简单的归为(1)检测能否简化操作,并置结果数符(2)阶码相加(3)尾数相乘(4)乘积规格化等。

本论文第一章讲述了该课程设计的研究背景及意义及其理论依据和实验基础、课题的难点、重点、核心问题及方向。

第二章重点讲述了原码一位乘法实现浮点乘法器设计的原理、操作流程及课程设计实验数据和结果关键词:浮点乘法器、原码一位乘法、阶码、尾数目录第1章课题背景 (3)1.1研究背景 (3)1.1.1国内外的研究现状 (3)1.1.2理论依据和实验基础 (4)1.2课题的难点、重点、核心问题及方向 (4)1.3研究目的和意义 (5)第2章课题的需求分析 (6)2.1 课题对应软硬件系统的性能 (6)2.2业务流程 (6)2.3其他需求 (7)第3章课题的设计与实现 (8)3.1课程设计的理论基础 (8)3.2开发工具简介 (8)3.2.1硬件部分 (8)3.2.2软件部分 (8)3.3课程设计的框架和流程图 (8)3.4课程设计的实现 (10)3.4.1创建工程 (10)3.4.2设计输入 (10)3.4.3约束(引脚绑定) (12)3.4.4综合 (12)3.4.5实现 (12)3.4.6 下载 (14)3. 4.7开始测试 (14)3.5结论 (16)第4章结束语 (17)第1章课题背景1.1研究背景1.1.1国内外的研究现状今日由于科技的突飞猛进,使得在一个小小的晶片上,能够容纳上百万的电晶体。

原码一位乘法器logisim代码

原码一位乘法器logisim代码

原码一位乘法器logisim代码
下面是一个使用Logisim实现的8位无符号数原码一位乘法器的代码示例:
```text
// 定义输入输出端口
A[7..0]:INPUT;
B[7..0]:INPUT;
C[7..0]:OUTPUT;
// 用异或门计算乘积的符号
XOR G1:A[7] B[7];
// 用与门判断乘积是否为正
AND G2:G1[7];
// 使用移位寄存器计算乘积的值
SHIFT R0:A[7..0];
SHIFT R1:B[7..0];
MUL R2:R0[7..0] R1[7..0];
SHIFT R3:R2[7..0];
ADD R4:R3[7..0] R2[0];
// 输出结果
C[7..0]:R4[7..0];
```
在这个示例中,首先使用异或门计算乘积的符号,然后使用与门判断乘积是否为正。

接着,使用移位寄存器计算乘积的值,并将结果与乘积的符号进行相加,最后输出结果。

你可以根据自己的需求修改输入输出端口的位数和相应的门电路。

希望这个示例能帮助到你。

原码一位乘法器

原码一位乘法器

实验一、原码一位乘法器一、引言在计算机组成原理知识教学过程中,关于二进制乘法运算是一个较难理解的环节,其中又以“定点原码一位乘法算法”是最基础的,针对这一算法设计实验方案,为学员提供实践环境,对深入理解这一问题、以及进一步的学习其他乘法乃至除法算法都十分重要。

二、定点原码一位乘法算法两个原码数相乘,其乘积的符号为相乘两数符号的异或值,数值则为两数绝对值之积。

例如:[X]原=X0X1X2…Xn,X0为符号[Y]原=Y0Y1Y2…Yn,Y0为符号则[X·Y]原=(X0⊕Y0)|(X1X2…Xn)·(Y1Y2…Yn),符号“|”表示把符号和数值邻接起来。

在计算时,符号位和数值位分别进行计算。

对于数值位,逐次按乘数每一位(从低位到高位)上的值是1还是0,决定一个相加数或者是被乘数或者是0,并向左偏移一位去加上次计算得到的和(它又被称为部分积,其初值为0),如此进行乘数位数次,最终得到乘积。

在此需要注意的是:“相加数向左偏移一位后求和”和“上次计算得到的和向右偏移一位后求和”两种求和的方法是等效的,设计乘法器时采用后一种方法,其目的是寻求部份积与乘数移位方向的一致性。

例如X的值为1101,Y的数值为1011,求X·Y数值的过程如下:三、定点原码一位乘法器的逻辑结构根据以上算法,设计定点原码一位乘法器的逻辑结构如下图所示:其中n位寄存器S1n称为部分积寄存器,初值为0,计算结束时寄存乘积高位;一位寄存器S0用以寄存乘积符号;n+1位寄存器Y0n称为被乘数寄存器;n位寄存器X1n称为乘数寄存器,初值为乘数,计算结束时寄存乘积低位;一位寄存器X0用以寄存乘数符号。

控制信号Scr用于S1n清零,低电平有效;Scp用于S1n的触发,上升沿有效;S0cp用于S 0的触发,上升沿有效,X0cp用于X0的触发,上升沿有效,并且乘法器运行时,要求先产生X 0cp,然后再产生S0cp,所以这两个信号正好应用一个正脉冲的两个边沿;Xcp用于X1n的触发,上升沿有效;Ycp用于Y0n的触发,上升沿有效;Isc用于控制X1n是选择开关组值作输入还是选择移位的部分积作输入。

定点原码一位乘法器的设计 (3)

定点原码一位乘法器的设计 (3)

沈阳航空工业学院课程设计报告课程设计名称:计算机组成原理课程设计课程设计题目:定点原码一位乘法器的设计院(系):计算机学院专业:计算机科学与技术班级:4401102学号:200403011034姓名:蔡丽娇指导教师:刘泽显完成日期:2006年12月31日沈阳航空工业学院课程设计报告目录第1章总体设计方案 (1)1.1 设计原理 (1)1.2 设计思路 (1)1.3 设计环境 (2)第二章详细设计方案 (3)2.1顶层方案图的设计与实现 (3)2.1.1创建顶层图形设计文件 (3)2.1.2器件的选择与引脚锁定 (3)2.2 功能模块的设计与实现 (5)2.2.1 8位移位电路 (5)2.2.2 部分积寄存器 (7)2.2.3 乘数寄存器 (7)2.2.4 二路选择器 (8)2.2.5 计数器 (9)2.2.6 结果输出器 (11)2.3 仿真调试 (13)第3章编程下载与硬件测试 (14)3.1 编程下载 (14)3.2 硬件测试及结果分析 (14)参考文献 (15)附录(电路原理图) (16)第1章总体设计方案1.1 设计原理定点原码一位乘法器的设计主要是基于原码一位乘法的计算过成。

设计内容主要是实现输入被乘数和乘数经电路得出结果。

设计思想是:以乘数的最低位作为乘法判断位,若判断位为1,则在前次部分积(初始部分积为0)上加上被乘数,然后连同乘数一起右移一位;若判断位为0,则在前次部分积上加0,然后连同乘数一起右移一位。

重复此判断过程,直到运算n次为止(n为乘数数值部分的长度)。

1.2 设计思路原码一位乘法器主要包括ALU﹑部分积寄存器﹑乘数移位寄存器﹑被乘数寄存器和移位电路五大部分。

这五大部分就作为底层设计,其中乘数移位寄存器需要保留移出的最低位,它的最高位要接收部分积移出的最低位这两部分采用V erilog语言进行设计,顶层的乘法器采用原理图设计输入方式。

原码一位乘的数值运算中不需要考虑符号位的情况,符号位于数值位分开处理。

基于8位模型机的定点原码一位乘法的实现

基于8位模型机的定点原码一位乘法的实现

8位模型机是一种通用的电子计算机,可以实现各种算法运算。

本文将重点介绍如何在8位模型机上实现定点原码一位乘法运算,以及具体的实现方法。

一、定点原码一位乘法运算介绍
定点原码一位乘法是指两个数在二进制表示下的乘法运算中,将其中一个数按照原码形式进行运算,即将数值和符号表示在不同的位上。

该运算可以用于处理正数、负数的乘法运算。

二、实现方法
在8位模型机中实现定点原码一位乘法,可以采用硬件电路或软件算法两种方法。

硬件电路方法需要设计乘法器,用于实现两个8位二进制数的乘法。

具体来说,乘法器需要先将其中一个数(被乘数)的符号位进行扩展,然后把两个数乘起来,最后将符号位重新还原。

这种方法的优点是速度快,但是实现难度较大。

软件算法方法可以采用循环累加法,即对于被乘数和乘数的每一位,分别进行乘法运算,然后将得到的乘积加起来,最终得到结果。

这种方法的优点是实现简单,但是速度相对较慢。

三、具体实现过程
本文以软件算法方法为例,介绍如何在8位模型机上实现定点原码一位乘法。

1. 首先定义两个8位二进制数作为被乘数和乘数。

2. 对于被乘数和乘数的每一位,进行乘法运算。

3. 将得到的乘积加起来,得到最终结果。

4. 对于结果的符号位进行处理。

5. 输出结果。

四、总结
本文介绍了在8位模型机上如何实现定点原码一位乘法运算,其中包括硬件电路和软件算法两种方法。

对于软件算法,采用循环累加法可以简单实现。

在实际应用中,可以根据不同的需求选择不同的实现方式。

该算法可以用于处理正数、负数的乘法运算,为计算机科学的发展提供了基础。

C语言位运算实现原码一位乘法3寄存器和2寄存器版本计组

C语言位运算实现原码一位乘法3寄存器和2寄存器版本计组

C语言位运算实现原码一位乘法3寄存器和2寄存器版本计组在计算机体系结构中,位运算被广泛应用于实现各种算术和逻辑操作。

原码一位乘法是一种常见的位运算操作。

原码一位乘法是指针对两个二进制原码数进行乘法运算,并输出结果。

在实现原码一位乘法时,可以使用3寄存器版本或2寄存器版本的方案。

以下是对这两种版本的详细解释。

3寄存器版本:3寄存器版本的原码一位乘法需要三个寄存器来存储输入、输出以及中间结果。

假设输入数据为A和B,输出结果为C。

算法的步骤如下:1. 初始化寄存器:将A和B分别存储在寄存器A和B中,将C清零,将一个名为"carry"的寄存器置为0。

2.进行循环:通过移位操作,将A的最低位与B相乘,并将结果累加到寄存器C中。

3. 进行移位和判断:在每次移位后,检查A的最低位是否为1,如果是,则将carry寄存器与B相加(进位操作),并将结果存储回寄存器C中。

4.进行下一次循环:重复步骤2和步骤3,直到A的所有位都被处理完毕。

最终,寄存器C中存储的就是最终的乘法结果。

2寄存器版本:2寄存器版本的原码一位乘法只需要两个寄存器来存储输入和输出。

算法的步骤如下:1.初始化寄存器:将A和B分别存储在寄存器A和B中。

2.进行循环:通过移位操作,将A的最低位与B相乘,并将结果累加到寄存器B中。

3.进行移位和判断:在每次移位后,检查A中的最低位是否为1,如果是,则将B左移一位,并将上一步的结果与B相加。

4.进行下一次循环:重复步骤2和步骤3,直到A的所有位都被处理完毕。

最终,寄存器B中存储的就是最终的乘法结果。

以上是对C语言位运算实现原码一位乘法的3寄存器版本和2寄存器版本的详细解释。

通过这些算法,可以实现高效且准确的二进制原码一位乘法运算。

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

课程设计报告课程设计名称:计算机组成原理课程设计课程设计题目:定点原码一位乘法器的设计院(系):专业:班级:学号:姓名:指导教师:完成日期:目录第1章总体设计方案 (1)1.1设计原理 (1)1.2设计思路 (2)1.3设计环境 (3)第2章详细设计方案 (5)2.1顶层方案图的设计与实现 (5)2.1.1创建顶层图形设计文件 (5)2.1.2器件的选择与引脚锁定 (5)2.1.3编译、综合、适配 (7)2.2功能模块的设计与实现 (7)2.2.1 控制器模块的设计与实现 (7)2.2.2 寄存器和与门组成的模块的设计与实现 (9)2.2.3 加法器模块的设计与实现 (11)2.2.4 寄存器模块的设计与实现 (14)2.3仿真调试 (16)第3章编程下载与硬件测试 (19)3.1编程下载 (19)3.2硬件测试及结果分析 (19)参考文献 (22)附录(电路原理图) (23)第1章总体设计方案1.1 设计原理原码一位乘,两个原码数相乘,其乘积的符号为相乘两数符号的异或值,数值则为两数绝对值之积。

例如:X的值为1101,Y的数值为1011,求X·Y数值的过程如下:即X·Y=10001111由于在计算机内多个数据一般不能同时相加,一次加法操作只能求出两数之和,因此每求得一个相加数,就与上次部分积相加每次计算时,相加数逐次向左偏移一位,由于最后的乘积位数是乘数(被乘数)的两倍,因此加法器也需增到两倍。

部分积右移时,乘数寄存器同时右移一位,所以用乘数寄存器的最低位来控制相加数取被乘数或零,同时乘数寄存器接收部分积右移出来的一位,完成运算后,部分积寄存器保存乘积的高位部分,乘数寄存器中保存乘积的低位部分。

根据人工算法可以知道,原码一位乘法的整体设计应包括乘数寄存器,被乘数寄存器,移位电路,控制器,部分积五大模块,包含一个输入、输出、控制器模块,并作为顶层设计,以上五大模块作为底层设计,采用硬件器件设计实现。

因此,可以得出以下原理框图设计如图1.1所示:图1.1 原码一位乘的逻辑电路框图如上逻辑框图1.1中所示,其中B为被乘数寄存器,用来存放被乘数,C为乘数寄存器,用来存放乘数并且移位,A为部分积寄存器,存放每次相加并移位后的数据,ALU加法器实现加法操作,移位电路用来对相加后的数据作移位处理,计数器控制移位次数和输出结果。

1.2 设计思路定点原码一位乘法器的设计(如图1.1所示)主要包含如下两个部分。

一、运算部分:被乘数寄存器要有并入功能,从而进行被乘数的输入,被乘数寄存器的输出和乘数寄存器的最后一位分别相与,以此来确定+X或+0;乘数寄存器要有并入和右移的功能,从而实现乘数部分的右移,最后得到结果的低八位;被乘数和乘数的最后一位相与的结果作为加法器的一个输入,与原部分积相加,得到新的部分积,最后则为结果的高八位。

二、控制部分:进行运算时主要有两个状态,一个是乘数与被乘数的并入状态,一个就是乘数与部分积的右移状态。

定点原码一位乘法器的底层、顶层的设计都采用原理图设计输入方式,经编译、调试后形成*.bit文件并下载到XCV200可编程逻辑芯片中,经硬件测试验证设计的正确性。

1.3设计环境(1)硬件环境•伟福COP2000型计算机组成原理实验仪COP2000计算机组成原理实验系统由实验平台、开关电源、软件三大部分组成实验平台上有寄存器组R0-R3、运算单元、累加器A、暂存器B、直通/左移/右移单元、地址寄存器、程序计数器、堆栈、中断源、输入/输出单元、存储器单元、微地址寄存器、指令寄存器、微程序控制器、组合逻辑控制器、扩展座、总线插孔区、微动开关/指示灯、逻辑笔、脉冲源、20个按键、字符式LCD、RS232口。

COP2000计算机组成原理实验系统各单元部件都以计算机结构模型布局,清晰明了,系统在实验时即使不借助PC 机,也可实时监控数据流状态及正确与否, 实验系统的软硬件对用户的实验设计具有完全的开放特性,系统提供了微程序控制器和组合逻辑控制器两种控制器方式,系统还支持手动方式、联机方式、模拟方式三种工作方式,系统具备完善的寻址方式、指令系统和强大的模拟调试功能。

(2)EDA环境•Xilinx foundation f3.1设计软件Xilinx foundation f3.1是Xilinx公司的可编程期间开发工具,该平台(如图1.2所示)功能强大,主要用于百万逻辑门设计。

该系统由设计入口工具、设计实现工具、设计验证工具三大部分组成。

设计入口工具包括原理图编辑器、有限状态机编辑器、硬件描述语言(HDL)编辑器、LogiBLOX模块生成器、Xilinx内核生成器等软件。

其功能是:接收各种图形或文字的设计输入,并最终生成网络表文件。

设计实现工具包括流程引擎、限制编辑器、基片规划器、FPGA编辑器、FPGA写入器等软件。

设计实现工具用于将网络表转化为配置比特流,并下载到器件。

设计验证工具包括功能和时序仿真器、静态时序分析器等,可用来对设计中的逻辑关系及输出结果进行检验,并详尽分析各个时序限制的满足情况。

图 1.2 Xilinx foundation f3.1设计平台•COP2000集成调试软件COP2000集成开发环境是为COP2000实验仪与PC机相连进行高层次实验的配套软件,它通过实验仪的串行接口和PC机的串行接口相连,提供汇编、反汇编、编辑、修改指令、文件传送、调试FPGA实验等功能,该软件在Windows 下运行。

第2章详细设计方案2.1 顶层方案图的设计与实现顶层方案图实现原码一位乘的逻辑功能,采用原理图设计输入方式完成,电路实现基于XCV200可编程逻辑芯片。

在完成原理图的功能设计后,把输入/输出信号安排到XCV200指定的引脚上去,实现芯片的引脚锁定。

2.1.1创建顶层图形设计文件顶层图形文件的设计实体主要由控制电路(H13)、加法器(H10)、两个寄存器(H9和H11)、一个由寄存器和与门组成的芯片(H8)等模块组装而成的一个完整的可编程逻辑芯片H1。

而以上顶层图形文件的设计可利用Xilinx foundation f3.1中逻辑器件实现,顶层图形文件结构如图2.1所示。

图2.1 定点原码一位乘法器的设计图形文件结构2.1.2器件的选择与引脚锁定(1)器件的选择由于硬件设计环境是基于伟福COP2000型计算机组成原理实验仪和XCV200实验板,故采用的目标芯片为Xilinx XCV200可编程逻辑芯片。

(2)引脚锁定把顶层图形文件中的输入/输出信号安排到Xilinx XCV200芯片指定的引脚上去,实现芯片的引脚锁定,各信号及Xilinx XCV200芯片引脚对应关系如表2.1所示。

表2.1 信号和芯片引脚对应关系S14 P19S15 P124S16 1252.1.3编译、综合、适配利用Xilinx foundation f3.1的原理图编辑器对顶层图形文件进行编译,并最终生成网络表文件,利用设计实现工具经综合、优化、适配,生成可供时序仿真的文件和器件下载编程文件。

2.2 功能模块的设计与实现定点原码一位乘法器的底层设计包括控制器(运算控制电路)、一个由寄存器和与门组成的芯片、加法器及两个寄存器的实现由Xilinx XCV200可编程逻辑芯片分别实现。

2.2.1 控制器模块的设计与实现该模块的输出为三个寄存器的控制端和加法器的进位输入端,根据S为0和1时他们应取的值,判断S与他们每个之间的关系,用对应的控制门连接。

所以只需要一个S控制端,开关S的电平变化可以控制整个电路的状态变化。

(1)创建控制器设计原理图。

控制器原理结构如图2.2所示:图2.2 控制器逻辑框图(2)创建元件图形符号为能在图形编辑器(原理图设计输入方式)中调用CONTROLER芯片,需要为CONTROLER模块创建一个元件图形符号,可利用Xilinx foundation f3.1编译器中的如下步骤实现:Tools=>Symbol Wizard=>下一步。

S是输入信号,0、S11、S01、S12、S02、S13、S03是输出信号。

其元件图形符号如图2.3所示:图2.3 控制器元件图形符号(3)功能仿真对创建的控制器模块进行功能仿真,验证其功能的正确性,可用Xilinx Foundation f3.1编译器Simulator模块实现。

仿真结果如图2.4所示:图2.4 控制器仿真结果控制电路的输入与输出信号的真值表如表2.2所示:表2.2控制电路的输入与输出信号的真值表步骤S 0 S11 S01 S12 S02 S13 S03 乘数与被乘数的并入 1 0 1 1 1 1 1 1右移 1 0 0 0 1 0 1 1 将仿真结果与控制电路的输入与输出信号的真值表相对照可知,控制器电路的仿真结果正确。

2.2.2 寄存器和与门组成的模块的设计与实现该模块分为两部分,74_198为被乘数寄存器,它将实现被乘数的并入,将其与乘数的最后一位分别相与,得到的即是要与部分积相加的X或0。

(1)创建寄存器和与门组成模块设计原理图。

寄存器和与门组成模块原理结构如图2.5所示:图2.5 寄存器和与门组成模块逻辑框图其中,与门的原理结构如图2.6所示:图2.6 与门逻辑框图(2)创建元件图形符号为能在图形编辑器(原理图设计输入方式)中调用X芯片,需要为X模块创建一个元件图形符号,可利用Xilinx foundation f3.1编译器中的如下步骤实现:Tools=>Symbol Wizard=>下一步。

A1-A8是数据输入信号,CP、CLR、CK、B、1、0是输入信号,S1-S8是数据输出信号。

其元件图形符号如图2.7所示:图2.7 寄存器和与门模块元件图形符号(3)功能仿真对创建的寄存器和与门模块进行功能仿真,验证其功能的正确性,可用XilinxFoundation f3.1编译器Simulator模块实现。

仿真结果如图2.8所示:图2.8 寄存器和与门模块仿真结果与门仿真结果如图2.9所示:图2.9 与门仿真结果将寄存器和与门模块的功能和仿真结果对照可知,寄存器和与门模块的仿真结果正确。

2.2.3 加法器模块的设计与实现该模块实现的是两个八位二进制数的相加,可以用两个四位二进制数加法器组合得到。

四位加法器的设计可以参考环境中已有的芯片结构来设计。

(1)创建加法器设计原理图。

加法器原理结构如图2.10所示:图2.10 加法器逻辑框图其中,4位加法器原理结构如图2.11所示:图2.11 4位加法器逻辑框图(2)创建元件图形符号为能在图形编辑器(原理图设计输入方式)中调用AND_8芯片,需要为AND_8模块创建一个元件图形符号,可利用Xilinx foundation f3.1编译器中的如下步骤实现:Tools=>Symbol Wizard=>下一步。

相关文档
最新文档