计算机组成原理 阵列乘法器的设计
- 格式:doc
- 大小:281.50 KB
- 文档页数:18
6位有符号补码阵列乘法器一. 简介在计算机科学和数字电路设计中,6位有符号补码阵列乘法器是一种重要的电路组件。
补码是一种表示有符号数的编码方式,能够有效地表示负数。
本文将深入探讨6位有符号补码阵列乘法器的原理、设计和应用,并分享对该电路的观点和理解。
二. 原理1. 有符号补码表示有符号补码是一种在计算机中表示负数的常用编码方式。
在6位有符号补码中,最高位表示符号位,0代表正数,1代表负数。
其余位表示数值部分,通过取反加一的方式对负数进行编码。
2. 阵列乘法器阵列乘法器是一种用于执行乘法运算的电路。
6位有符号补码阵列乘法器能够以比较高的效率和较小的面积完成乘法运算。
其主要原理是将乘法运算拆分为多个部分,使用并行的方式进行计算,并最后将结果相加得到最终的乘积。
三. 设计1. 输入和输出6位有符号补码阵列乘法器一般包含两个输入,分别是被乘数和乘数,以及一个输出,即乘积。
被乘数和乘数的输入位数都为6位。
2. 乘法计算乘法计算是6位有符号补码阵列乘法器的核心部分。
它首先对乘数进行拆分,每一位与被乘数相乘,从而生成多个部分乘积。
接下来,对这些部分乘积进行累加,最后得到乘积的结果。
该阵列乘法器的设计需要考虑到乘法运算可能会出现的溢出和进位问题。
3. 控制逻辑6位有符号补码阵列乘法器还需要一些控制逻辑来控制乘法计算的顺序和结果的输出。
这些控制逻辑一般包括时钟信号、使能信号和清零信号等。
四. 应用1. 数字信号处理6位有符号补码阵列乘法器在数字信号处理领域得到广泛应用。
它能够高效地进行乘法运算,常用于滤波器等算法的实现。
2. 图像处理图像处理中经常需要进行像素之间的乘法运算,例如图像增强、滤波和特征提取等。
6位有符号补码阵列乘法器可以在图像处理中快速完成这些乘法运算。
3. 神经网络神经网络是人工智能领域的热门研究方向。
6位有符号补码阵列乘法器能够提供高效的乘法运算支持,可以在神经网络的训练和推理过程中扮演重要角色。
5位无符号阵列乘法器引言在现代计算机系统中,乘法操作是一种非常常见且重要的运算。
在数字电路中,乘法运算特别复杂,需要大量的逻辑门和连线来完成。
为了高效地实现乘法运算,设计和构建一个5位无符号阵列乘法器成为了一个非常有挑战性的任务。
本文将深入探讨5位无符号阵列乘法器的原理、设计和实现。
原理5位无符号阵列乘法器是用来完成两个5位无符号整数的乘法运算的电路。
其基本原理如下:1.输入:两个5位无符号整数A和B。
2.分解:将A和B分别分解成5个位的二进制数,分别表示为A[4:0]和B[4:0]。
3.部分积计算:将A[4:0]的每一位与B[4:0]的每一位相乘,得到25个部分积P[0]到P[24]。
4.部分积相加:将部分积P[0]到P[24]相加,得到乘积的结果。
设计为了设计一个高效的5位无符号阵列乘法器,我们可以采用以下步骤:步骤1:分解和扩展将输入的两个5位无符号整数A和B分别分解成5个位的二进制数A[4:0]和B[4:0]。
由于乘法运算的结果可能超过10位,因此需要对扩展位进行处理。
步骤2:乘法运算将A[4:0]的每一位与B[4:0]的每一位相乘,得到25个部分积P[0]到P[24]。
这可以通过使用5个乘法器来实现,每个乘法器计算一对位的乘积。
步骤3:部分积相加将部分积P[0]到P[24]相加,得到乘积的结果。
这可以通过使用一个加法器阵列来实现,将每个部分积的位相加。
实现为了实现一个高效的5位无符号阵列乘法器,可以采用如下的实现方案:方案1:并行计算采用并行计算的方式,将A[4:0]的每一位与B[4:0]的每一位同时相乘。
这可以通过使用5个乘法器来实现,并将每个乘法器的输出连至加法器阵列。
方案2:串行计算采用串行计算的方式,将A[4:0]的每一位与B[4:0]的每一位依次相乘。
这可以通过使用一个乘法器和一个移位寄存器来实现,依次计算出每个部分积,并将每个部分积的位相加。
总结在本文中,我们深入探讨了5位无符号阵列乘法器的原理、设计和实现。
.课程设计.教学院计算机学院课程名称计算机组成原理题目4位乘法整列设计专业计算机科学与技术班级2014级计本非师班姓名唐健峰同组人员黄亚军指导教师2016 年10 月 5 日1 课程设计概述1.1 课设目的计算机组成原理是计算机专业的核心专业基础课。
课程设计属于设计型实验,不仅锻炼学生简单计算机系统的设计能力,而且通过进行设计及实现,进一步提高分析和解决问题的能力。
同时也巩固了我们对课本知识的掌握,加深了对知识的理解。
在设计中我们发现问题,分析问题,到最终的解决问题。
凝聚了我们对问题的思考,充分的锻炼了我们的动手能力、团队合作能力、分析解决问题的能力。
1.2 设计任务设计一个4位的二进制乘法器:输入信号:4位被乘数A(A1,A2,A3,A4), 4位乘数B(B1,B2,B3,B4),输出信号:8位乘积q(q1,q2,q3,q4,q5,q6,q7,q8).1.3 设计要求根据理论课程所学的至少设计出简单计算机系统的总体方案,结合各单元实验积累和课堂上所学知识,选择适当芯片,设计简单的计算机系统。
(1)制定设计方案:我们小组做的是4位阵列乘法器,4位阵列乘法器主要由求补器和阵列全加器组成。
(2)客观要求要掌握电子逻辑学的基本内容能在设计时运用到本课程中,其次是要思维灵活遇到问题能找到合理的解决方案。
小组成员要积极配合共同达到目的。
2 实验原理与环境2.1 1.实验原理计算机组成原理,数字逻辑,maxplus2是现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。
它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
用乘数的每一位去乘被乘数,然后将每一位权值直接去乘被乘数得到部分积,并按位列为一行每一行部分积末位与对应的乘数数位对齐,体现对应数位的权值,将各次部分积求和得到最终的对应数位的权值。
乘位阵列乘法器设计集团文件版本号:(M928-T898-M248-WU2669-I2896-DQ586-M1988)课程设计报告课程设计题目: 4乘4位阵列乘法器设计学生姓名:杨博闻学号专业:计算机科学与技术班级: 1120701指导教师:汪宇玲2014年 1月 4日一、设计目的1.掌握乘法器的原理及其设计方法。
2 .熟练应用CPLD 设计及 EDA 操作软件。
二、设计设备1.TDN-CM+或 TDN-CM++教学实验系统一套。
2 ·PC 微机一台。
3·ispDesignEXPERT 软件模型机数据通路结构框图三、设计原理本实验用 CPLD 来设计一个 4 ×4 位乘法器,相对于画电路图输入,用 ABEL 语言描述是比较方便的。
其算式如下(其中括号中的数字表示在 ABEL 源程序描述中的功能块调用编号):a3 a2 a1 a0× b3 b2 b1 b0----------------------------------------------------------------------------------------------------------a3b0(10) a2b0(6)a1b0(3) a0b0(1)a3b1(13) a2b1(9) a1b1(5)a0b1(2)a3b2(15) a2b2(12) a1b2(8) a0b2(4) + a3b3(16) a2b3(14) a1b3(11) a0b3(7)-----------------------------------------------------------------------------------------------------------p7 p6 p5 p4 p3 p2 p1 p0四、设计步骤1.安装EDA 软件打开计算机电源,进入 Windows 系统,安装上述 ispDesignEXPERT软件。
实验六阵列乘法器学号1025114016 姓名舒忠明学号1025116030 姓名张宇霆实验目的通过实现n位阵列乘法器,理解阵列乘法器工作原理。
实验设备1.装有ISE10.1的PC机一台2.EDK-3SAISE实验箱一台实验任务1.用verilog描述图1所示的5位无符号数阵列乘法器,先完成功能仿真,再加载到实验箱运行。
2*.在上题的基础上,参考图2、3所示原理,描述6位有符号数阵列乘法器,先完成功能仿真,再加载到实验箱运行。
图1 5位无符号数阵列乘法器图2 n+1位有符号数阵列乘法器图3 5位补码的求补电路原理图实验报告格式一、实验目的二、实验设备三、实验内容1. 用verilog描述图1所示的5位无符号数阵列乘法器,先完成功能仿真,再加载到实验箱运行。
1.模块代码module hw_mul(x, y, out);parameter n = 16;input [n-1:0]x, y;output [n*2-1:0]out;genvar i, j, k, l;wire [n:0]tmp_sun[n-1:0], tmp_out[n-1:0];wire [n:0]tmp_x;// 1. generate语法有generate for, genreate if和generate case三种 2. generate for语句必须有genvar关键字定义for的变量 3. for 的内容必须加begin和end 4. 必须给for语段起个名字assign tmp_x = {1'b0,x};// 1'b0 表示1位宽,2进制,数字0assign out[0] = tmp_x[0] & y[0];generateassign tmp_out[0][0] = 1'b0;for(i=0;i<n;i=i+1)//循环相加顶层乘数的前两位与上被乘数的部分积.begin:add_bttop_m tm (tmp_x[i+1], y[0], tmp_x[i], y[1], tmp_out[0][i], tmp_sun[0][i], tmp_out[0][i+1]);//module top_m(m0, q0, m1, q1, cin, sun, cout);顶层乘法单元endassign out[1] = tmp_sun[0][0];assign tmp_sun[0][n] = tmp_out[0][n];for(j=2;j<n;j=j+1)//从第三位开始的每一位与上被乘数,然后跟上一层的部分积结果相加.begin:ftffor(k=0;k<n;k=k+1)begin:add_bbbtm_m bm (tmp_sun[j-2][k+1], tmp_x[k], y[j], tmp_out[j-1][k], tmp_sun[j-1][k], tmp_out[j-1][k+1]);//module btm_m(sunin, m, q, cin, sun, cout);底层乘法单元endassign out[j] = tmp_sun[j-1][0];assign tmp_sun[j-1][n] = tmp_out[j-1][n];endfor(l=n;l<n*2;l=l+1)begin:add_oassign out[l] = tmp_sun[n-2][l-n+1];endendgenerateendmodulemodule top_m(m0, q0, m1, q1, cin, sun, cout);//顶层乘法单元input m0, m1, q0, q1;input cin;output sun, cout;//sun:提供给下一层的和(↓);cout:提供给下一层的进位输出(↙)wire x, y;assign x = m0 & q0;assign y = m1 & q1;full_add fa (x, y, cin, sun, cout);//一位全加器endmodulemodule btm_m(sunin, m, q, cin, sun, cout);//下层乘法单元input sunin, m, q, cin;//sunin:来自上一层的和输出(↓);m,q:两个乘数在当层对应的位(←);cin:来自上一层的进位输出(↙)output sun, cout;//sun:提供给下一层的和(↓);cout:提供给下一层的进位输出(↙)wire y;assign y = m & q;full_add fa (sunin, y, cin, sun, cout);//一位全加器endmodulemodule full_add(x, y, cin, sun, cout);//一位全加器input x, y, cin;output reg sun, cout;always@(x, y, cin)beginsun <= x^y^cin;cout <= x&y | x&cin | y&cin;endendmodule2.功能仿真测试代码module TEST;// Inputsreg [4:0] x;reg [4:0] y;// Outputswire [9:0] out;// Instantiate the Unit Under Test (UUT)zhenliecf uut (.x(x),.y(y),.out(out));initial begin// Initialize Inputsx = 0;y = 0;// Wait 100 ns for global reset to finish#100;// Add stimulus hereendalways #10 x[0]=~x[0];always #20 x[1]=~x[1];always #30 x[2]=~x[2];always #40 x[3]=~x[3];always #50 x[4]=~x[4];always #60 y[0]=~y[0];always #70 y[1]=~y[1];always #80 y[2]=~y[2];always #90 y[3]=~y[3];always #100 y[4]=~y[4];endmodule3.功能仿真测试时序图参考资料12位LED灯12位拨动开关。
4位阵列乘法器[整理版]目录一、设计题目 ......................................................2 二、设计目的 (2)三、设计过程 (2)3.1设计原理 .......................................................23.2器件选择 .......................................................33.3逻辑原理 .......................................................33.4阵列乘法器的逻辑原理 (4)3.5 时序图..........................................................4 四、设计心得 (5)五、参考文献 (6)4位阵列乘法器一、设计题目 4位阵列乘法器二、设计目的计算机组成原理是计算机专业的核心专业基础课。
课程设计属于设计型实验,不仅锻炼学生简单计算机系统的设计能力,而且通过进行设计及实现,进一步提高分析和解决问题的能力。
同时也巩固了我们对课本知识的掌握,加深了对知识的理解。
在设计中我们发现问题,分析问题,到最终的解决问题。
凝聚了我们对问题的思考,充分的锻炼了我们的动手能力、团队合作能力、分析解决问题的能力。
三、设计过程3.1设计原理阵列乘法器是类似于人工计算(如图1.1所示)的方法,乘数与被乘数都是二进制数。
所以可以通过乘数从最后一位起一个一个和被乘数相与,自第二位起要依次向左移一位,形成一个阵列的形式。
这就可将其看成一个全加的过程,将乘数某位与被乘数某位与完的结果加上乘数某位的下一位与被乘数某位的下一位与完的结果再加上前一列的进位进而得出每一位的结果。
一个阵列乘法器要完成X(Y乘法运算(X=X4X3X2X1,Y=Y4Y3Y2Y1)。
沈阳航空工业学院课程设计报告课程设计名称:计算机组成原理课程设计课程设计题目:阵列乘法器的设计院(系):计算机学院专业:计算机科学与技术班级:4401102学号:200403011062姓名:余舟华指导教师:李平完成日期:2006年12月31日沈阳航空工业学院课程设计报告目录、 .................................................................................................... 错误!未定义书签。
第1章总体设计方案.. (1)1.1设计原理 (1)1.3设计环境 (3)第2章详细设计方案 (4)2.1顶层方案图的设计与实现 (4)2.1.1创建顶层图形设计文件 (4)2.1.2器件的选择与引脚锁定 (4)2.2功能模块的设计与实现 (5)2.3仿真调试 (9)第3章编程下载与硬件测试 (10)3.1 编程下载 (10)3.2硬件测试及结果分析 (10)参考文献 (12)附录:电路图 (13)第1章总体设计方案1.1 设计原理串行方法毕竟太慢,执行一次乘法的时间至少是执行一次加法时间的n倍,不能满足科学技术对高速乘法所提出的要求。
自从大规模集成电路问世以来,高速的单元阵列乘法器应运而生,出现了各种形式的硬件乘法器的常规设计是适用“串行移位”和“并行加法”相结合的方法,这种方法并不需要很多器件。
然而流水线阵列乘法器,它们属于并行乘法器,提供了极快的速度。
如图所示的一个阵列乘法器完成X*Y乘法运算(X=X1X2X3X4,Y=Y1Y2Y3Y4)。
阵列的每一行送入乘数Y的每一位数位,而各行错开形成的每一斜列则送入被乘数的每一数位。
图中每一个方框包括一个与门和一个两位全加器。
阵列乘法器的原理框图如图1.1所示,X[4:1],Y[4:1]分别是乘数和被乘数输入端,MULT[8:1]为乘积输出端。
图1.1 阵列乘法器原理框图阵列乘法器实现的功能是计算两个四位二进制间的算法,由数据总线将乘数Y[4:1]和被乘数X[4:1]送到乘法器中,经阵列乘法器计算出结果由总线MULT[8:1]输出。
组成原理课设阵列乘法器在现代科技的发展中,计算机和电子设备的性能提升日新月异。
而在这些设备中,乘法器是一个至关重要的组成部份。
乘法器的性能直接影响到整个系统的运算速度和效率。
因此,设计一个高效且可靠的乘法器是组成原理课程中的一项重要任务。
一、乘法器的基本概念乘法器是一种用于实现两个数相乘的电子电路。
在计算机中,乘法器的作用是进行大量的乘法运算,从而实现复杂的计算任务。
乘法器通常由多个逻辑门和触发器组成,其内部结构可以分为串行乘法器和并行乘法器两种类型。
二、串行乘法器的原理串行乘法器是一种逐位相乘的乘法器,它将两个数的每一位进行相乘,并将结果相加得到最终的乘积。
串行乘法器的原理可以通过以下步骤来说明:1. 将两个数的每一位进行相乘,得到部份积。
2. 将部份积与进位相加,得到新的部份积。
3. 重复以上步骤,直到所有位数都相乘完毕。
4. 将所有的部份积相加,得到最终的乘积。
串行乘法器的优点是结构简单,适合于小规模的乘法运算。
但是由于乘法运算是逐位进行的,所以串行乘法器的运算速度较慢。
三、并行乘法器的原理并行乘法器是一种同时进行多位乘法运算的乘法器,它可以大大提高乘法运算的速度。
并行乘法器的原理可以通过以下步骤来说明:1. 将两个数的每一位进行相乘,得到部份积。
2. 将所有的部份积同时进行相加,得到最终的乘积。
并行乘法器的优点是运算速度快,适合于大规模的乘法运算。
但是由于并行乘法器的结构复杂,所以其设计和实现难度较大。
四、阵列乘法器的原理阵列乘法器是一种基于并行乘法器的乘法器,它通过将乘法运算分解成多个子运算,并将这些子运算并行进行,从而提高乘法运算的速度。
阵列乘法器的原理可以通过以下步骤来说明:1. 将两个数的每一位进行相乘,得到部份积。
2. 将所有的部份积按照位数进行罗列,形成一个二维矩阵。
3. 将矩阵中的每一行进行相加,得到每一位的乘积。
4. 将所有的乘积相加,得到最终的乘积。
阵列乘法器的优点是结构简单、运算速度快,适合于大规模的乘法运算。
5位阵列乘法器一、简介五位阵列乘法器是一种常见的数字电路,用于实现两个五位二进制数的乘法运算。
该乘法器采用了阵列的结构,通过并联和串联多个基本电路单元,可以进行高效的乘法运算。
二、原理五位阵列乘法器的原理基于二进制乘法运算规则。
在二进制乘法中,每一位上的数相乘得到一个部分积,最后将所有部分积相加即可得到最终结果。
例如,对于5位二进制数A和B:A = a4 a3 a2 a1 a0B = b4 b3 b2 b1 b0其部分积P(i,j)为:P(i,j) = ai bj (i+j)其中i和j表示A和B中对应位的位置。
三、电路结构五位阵列乘法器由多个基本电路单元组成,包括与门、异或门、全加器等。
这些单元按照一定的规律排列组合形成了一个阵列结构。
具体来说,该电路包括以下几个部分:1.输入端:包括两个5位二进制数A和B。
2.预处理模块:将输入信号转换成适合计算的形式。
3.主要计算模块:采用阵列结构进行乘法运算。
4.后处理模块:将计算结果转换成正确的形式并输出。
四、电路设计五位阵列乘法器的电路设计需要考虑多个因素,包括电路结构、信号处理、时序控制等。
以下是一个基于Verilog语言的五位阵列乘法器电路设计示例:1.输入端:module multi5 (A, B, P);input [4:0] A, B;output [9:0] P;2.预处理模块:wire [9:0] AB[4:0], BB[4:0];assign AB[0] = {5'b0, A};assign BB[0] = {5'b0, B};genvar i;for (i = 1; i < 5; i = i + 1) beginassign AB[i] = {AB[i-1][8:0], 1'b0};assign BB[i] = {BB[i-1][8:0], 1'b0};end3.主要计算模块:wire [9:0] P[4:0];genvar i, j;for (i = 0; i < 5; i = i + 1) beginfor (j = 0; j < 5; j = j + 1) beginif ((i+j) <= 8) beginand #(10) and_gate (.a(AB[i]), .b(BB[j]), .p(P[i+j]));endendend4.后处理模块:assign P[9] = P[8][0];assign P[8] = {P[8][1:0], P[7][0]};assign P[7:0] = {P[7:1], 1'b0};assign P = P[9:0];endmodule五、应用场景五位阵列乘法器广泛应用于数字信号处理、通信系统、图像处理等领域。
沈阳*****课程设计报告课程设计名称:计算机组成原理课程设计课程设计题目:阵列乘法器的设计院(系):计算机学院专业:计算机科学与技术班级:学号:姓名:指导教师:完成日期:2007年1月7日目录第1章总体设计方案 (1)1.1 设计原理 (1)1.2 设计思路 (1)1.3 设计环境 (1)第二章详细设计方案 (2)2.1顶层方案图的设计与实现 (2)2.1.1创建顶层图形设计文件 (2)2.1.2器件的选择与引脚锁定 (3)2.1.3编译、综合、适配........................................................................ . (4)2.2底层的设计与实现........................................................................ (4)2.2.1阵列乘法器的设计与实现..................................... ................. .......... ................. (4)2.3功能模块的设计与实现 (6)2.4 仿真调试.................................................................................. (7)第3章编程下载与硬件测试 (10)3.1 编程下载 (10)3.2 硬件测试及结果分析 (10)参考文献 (12)课程设计总结 (13)第1章总体设计方案1.1 设计原理阵列乘法器是类似于人工计算的方法,乘数与被乘数都是二进制数。
所以可以通过乘数从最后一位起一个一个和被乘数相与,自第二位起要依次向左移一位,形成一个阵列的形式。
这就可将其看成一个全加的过程,将乘数某位与被乘数某位与完的结果加上乘数某位的下一位与被乘数某位的下一位与完的结果再加上前一列的进位进而得出每一位的结果。
一个阵列乘法器要完成X.Y乘法运算(X=X4X3X2X1,Y=Y4Y3Y2Y1)。
阵列的每一行送入乘数Y的每一位数位,而各行错开形成的每一斜列则送入被乘数的每一数位。
阵列乘法器是由十六个模块组成,每一个模块构包括一个与门和一位全加器。
1.2 设计思路整体设计方法为先顶层后底层,逐步完成。
顶层设计采用原理图设计输入方式。
顶层由两个输入寄存器存储输入数据和一个输出寄存器存储输出数据和一个阵列乘法器元件图形符号相连接。
底层设计由相同的十六个模块组成,依次将模块按原理连接。
又由三个与门、三个异或门和一个或门的逻辑电路构成乘法器的功能模块并采用原理图设计输入方式。
采用硬件描述语言进行电路设计并实现给定的功能,设计的原理图经编译、调试后形成*.bit文件并下载到XCV200可编程逻辑芯片中,经硬件测试验证设计的正确性。
1.3 设计环境·硬件环境:伟福COP2000型计算机组成原理实验仪、XCV200实验板、微机;·软件环境:Xilinx Foundation3.1设计软件、COP2000仿真软件。
第2章详细设计方案2.1 顶层方案图的设计与实现顶层方案图实现四乘四位阵列乘法器的逻辑功能,采用原理图设计输入方式完成,电路实现基于XCV200可编程逻辑芯片。
在完成原理图的功能设计后,把输入/输出信号安排到XCV200指定的引脚上去,实现芯片的引脚锁定。
2.1.1创建顶层图形设计文件顶层图形文件主要由四位被乘数输入端(X4X3X2X1)、四位乘数输入端(Y4Y3Y2Y1)和八位乘积输出端(Z8Z7Z6Z5Z4Z3Z2Z1)。
包括三个寄存器(FD4CE)和一个阵列乘法器。
四位被乘数和四位乘数分别存入两个输入寄存器后再打入阵列乘法器进行计算,再将结果存入输出寄存器最后将结果输出。
寄存器的CE端可控制是否使用寄存器,CE=1时使用寄存器,CE=0时停止使用。
C为脉冲控制着数据是否打入;CLR为寄存器的清零端,CLR=1时清零。
以便下一个数据的打入。
可利用Xilinx Foundation3.1软件实现顶层图形文件的设计,顶层图形文件结构如图2.1所示。
图2.1 四位阵列乘法器顶层图形文件结构2.1.2器件的选择与引脚锁定(1)器件的选择由于硬件设计环境是基于伟福COP2000型计算机组成原理实验仪和XCV200实验板,故采用的目标芯片为Xlinx XCV200可编程逻辑芯片。
(2)引脚锁定把顶层图形文件中的输入/输出信号安排到Xlinx XCV200芯片指定的引脚上去,实现芯片的引脚锁定,各信号及Xlinx XCV200芯片引脚对应关系如表2.1所示。
表2.1 信号和芯片引脚对应关系2.1.3编译、综合、适配利用Xilinx Foundation3.1编译器对顶层图形文件进行编译、综合、优化、逻辑分割、适配和布线,生成可供时序仿真的文件和器件下载编程文件。
2.2底层的设计与实现四乘四位阵列乘法器的每一个模块都是由一个两输入与门和一个全加器组成的,设计时将与门和全加器使用原理图输入设计方式实现阵列乘法器一个模块的功能。
2.2.1阵列乘法器的设计与实现阵列乘法器由十六个相同的基本乘法器模块构成,每一个模块由四个输入端(XIN,YIN,PARTIN,CNIN),两个输出端(PARTOUT,CNOUT)组成。
实现XIN,YIN与完后和PARTIN,CNIN相加后,PARTOUT输出部分积结果加到同一列的下一行的模块上,CNOUT输出结果加到同一行的下一列的模块上。
依次类推将结果输出。
X1、X2、X3、X4为阵列乘法器的四个被乘数输入端Y1、Y2、Y3、Y4为四个乘数输入端。
将输入输出连接在模块上。
Z1、Z2、Z3、Z4、Z5、Z6、Z7、Z8为八个乘积的输出端。
其设计过程如下:(1)原理图设计输入方式(2)创建元件图形符号为了能在图形编辑器(原理图设计输入方式)中调用此阵列乘法器,需要为此乘法器创建一个元件图形符号,可用Xilinx Foundation3.1编译器的Create Symbol模块实现。
此元件如下图所示2.3功能模块的设计与实现阵列乘法器的一个模块由三个与门、三个异或门和一个或门组成。
输入方式采用原理图输入设计方式。
四个输入为XIN、YIN、PARTIN,CNIN,两个输出为PARTOUT、CNOUT。
其设计过程如下:(1)原理图设计输入方式(2)创建元件图形符号为了能在图形编辑器(原理图设计输入方式)中调用此器件,需要为此器件创建一个元件图形符号,可用Xilinx Foundation3.1编译器的Create Symbol模块实现。
此元件如下图所示。
(3)功能仿真对创建的乘法器元件进行功能仿真,验证其功能的正确性,可用Xilinx ISE 编译器的Simulator模块实现。
2.4 仿真调试仿真调试主要验证设计电路逻辑功能、时序的正确性,本设计中主要采用功能仿真方法对设计的电路进行仿真。
(1)建立仿真波形文件及仿真信号选择功能仿真时,首先建立仿真波形文件,选择仿真信号,对选定的输入信号设置参数,选定的仿真信号和设置的参数如表2.4所示。
表2.4仿真信号选择和参数设置(2)功能仿真结果与分析功能仿真波形结果如图2.3所示,仿真数据结果如表2.3所示。
对表2.3与表1.1的内容进行对比,可以看出功能仿真结果是正确的,进而说明电路设计的正确。
十六进制仿真结果二进制仿真结果图2.3 功能仿真波形结果第3章编程下载与硬件测试3.1 编程下载利用Xilinx Foundation3.1的软件实现编程下载功能,将得到的*.bin文件下载到XCV200实验板的XCV200可编程逻辑芯片中。
3.2 硬件测试及结果分析利用XCV200实验板进行硬件功能测试。
一位全加器的输入数据通过XCV200实验板的输入开关实现,输出数据通过XCV200实验板的液晶显示管实现,其对应关系如表3.1所示。
表3.1 XCV200实验板信号对应关系利用表2.4中的输入参数作为输入数据,逐个测试输出结果,即用XCV200实验板的开关K0(7),K0(6),K0(5),K0(4),K0(3),K0(2),K0(1),K0(0),K2(1),K2(0)输入数据,同时观察S1的输出结果。
得到如表3.2所示的硬件测试结果。
表3.2 硬件测试结果(举例)路设计完全正确。
参考文献[1] 曹昕燕.EDA技术实验与课程设计[M].北京:清华大学出版社,2006[2] 范延滨.微型计算机系统原理、接口与EDA设计技术[M].北京:北京邮电大学出版社,2006[3] 王爱英.计算机组成与结构(第4版)[M].北京:清华大学出版社,2006[4] 夏宇闻.Verilog数字系统设计教程[M]北京航空航天大学出版社,2003[5] 黄建文艾西加魏方.VHDL语言及其应用1997年北京中国铁道出版社。
[6]王金明杨吉斌.数字系统设计与verilog HDL 北京:电子工业出版社[7]侯建军.数字逻辑与系统解题指导和Foundation操作指南北京 2001 中国铁道出版社[8]王冠黄熙王鹰.V erilog HDL与数字电路设计机械工业出版社。