




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
八位硬件乘法器的设计( 陕西理工学院电信工程系通信041,陕西汉中,723003 ) 摘 要:本文通过运用EDA技术,采用VHDL语言和原理图输入法编辑文件,采用移项相加原理对八位乘法器进行了设计,经过编译、化简、分割、综合、优化、布局、布线、仿真及测试,综合后下载到EPM7128SLC84-15测试最终得到所要设计的八位乘法器.它能进行八位数据之间的相乘运算,并且通过数码管把结果显示出来.关键词:电子设计自动化,硬件描述语言,乘法器Design of eight hardware multiplication machinesHe Na (Major of Communication Engineering Class 041,Department of Electronic & Information,Shaanxi University of Technology,HanZhong,723003 China) Abstract: This text passes uses the usage EDA technique, the adoption VHDL language and the principle diagram input method edit a document, adopting to move an item to add principle mutually to eight multiplication machines to carry on a design, has been editted and translate,turn Chien,partition,synthesize,excellent turn,set up,cloth line,imitate really and test, After the synthesis downloading to the EPM7128SLC84-15 board for tests,Finally obtained eight multipliers which was requested to design. It can carry on the eight-digit number according to seemultiplications the operation,and demonstrate the result through the digital tube.Key words:EDA, HDL,multiplication machine.不要删除行尾的分节符,此行不会被打印- 24 -通 信 工 程 专 业 计 算 机 综 合 课 程 设 计 目 录摘 要IAbstractII第1章 绪论21.1课题背景21.2 Max+PlusII简介 31.3设计目的31.4本章小结3第2章 硬件乘法器的设计的方案42.1乘法器的算法原理42.2设计原理52.3 本章小结.6第3章 硬件乘法器的软件实现73.1结构图73.2乘法器的底层文件设计73.3乘法器的顶层文件设计 .143.4 译码显示 163.5 本章小结 18第4章 硬件乘法器的硬件实现.19结论21致谢22心得体会23参考文献24第1章 绪 论1.1 课题背景21世纪随着电子信息时代的到来,对计算的要求更高,随着电子技术的发展各种运算模块也有了飞跃性的发展,借助于计算机的原理设计的乘法器也多种多样,乘法器的设计原理简单,思路清晰,可这么简单的模块在任何计算器中都不可缺少。当代计算机发展已经进入飞速发展的时期,尤其是一些新软件的诞生,使科学技术有了飞跃性的发展。在电子设计领域,电子设计自动化的应用已经深入到了电子行业的各个角落。EDA技术就是依赖功能强大的计算机,在EDA工具软件平台上,对以硬件描述语言HDL为系统逻辑描述手段完成的设计,自动地完成逻辑编译、逻辑化简、逻辑分割、结构综合(布局布线),以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。本文通过对八位乘法器的设计简单概述了EDA设计的流程及工具,在设计过程中运用两种最基本的设计方法(原理图输入法和文本输入法)使读者对EDA的了解和运用有基本的认识。主要运用MAX+plusII软件,简单介绍MAX+plusII在7000S系列开发板上的实现。让读者对整个的EDA技术有了全面直观的了解。 随着计算机技术和大规模集成电路技术的发展, 传统的通过逻辑图和布尔方程设计硬件电路的方法已大大落后于当今技术的发展, 取而代之的是硬件描述语言HDL (Hardware Description Language) , 它是硬件设计领域的一次变革。最有代表性的HDL 是美国国防部开发的超高速集成电路硬件描述语言VHDL (Very High Speed Inte2grated Circuit Hardware Description Language)。VHDL 硬件描述语言具有以下几个特点: (1) 自上而下( top to down) 的高级设计方法(2) 系统的硬件描述能力强1.1.1 EDA技术EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,极大地提高了电路设计的效率和可靠性,减轻了设计者的劳动强度。电子设计自动化(EDA)的实现是与CPLD/FPGA技术的迅速发展息息相关的。CPLD/FPGA是80年代中后期出现的,其特点是具有用户可编程的特性。利用PLD/FPGA,电子系统设计工程师可以在实验室中设计出专用IC,实现系统的集成,从而大大缩短了产品开发、上市的时间,降低了开发成本。 1.1.2主要研究领域 通信、雷达、控制、信号处理等相关系统设计和仿真分析。 可提供的电路设计包括:方案构成系统仿真电路图设计PCB版图设计集成电路版图设计各种标准EDA文件输出。 模拟、数字集成电路设计,微波集成电路(MMIC)设计;FPGA和SOPC设计、IP设计等。 基于计算机网络的测控系统,各种工业控制系统设计,适合于图象采集、温度控制、湿度检测、振动等物理量的测量、分析和在线控制。1.2 Max+PlusII简介Max+plusII(或写成Maxplus2,或MP2) 是Altera公司推出的的第三代PLD开发系统.使用MAX+PLUSII的设计者不需精通器件内部的复杂结构。设计者可以用自己熟悉的设计工具(如原理图输入或硬件描述语言)建立设计,MAX+PLUSII把这些设计转自动换成最终所需的格式。其设计速度非常快。对于一般几千门的电路设计,使用MAX+PLUSII,从设计输入到器件编程完毕,用户拿到设计好的逻辑电路,大约只需几小时。设计处理一般在数分钟内内完成。特别是在原理图输入等方面,Maxplus2被公认为是最易使用,人机界面最友善的PLD开发软件,特别适合初学者使用。1.2.1设计流程FPGA/CPLD设计流程为 设计输入。在传统设计中,设计人员是应用传统的原理图输入方法来开始设计的。自90年代初, Verilog、VHDL、AHDL等硬件描述语言的输入方法在大规模设计中得到了广泛应用。 前仿真(功能仿真)。设计的电路必须在布局布线前验证电路功能是否有效。(ASCI设计中,这一步骤称为第一次Sign-off)PLD设计中,有时跳过这一步。 设计编译。设计输入之后就有一个从高层次系统行为设计向门级逻辑电路设转化翻译过程,即把设计输入的某种或某几种数据格式(网表)转化为软件可识别的某种数据格式(网表)。 优化。对于上述综合生成的网表,根据布尔方程功能等效的原则,用更小更快的综合结果代替一些复杂的单元,并与指定的库映射生成新的网表,这是减小电路规模的一条必由之路。 布局布线。在PLD设计中,3-5步可以用PLD厂家提供的开发软件(如 Maxplus2)自动一次完成。 后仿真(时序仿真)需要利用在布局布线中获得的精确参数再次验证电路的时序。(ASCI设计中,这一步骤称为第二次Signoff)。 生产。布线和后仿真完成之后,就可以开始ASCI或PLD芯片的投产。同样,使用Max+plusII基本上也是有以上几个步骤,但可简化为: 设计输入 设计编译 设计仿真 下载 1.3 设计目的(1)学习使用EDA集成设计软件MxplussII,电路描述,综合,模拟过程。(2)掌握使用EDA工具设计数字系统的设计思路和设计方法。体会使用EDA综合过程中电路设计方法和设计思路的不同。(3)学习应用移位相加原理设计8位乘法器。1.4本章小结为了适应EDA技术的发展和EDA技术教学实验的要求,更加突出实验中EDA技术的实用性,以及面向工程实际的特性和电子设计的创新性, 系领导和通信工程教研室组织了这次长达十四天的计算机综合课程设计。 第2章 硬件乘法器设计的方案2.1乘法器的算法原理目前常用的硬件乘法器主要有移位相加乘法器和加法器树乘法器等。2.移位相加乘法器两个8 位二进制数用B 和A 表示, 其乘积按“手工计算”的方法给出就是: Y=AB=ak2kB 从中可以看出只要ak 不等于0, 输入B 就随着k 的位置连续地变化, 然后累加B2k。如果ak 等于0, 相应的转换相加就可以忽略了。移位相加乘法器就是按照这种方法, 根据乘数的每一位是否为1 进行计算, 如果为1, 就将被乘数移位相加。这种乘法器所用的硬件资源较少,每个时钟周期内只能完成8 位乘1 位的运算, 因此要完成8 位乘8 位的运算, 则至少需要8 个时钟周期。2 加法器树乘法器如果将乘数的8 位拆开, 则该乘法运算可以写成如下的表达方式Y=AB=(A0+A12+A222+A323+A424+A525+A626+A727)B=BA0+BA12+.+BA626+BA727 这样, 就可以将8 位乘8 位的运算转换成8 个8 位乘1 位的运算, 式中的每一项都可以通过与门得到。因此乘法器只需要一个时钟周期就可以完成乘法运算, 理论上讲速度很快。但是由于使用了多个加法器, 使其占用的片内资源面积较大, 而且使用多个加法器必然会产生一定的延迟, 使得时钟频率不会太高。但是资源耗用较多。考虑到节省资源这一原则,我们采用移位相加的方法来制作乘法器。2.2设计原理原理图如图2-1示: B& 加 运 算C D A图2-1 移位加 乘法器原理图该乘法器是由8位加法器构成的以时序方式设计的8位乘法器。其乘法原理是:乘法通过逐项移位相加原理来实现。从被乘数的最低位开始,若为1,则乘数左移后与上一次的和相加;若为0,左移后以全零相加,直至被乘数的最高位。从图8-3的逻辑图及图8-4的乘法操作时序图上可以清楚的看出此乘法器的工作原理,为了更好的了解其工作原理,图8-3中没有加入控制电路。START信号的上跳沿及其高电平有两个功能,即十六位寄存其清零和被乘数A70向移位寄存器SREG8B加载;它的低电平则作为乘法使能信号。CLK为乘法时钟信号。当被乘数被加载于8位右移寄存器SREG8B后,随着每一时钟节拍,最低位在前,由低位至高位逐位移出。当为1时,1位乘法器ANDARITH打开,8位乘数B70在同一节拍进入8位加法器,与上一次锁存在16位锁存器REG16B中的高8位进行相加,其和在下一时钟节拍的上升沿被锁存进此锁存器。而当被乘数的移出位为0使,与门全零输出。如此往复,直至8个时钟脉冲后,最后乘积完整出现在REG16B端口。在这里1位乘法器ANDARITH的功能类似于一个特殊的与门,即当ABIN为1时,DOUT直接输出DIN,而当ABIN为0时,DOUT输出“00000000”八位乘法器原理构成的乘法器比用组合电路直接设计的同样功能的电路的资源耗用要小很多。从波形图(如后乘法器的后仿真波形图)可见,当9FH和FDH相乘时,第一的时钟上升沿后,其移位相加结果是4F80H,第八个时钟上升沿后,最终相乘结果是9D23H。2.3本章小结通过两种方案的比较和考虑到资源的耗用情况我们选择了移位相加的方法来设计此八位乘法器。它的原理清晰,资源耗用比较少易于实现。第3章 乘法器的软件实现结构图乘法器的软件结构框图如图3-1示乘法器底层文件八 位 乘 法 器数 码 显 示译 码 器图3-1乘法器的软件结构图3.2乘法器的底层文件设计3.2.1为工程建立文件夹任何一向设计都是一项工程(project),都必须首先为此工程建立一个放置与此工程相关的文件的文件夹,此文件夹将被EDA软件默认为工作库(Work Library)。一般不同的设计项目最好放在相应的文件夹中,注意,一个设计项目可以包含多个设计文件。给此工程的文件夹起名为hena,路径为D:hena。3.2.2输入设计项目和存盘打开MAX+plusII,选菜单FileNew,弹出一个对话框。在此框中选中“Text Editor file”选项,单击“OK”按钮,即选中了文本编辑方式。在出现的Untitled Text Editor 文本编辑窗口中键入VHDL程序,输入以下程序。(1)八位加法器的设计八位加法器程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ADDER8B IS PORT ( CIN : IN STD_LOGIC; A , B : IN STD_LOGIC_VECTOR(7 DOWNTO 0); S : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); COUT : OUT STD_LOGIC );END ADDER8B;ARCHITECTURE behav OF ADDER8B IS SIGNAL SINT, AA,BB : STD_LOGIC_VECTOR(8 DOWNTO 0);BEGINAA=0&A; BB=0&B; SINT=AA+BB+CIN;S=SINT(7 DOWNTO 0);COUT”按钮将需要观察的信号选到右边的窗口中,然后单击“OK”即可。 设置波形参量在为编辑窗口输入信号设定必要的测试电平前,需要设定相关的仿真参数.在”Option”菜单中消去网格对齐项”Snap to Grid”左侧的对勾“”,以便能够任意设定输入电平,或设置输入时钟信号的周期.然后设定仿真时间长度。选择FileEnd Time,在End Time对话框中选择适当的仿真时间域就可以了。 为输入信号加上激励电平并存盘按照设计的要求给每个输入信号设置它们相应的信号后,然后保存到工程文件夹中。 运行仿真器并观察图形选择主菜单中的仿真器“Simulator”,单击弹出的对话框中的“Start”按钮,然后没有错误后单击“Open SNF”按钮,就可以看见仿真出来的波形图了。在这个设计过程中八位加法器的工作时序图如图3-5示 图3-5 八位加法器的工作时序图(2)八位右移寄存器的设计 八位右移寄存器的程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SREG8B ISPORT (CLK,LOAD:IN STD_LOGIC;DIN:IN STD_LOGIC_VECTOR(7 DOWNTO 0);QB:OUT STD_LOGIC);END SREG8B;ARCHITECTURE behav OF SREG8B ISSIGNAL REG8:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINPROCESS(CLK,LOAD)BEGINIF CLKEVENT AND CLK=1THENIF LOAD =1 THEN REG8=DIN;ELSE REG8(6 DOWNTO 0)=REG8(7 DOWNTO 1);END IF;END IF;END PROCESS;QB=REG8(0);END behav;输入完程序后具体的操作和上面加法器的操作一致。打包出来8位右移寄存器硬件符号图如图3-6示: 图3-6 8位右移寄存器的硬件符号图波形仿真后得出的8位右移寄存器工作时序图如图3-7示: 图3-7 8位右移寄存器工作时序图(3)一位乘法器的设计一位乘法器程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ANDARITH IS PORT ( ABIN : IN STD_LOGIC; DIN : IN STD_LOGIC_VECTOR(7 DOWNTO 0); DOUT : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END ANDARITH;ARCHITECTURE BEHAV OF ANDARITH ISBEGIN PROCESS(ABIN, DIN) BEGIN FOR I IN 0 TO 7 LOOP DOUT(I)= DIN(I)AND ABIN; END LOOP; END PROCESS;END behav;输入完程序后具体的操作和上面加法器的操作一致。前仿真成功后打包。打包得到的一位乘法器硬件符号图如图3-8示: 图3-8 一位乘法器硬件符号图波形仿真后得出的一位乘法器工作时序图如3-9示 图3-9 一位乘法器工作时序图(4) 16位锁存器/右移寄存器的设计16位锁存器/右移寄存器程序library ieee;use ieee.std_logic_1164.all;entity reg16b is port (clk,clr:in std_logic; d:in std_logic_vector(8 downto 0); q:out std_logic_vector(15 downto 0);end reg16b;architecture behav of reg16b is signal r16s :std_logic_vector(15 downto 0);begin process(clk,clr)beginif clr=1 then r16s=0000000000000000;elsif clkevent and clk=1 thenr16s(6 downto 0)=r16s(7 downto 1); r16s(15 downto 7)= d; end if;end process;q=r16s;end behav;打包后得到的16位锁存器/右移寄存器的硬件符号图如图3-10示:图3-10 16位锁存器/右移寄存器的硬件符号图(5)运算控制器的设计 运算控制器程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity arictl is port (clk,start:in std_logic; clkout,rstall,ariend:out std_logic );end arictl;architecture behav of arictl issignal cnt4b:std_logic_vector(3 to 0);beginrstall=start;process(clk,start)beginif start =1 then cnt4b=0000;elsif clkevent and clk =1 thenif cnt4b8 then cnt4b=cnt4b+1; end if;end if;end process;process (clk,cnt4b,start)beginif start=0 thenif cnt4b8 then clkout=clk;ariend=0;else clkout=0;ariend=1;end if;else clkout=clk; ariendled7sled7sled7sled7sled7sled7sled7sled7sled7sled7sled7sled7sled7sled7sled7sled7snull;end case;end process;END ;具体的编辑步骤和上面的VHLD文本输入法设计一致,前仿真成功后打包出来的七段译码显示硬件符号图如图3-15示:图3-15七段译码显示硬件符号图需要说明的是这个是一个十六进制的译码显示,它能从0显示到F为了区别0与D,8与B,把D与B设计成小写的样式即“b”,”d”这样就可以完全区别开来显示,不会给结果带来不必要的错误。仿真波形如图3-16示:图3-16七段译码显示波形仿真图然后把它的打包图调出来开始编辑最终的图形。同样为了方便检查,我们依然采用原理图编辑的方法设计用原理图输入法,设计能实现并演示8位乘法器功能的电路,打开MAX+plus2,选菜单FlieNew,在弹出的对话框中选择“Graphic Editor flie”选项,单击OK按钮。在出现的Untitled Graphic Editor文本编辑窗口中输入电路,输入完毕后,选择菜单FlieSave as,在对话框中找到:“Directories”目录框中选择已建立好的存放本文件的目录,然后在“Flie Name”中键入文件名“cfq.gdf”单击“OK”即可。具体电路图如图3-17乘法器设计的原理图所示:图3-17乘法器设计的原理图按照前面的操作进行前仿真,正确后继续波形仿真。后仿真波形如图3-18示:图3-18后仿真波形图从波形图和任务书的要求来看这次设计的完全符合要求。当有一个起使信号“start”时一个“clk”信号后,算出一个数据,八位的数据计算需要有八个“CLK”信号上升沿触发,才能得出最终结果。有上图可以知道9FH乘FDH的最终结果是:9D23H。所以次设计是正确的可以进行下载验证。3.5本章小结 通过对八位乘法器的设计基本介绍了MAX+plusII软件的操作步骤,运用VHDL语言和原理图输入法,用移项相加的原理,通过编辑、综合、适配、仿真和测试,在软件上实现了八位乘法器的性能。第4章 硬件乘法器的硬件实现4.1编程下载在下载前需要进行管脚琐定和器件选择。管脚琐定选择MAX+plusIICompiler菜单,进入编辑窗口,然后在”Assign”项中选”Pin/Location/Chip”选项,在弹出的窗口中的”Node Name”项中输入设定的引脚将输入和输出的引脚加入,按Add键,当全部的引脚假如后,按OK键即可.然后关闭窗口后在编译一次,直到没有错误.管脚锁定具体内容如表4-1示:a0chip=chengfaqi1;input Pin=6led7 chip=chengfaqi1;input Pin=37a1 chip=chengfaqi1;input Pin=8led 8 chip=chengfaqi1;input Pin=39a2 chip=chengfaqi1;input Pin=9led9 chip=chengfaqi1;input Pin=40a3 chip=chengfaqi1;input Pin=10led10 chip=chengfaqi1;input Pin=41a 4chip=chengfaqi1;input Pin=11led11 chip=chengfaqi1;input Pin=44a 5chip=chengfaqi1;input Pin=12led12 chip=chengfaqi1;input Pin=45a6chip=chengfaqi1;input Pin=15led13 chip=chengfaqi1;input Pin=46a7chip=chengfaqi1;input Pin=16led14 chip=chengfaqi1;input Pin=48a 0chip=chengfaqi1;input Pin=17led15 chip=chengfaqi1;input Pin=49b1chip=chengfaqi1;input Pin=18led16 chip=chengfaqi1;input Pin=50b2chip=chengfaqi1;input Pin=20led17 chip=chengfaqi1;input Pin=51b3chip=chengfaqi1;input Pin=21led18 chip=chengfaqi1;input Pin=52b4chip=chengfaqi1;input Pin=22led19 chip=chengfaqi1;input Pin=54b5chip=chengfaqi1;input Pin=24led20 chip=chengfaqi1;input Pin=55b6chip=chengfaqi1;input Pin=25led21 chip=chengfaqi1;input Pin=56b7chip=chengfaqi1;input Pin=27led22 chip=chengfaqi1;input Pin=57clk chip=chengfaqi1;input Pin =2led23 chip=chengfaqi1;input Pin=58led0 chip=chengfaqi1;input Pin=29led24 chip=chengfaqi1;input Pin=60Led1 chip=chengfaqi1;input Pi=30led25 chip=chengfaqi1;input Pin=61Led2chip=chengfaqi1;input Pin=31led26 chip=chengfaqi1;input Pin=63led3 chip=chengfaqi1;input Pin=33led 27chip=chengfaqi1;input Pin=64led4 chip=chengfaqi1;input Pin=34start chip=chengfaqi1;input Pin=5led5chip=chengfaqi1;input Pin=35y chip=chengfaqi1;input Pin=28led6 chip=chengfaqi1;input Pin=36表4-1 管脚锁定内容编程下载选Max+plusII中的“Programmer”窗口后,选“Option”项中的硬件设计项“Hardware Setup”,在其下拉窗口中选择“ByteBlaster(MV)”项。将实验板连接好,接好电源,单击“Program”
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年乡镇公务员录用考试模拟试题及答案解析
- 文笔技能测试题及答案
- 2025年乡镇工会工作案例分析题集及解析
- 2025年人民银行面试模拟题答案详解行业热点分析
- 2025超市水果采购合同模板
- 2025年版个人抵押借款合同范本标准版
- 2025年烟花买卖合同
- 2025年合同使用审批登记表
- 2025全面版委托代理合同范本
- 2025年孟浩然简介题目及答案
- 《蔚来汽车的SWOT分析》课件
- 2025-2030中国建筑工程质量检测行业市场发展分析及竞争格局与投资前景研究报告
- CNAS-CI01:2012 检查机构能力认可准则
- 产品美工面试题及答案
- 2023年威海桃威铁路有限公司招聘笔试参考题库附带答案详解
- 老年慢性病的中药调理方法
- 虾滑产品知识培训课件
- 旧厂房改造施工安全措施
- 2025-2030全球宠物电器行业发展趋势分析及投资前景预测研究报告
- 食堂服务礼仪培训
- 书法第一课课件-【知识精研】小学生书法版
评论
0/150
提交评论