当前位置:文档之家› 定点原码一位乘法器的设计 (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语言进行设计,顶层的乘法器采用原理图设计输入方式。

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

运算结果的符号是乘数和被乘数符号位的异或,即z=x⊕y。

一位乘法运算将乘法分解成一系列加法操作,每次判断乘数中的最低位决定将被乘数或零放到加法器的一个输入端口,将部分积送入另一个输入端口。

计算的结果送入移位寄存器再将其高七位送入部分积寄存器,低一位送入乘数移位寄存器。

这样就完成了一次移位和加法操作。

要实现8位*8位乘法运算需要进行8次移位和加法操作。

8次移位完后给各元件清零,此工作由计数器控制。

如图1.2所示。

完成上诉电路设计后实现原码一位乘法器的功能后,经编译、调试后形成*.bit 文件并下载到XCV200可编程逻辑芯片中,经硬件测试验证设计的正确性。

图1﹒2原码一位乘法的逻辑电路框图1.3 设计环境·硬件环境:伟福COP2000型计算机组成原理实验仪、FPGA实验板、PC 机;·软件环境:Xilinx Foundation F3﹒1软件、COP 2000 仿真软件。

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

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

2.1.1创建顶层图形设计文件顶层图形文件采用原理图设计输入方式,顶层图形文件结构如图2.1所示。

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

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

表2.1 信号和芯片引脚对应关系2.2 功能模块的设计与实现原码一位乘法器的设计主要包括8位移位寄存器、部分积寄存器、乘数移位寄存器、二路选择器、计数器、结果输出器这六大部分。

这些模块除部分积寄存器外均采用Verilog语言实现。

2.2.1 8位移位电路(1)功能描述:(2)V erilog语言描述:module GDF (D,CLR, F, FA, CI) ;input [7:0] D ;input CLR;input F ;output [7:0] FA ;reg [7:0] FA ;output CI ;reg CI ;always @ (CLR)beginif(CLR)beginFA<=0;CI<=0;endelsebeginFA[7]<=F; FA[6]<=D[7];FA[5]<=D[6]; FA[4]<=D[5];FA[3]<=D[4]; FA[2]<=D[3];FA[1]<=D[2]; FA[0]<=D[1];CI<=D[0];endendendmodule(3)元件:图 2.2.1 8位移位寄存器(4)仿真:2.2.2部分积寄存器(1)功能描述:(2)元件:图2.2.2部分积寄存器(3)仿真:2.2.3乘数寄存器(1)功能描述:( 2 ) Verilog语言描述:module CHENG (LOAD, SIN, DIN, CLK, CLR, Q, KIN) ;input LOAD ;input SIN ;input [7:0] DIN ;input CLK ;input CLR ;output [7:0] Q ;reg [7:0] Q ;output KIN ;reg KIN ;always@(posedge CLK or posedge CLR)beginif(CLR) Q <=0;else if(LOAD) Q<=DIN;elsebeginKIN<=Q[0];Q <= Q>>1;Q[7]<=SIN;endendendmodule( 3 ) 元件:图2.2.3乘数寄存器( 4 ) 仿真:2.2.4二路选择器(1)功能描述:SO=1时,输出等于被乘数。

SO=0时,输出等于零。

(2)V erilog语言描述:module XUAN2 (B, SO, QOUT) ;input [7:0] B ;input SO ;output [7:0] QOUT ;reg [7:0] QOUT ;// add your code herealways@(SO )beginif(SO) QOUT<=B;else QOUT<=0;endendmodule(3)元件:图2.2.4二路选择器(4)仿真:2.2.5计数器(1)功能描述:实现模11计数器功能记录十一个脉冲一清零,1~A 时CO=0,下一个脉冲即B脉冲来时CO=1。

(2)V erilog语言描述:module JISHU (CLK, CLR, QOUT, CO)input CLK ;input CLR ;output [3:0] QOUT ;reg [3:0] QOUT ;output CO ;reg CO ;// add your code herealalways @ (posedge CLK or posedge CLR)beginif(CLR)beginQOUT<=0;CO<=1;endelse if(QOUT==11)beginQOUT<=0;CO<=1;endelsebeginQOUT<=QOUT+1;CO<=0;endendendmodule(3)元件:图2.2.5计数器(4)仿真:2.2.6结果输出器(1)功能描述:(2)V erilog语言描述:module HH (A, B, CE,CI, QQQQ) ;input [3:0]CE;input [7:0] A ;input [7:0] B ;input CI ;output [16:0] QQQQ ;reg [16:0] QQQQ ;// add your code herealways@(CE)beginif(CE==11)beginQQQQ[0]<=B[0];QQQQ[1]<=B[1];QQQQ[2]<=B[2];QQQQ[3]<=B[3];QQQQ[4]<=B[4];QQQQ[5]<=B[5];QQQQ[6]<=B[6];QQQQ[7]<=B[7];QQQQ[8]<=A[0];QQQQ[9]<=A[1];QQQQ[10]<=A[2];QQQQ[11]<=A[3];QQQQ[12]<=A[4];QQQQ[13]<=A[5];QQQQ[14]<=A[6];QQQQ[15]<=A[7];QQQQ[16]<=CI;endendendmodule(3)元件:图2.2.6 结果输出器(4)仿真:2.3 仿真调试仿真调试主要验证设计电路逻辑功能、时序的正确性,本设计中主要采用功能仿真方法对设计的电路进行仿真。

(1)建立仿真波形文件及仿真信号选择功能仿真时,首先建立仿真波形文件,选择仿真信号,对选定的输入信号设置参数,选定的仿真信号和设置的参数以及输出结果如表2.2所示。

表2.2 仿真信号选择和参数设置(2)功能仿真结果与分析功能仿真波形结果如图2.2所示,仿真数据结果如表2.2所示。

X=–OC(XA 为其符号位),Y=3D(Y A为其符号位),X*Y=732,仿真结果为102DC(第一位为符号位,其余四位为数值位)即为十进制数–732,可以看出功能仿真结果是正确的,进而说明电路设计的正确性。

图2.2 功能仿真波形结果沈阳航空工业学院课程设计报告第3章编程下载与硬件测试第3章编程下载与硬件测试3.1 编程下载利用Xilinx ISE的编程下载功能,将得到的*.bin文件下载到XCV200实验板的XCV200可编程逻辑芯片中。

3.2 硬件测试及结果分析利用XCV200实验板进行硬件功能测试。

一位全加器的输入数据通过XCV200实验板的输入开关实现,输出数据通过XCV200实验板的LED指示灯实现,其对应关系如表3.1所示。

表3.1 XCV200实验板信号对应关系利用表2.2中的输入参数作为输入数据,逐个测试输出结果,即用XCV200实验板的开关K0、K1、K2输入数据,同时观察7段数码管的输出,在测试中出现了错误,没能下载成功。

参考文献[1]曹昕燕.EDA技术实验与课程设计[M].北京:清华大学出版社,2006[2]范延滨.微型计算机系统原理、接口与EDA设计技术[M].北京:北京邮电大学出版社,2006[3]王爱英.计算机组成与结构(第4版)[M].北京:清华大学出版社,2006[4]钟友鹏.计算机组成课程设计指导.第一版.上海复旦大学出版社,1989[5]葛本修.计算机组成与结构.北京:北京航空航天大学出版社,1992[6]林灶生.Verilog FPGA芯片设计.北京:北京航空航天大学出版社,2006.7[7]刘绍汉,林灶生,刘新民.VHDL 芯片设计[M].台湾:全华科技图书股份有限公司,1992[8]朱正伟,EDA技术及应用,清华大学出版社附录(电路原理图)原理图。

相关主题