十六位硬件乘法器 设计报告

十六位硬件乘法器 设计报告
十六位硬件乘法器 设计报告

课程名称电子设计自动化

题目十六位乘法器

院系班级信息学院09电子信息工程1班姓名崔钦婉

学号0915211007

指导老师凌朝东

2011 年7 月6 日

题目名称:

十六位硬件乘法器电路

摘要:

设计一个16位硬件乘法器电路.要求2位十进制乘法,能用LED数码管同时显示乘数,被乘数和积的值.本设计利用Quartus II软件为设计平台,通过移位相加的乘法原理:即从被乘数的最低位开始,若为1,则乘数左移后与上一次的和相加;若为0,左移后以全零相加,直至被乘数的最高位。

经软件仿真和硬件测试验证后,以达到实验要求。

目录

摘要 (2)

1. 系统设计 (3)

1.1设计要求 (3)

1.2系统设计方案 (3)

2. 单元电路设计 (5)

3. 软件设计 (8)

4. 系统测试 (9)

结论 (9)

参考文献 (9)

附录 (10)

1.系统设计

1.1设计要求

题目要求设计一个16位硬件乘法器电路.要求2位十进制乘法;能用LED数码管同时显示乘数,被乘数和积的信息.设置一个乘法使能端,控制乘法器的计算和输出.

1.2系统设计方案

此设计问题可分为乘数和被乘数输入控制模块,乘法模块和输出乘积显示模块基本分.

乘数和被乘数的输入模块使输入的十进制数转化为二进制数输入乘法模块,乘法模块利用移位相加的方法将输入的两组二进制数进行相乘,并将16位乘积输出到乘积输出显示模块.显示模块将输入的二进制数按千,百,十,个位分别转化为十进制数输出.

乘数和被乘数的输入可用数据开关K1~K10分别代表数字1,2,…,9,0,用编码器对数据开关K1~K10的电平信号进行编码后输入乘法器进行计算.但此方案所用硬件资源较多,输入繁琐,故不采取.

方案二是利用硬件箱自带16进制码发生器,由对应的键控制输出4位2进制构成的1位16进制码,数的范围是0000~1111,即0H~FH.每按键一次,输出递增1,输出进入目标芯片的4位2进制数将显示在该键对应的数码管.

乘数和被乘数的输入模块将16进制码的A~F码设计成输出为null.使得减少了无用码的输入.

两数相乘的方法很多,可以用移位相加的方法,也可以将乘法器看成计数器,乘积的初始值为零,每一个时钟周期将乘数的值加到积上,同时乘数减一,这样

反复执行,直到乘数为零.本设计利用移位相加的方法使得程序大大简化.

系统总体电路组成原理图如下图所示:

2.单元电路设计

(1)乘数和被乘数的输入模块:可分为两部分:十位输入和个位输入;十位输入的4位16进制码转换为8位2进制码后输入乘数和被乘数组成模块利用’&’与个位输入的4位16进制数组合而成.

模块图如下图所示:

此功能模块的仿真图如下图所示:

结果显示:当乘数十位(a1)输入4,个位(a0)输入7时,out1能输出4;

当被乘数十位(b1)输入8,个位(b0)输入5时,out2能输出85。(2)两数相乘模块由一个程序组成,其乘法原理是:乘法通过逐项移位相加原理来实现,从被乘数的最低位开始,若为1,则乘数左移后与上一次的和相加;若为零0,左移后以全零相加,直至被乘数的最高位.

①VHDL程序为:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity cf is

port ( clk : in std_logic;

a : in std_logic_vector(7 downto 0);

b : in std_logic_vector(7 downto 0);

outy : out std_logic_vector(15 downto 0));

end cf;

architecture art of cf is

signal qa : std_logic_vector(7 downto 0); signal qb : std_logic_vector(7 downto 0); begin

process(qa,qb,clk,a,b)

variable q0 : std_logic_vector(15 downto 0); variable q1 : std_logic_vector(15 downto 0); variable q2 : std_logic_vector(15 downto 0); variable q3 : std_logic_vector(15 downto 0); variable q4 : std_logic_vector(15 downto 0); variable y : std_logic_vector(15 downto 0); begin

qa<=a;

qb<=b;

q0:="0000000000000000";

q1:="00000000"&a;

if clk='1' then

if qb(0)='1' then y:=q1;

else y:=q0;

end if;

if qb(1)='1' then y:=y+(a&"0");

else y:=y+q0;

end if;

if qb(2)='1' then y:=y+(a&"00");

else y:=y+q0;

end if;

if qb(3)='1' then y:=y+(a&"000"); else y:=y+q0;

end if;

if qb(4)='1' then y:=y+(a&"0000"); else y:=y+q0;

end if;

if qb(5)='1' then y:=y+(a&"00000"); else y:=y+q0;

end if;

if qb(6)='1' then y:=y+(a&"000000"); else y:=y+q0;

end if;

if qb(7)='1' then y:=y+(a&"0000000"); else y:=y+q0;

end if;

end if;

outy<=y;

end process;

end art;

②模块图

③功能仿真图

结果显示:clk使能端为高电平有效,当输入的8位二进制数分别为7和14时,输出为98,改变a、b的输入值,同样得到正确的输出值,即实现了两数相乘的功能。

(3)乘积显示模块将输入的二进制数按千,百,十,个位分别转化为十进制数输出.其原理是,输入的乘积分别和8999,7999,…999做比较,千位显示输出分别显示9,8,…,1.其他位数原理相同.

模块图如图所示:

此功能模块的功能仿真图如下图所示:

结果显示:当模块输入的16位二进制数为8534时,输出也为8534.

3.软件设计

本设计是基于quartusII电路设计软件为平台,借用PC机和GW48EDA/SOPC实验箱为设计工具,运用VHDL硬件描述语言在Cyclone II系列的EP2C5T144C6芯片为设计对象实现的.

Quartus II 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计

输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。

VHDL是非常告诉集成电路硬件描述语言,是可以描述硬件电路的功能,信号连接关系及定时关系的语言,它能比电路原理图更有效地表示硬件电路的特性.使用VHDL语言,可以就系统的总体要求出发,自上至下地设计内容细化,最后完成系统硬件的整体设计.VHDL程序结构包括:实体,结构体,配置,包集合及库.主要特点是:a.功能强大,灵活性高;器件无关性;可移植性好;自顶向下的设计方法等.

利用quartusII软件设计的流程图3如图所示

4.系统测试

(1)经quartus软件综合,结果如图所示

(2)经quartus软件功能仿真,仿真结果如图所示:

(3)硬件验证:

目标芯片型号:EP2C5T144C8 电路模式:NO.1 (4)硬件引脚锁定方案:

结论:经过VHDL程序的设计到软件仿真,再到硬件测试成功,功能的实现,表明这次EDA课程设计非常成功,设计要求全部达成,达到了预期效果.

参考文献:<>第五版,清华大学出版社

附录

仪器设备清单: PC机

GW48EDA/SOPC实验箱

我来做模板您来用硬件总体设计报告

硬件总体设计报告 (仅供内部使用) 文档作者:_________________ 日期:____/____/____ 文档校对:_________________ 日期:____/____/____ 管理办:_________________ 日期:____/____/____ 请在这里输入公司名称 版权所有不得复制

硬件总体设计报告 1 引言 1 .1编写目的 软件需求规格说明的目的在于为电能质量数据分析软件项目的开发提供: a.提出软件总体要求;作为软件开发人员和最终使用者之间相互了解的基础。 b.提出软件性能要求,数据结构和采集要求,作为软件设计和程序制作基础。 c.软件确认测试的依据。 1 .2背景 见项目开发计划。 1 .3参考资料 略 1 .4术语和缩写词 略。 特别说明:凡涉及到公司内部秘密的部分用(略)代替 2 概述 2 .1软件总体说明 本软件是一项独立、完整的软件。 本软件的主要功能为对(略)进行分析。 2 .2软件总体描述 ********************************************电能质量分析仪的数据分析软件。 该软件的基本要求有: 1.能够根据要求对所测量的结果文件以图形或表格形式进行分析。 2.软件界面友好,指示明确,显示清晰,易于使用。 3.分析结果可打印输出。

1.打开文件及评估标准设置 使用者选择打开一个测量结果文件(略)。文件选择前,首先出现评估标准设置窗口。设置内容可以存储在一个文件中,设置时也可选择一个已存在的文件。 确定后,可选择测量结果(略)。文件选择后,出现“互感器接法”选择窗口,可选择互感器接法。 评估标准国标规定值: (略)

简单16位CPU的设计

简单CPU的设计 设计步骤: 1)确定CPU功能 2)拟定指令系统(采用MIPS) 3)分析指令系统,为数据通路选择合适的组件,并给出组件 所需的控制信号,连接组件建立数据通路 4)详细分析指令在多周期通路中的执行过程,给出指令执行 的流程图 5)依据指令执行的流程图,分析控制信号的取值,生成相应 的状态转换图 一、确定CPU功能 M[2]←M[0]+M[1] 二、拟定指令系统 J类型

4位12位 指令格式中的op(opcode)是指令操作码。rs(register source)是源操作数的寄存 器号。rd(register destination)是目的寄存器号。rt(register target)即可作为源寄 存器号,又可作为目的寄存器号,有具体的指令决定。func(function)可被认为 是扩展的操作码,Target表示一下个地址开始 注:操作码4位,寄存器字段rs,rt,rd各三位,Fun功能字段3位,Imm立即值字段6位;一共8个寄存器,R0只读不可写,恒为0。 R类型的指令 ADD Rd,Rs,Rt SUB Rd,Rs,Rt AND Rd,Rs,Rt OR Rd,Rs,Rt XOR Rd,Rs,Rt I类型的指令 LW Rt, Rs,imm6 SW Rt, Rs,imm6

存放在ROM中的汇编指令,完成M[2]←M[0]+ M[1] LW R1,0(R0);R1←M[R[0]+0],由于R(0)内容为0,即R1←M[0] LW R2,1(R0);R1←M[R[0]+1],由于R(0)内容为0,即R1←M[1] ADD R3,R1,R2 ; R3←R1+R2 SW R3,2(R0) ; M[R[0]+2]←R3 下面地址对应着rom模块里面

实验一四位串行进位加法器的设计实验报告

实验一四位串行进位加法器的设计 一、实验目的 1.理解一位全加器的工作原理 2.掌握串行进位加法器的逻辑原理 3.进一步熟悉Quartus软件的使用,了解设计的全过程, 二、实验容 1.采用VHDL语言设计四位串行进位的加法器 2.采用画原理图的方法设计四位串行进位加法器 三、实验步骤 1、使用VHDL语言设计 1.打开File—>New Project Wizard输入文件名adder4保存在D 盘,打开File—>New—>VHDL File,从模版中选择库的说明,use 语句的说明,实体的说明,结构体的说明,编写VHDL代码,然后保存、编译。打开File—>New—>Other File—>Vector Waveform File,查找引脚,从Edit中选择End Time 输入40、ns 保存。从Assignments—>Settings—>Simulator Settings —>Functional 然后Processing—>Generate Functional Simnlation Netlist —>确定。选择Start Simulation保存最后的波形图,打开File —>close关闭工程。 底层文件: LIBRARY ieee;

USE ieee.std_logic_1164.ALL; ENTITY fadder IS PORT ( a, b,cin : IN STD_LOGIC; s, co : OUT STD_LOGIC ); END fadder; ARCHITECTURE arc1 OF fadder IS BEGIN s<=a xor b xor cin; co<=((a xor b)and cin)or(a and b); END arc1; 顶层文件: LIBRARY ieee; USE ieee.std_logic_1164.ALL; ENTITY adder4 IS PORT ( c0: IN STD_LOGIC; a,b : IN STD_LOGIC_VECTOR(3 DOWNTO 0); s : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

硬件总体设计模板

硬件总体设计方案

修订记录 目录

1概述 (7) 1.1文档版本说明 (7) 1.2单板名称及版本号 (7) 1.3开发目标 (7) 1.4背景说明 (7) 1.5位置、作用、 (7) 1.6采用标准 (8) 1.7单板尺寸(单位) (8) 2单板功能描述和主要性能指标 (8) 2.1单板功能描述 (8) 2.2单板运行环境说明 (8) 2.3重要性能指标 (8) 3单板总体框图及各功能单元说明 (9) 3.1单板总体框图 (9) 3.1.1单板数据和控制通道流程和图表说明 (10) 3.1.2逻辑功能模块接口和通信协议和标准说明 (10) 3.1.3其他说明 (11) 3.2单板重用和配套技术分析 (11) 3.3功能单元-1 (11) 3.4功能单元-2 ........................................................................................ 错误!未定义书签。3.5功能单元-3 ........................................................................................ 错误!未定义书签。 4关键器件选型 (12) 5单板主要接口定义、与相关板的关系 (13) 5.1外部接口 (13) 5.1.1外部接口类型1 (13) 5.1.2外部接口类型2 (13) 5.2内部接口 (13) 5.2.1内部接口类型1 (14) 5.2.2内外部接口类型2 (14) 5.3调测接口 (14) 6单板软件需求和配套方案 (14) 6.1硬件对单板软件的需求 (14) 6.1.1功能需求 (14) 6.1.2性能需求 (15) 6.1.3其他需求 (15) 6.1.4需求列表 (15) 6.2业务处理软件对单板硬件的需求可实现性评估 (15) 6.3单板软件与硬件的接口关系和实现方案 (16) 7单板基本逻辑需求和配套方案 (16) 7.1单板内可编程逻辑设计需求 (16) 7.1.1功能需求 (16) 7.1.2性能需求 (17) 7.1.3其他需求 (17) 7.1.4支持的接口类型及接口速率 (17) 7.1.5需求列表 (17) 7.2单板逻辑的配套方案 (18) 7.2.1基本逻辑的功能方案说明 (18)

16位超前加法器实验报告

16位超前加法器设计实验 一、实验分析: 四位超前进位加法器HDL程序: module add4_head ( a, b, ci, s, pp, gg); input[3:0] a; input[3:0] b; input ci; output[3:0] s; output pp; output gg; wire[3:0] p; wire[3:0] g; wire[2:0] c; assign p[0] = a[0] ^ b[0]; assign p[1] = a[1] ^ b[1]; assign p[2] = a[2] ^ b[2]; assign p[3] = a[3] ^ b[3]; assign g[0] = a[0] & b[0]; assign g[1] = a[1] & b[1]; assign g[2] = a[2] & b[2]; assign g[3] = a[3] & b[3]; assign c[0] = (p[0] & ci) | g[0]; assign c[1] = (p[1] & c[0]) | g[1]; assign c[2] = (p[2] & c[1]) | g[2]; assign pp = p[3] & p[2] & p[1] & p[0]; assign gg = g[3] | (p[3] & (g[2] | p[2] & (g[1] | p[1] & g[0]))); assign s[0] = p[0] ^ ci; assign s[1] = p[1] ^ c[0]; assign s[2] = p[2] ^ c[1]; assign s[3] = p[3] ^ c[2]; endmodule p表示进位否决信号(pass),如果p为0就否决调前一级的进位输入。否决的意思就是即使前一级有进位,本级也不会向后一级产生进位输出。 g表示进位产生信号(generate),如果g为1就表示一定会向后一级产生进位输出。p[n] = a[n] ^ b[n]这句话的意思是说,当a=1,b=0或a=0,b=1时前一级的进位输入信号不能否决。这样就有个问题了,即当a=1,b=1时前一级的进位输入信号也不能否决啊,怎么没有体现出来?其实当a=1,b=1时产生了进位产生信号g,它的优先级高于p信号,就忽略了p信号,直接产生了向后一级产生进位输出,是没有逻辑错误的。 g[n] = a[n] & b[n] 这句话的意思是说,如果a=1,b=1时就直接向后一级产生进位输出信号,而不用考虑其它的任何因素。

16位(8x8)硬件乘法器设计报告

EDA课程设计16位(8x8)硬件乘法器设计学校:华侨大学 学院:信息与工程学院 班级:10集成 姓名:项传煜 学号:1015251031 老师:凌朝东

目录 摘要 一.设计要求 二.正文 2.1. 系统设计 2.1.1 系统设计方案 (3) 2.1.2 系统设计原理 (4) 2.2. 各子模块设计 2.2.1 十进制加计数器设计 (5) 2.2.2 BCD码转二进制码BCD_B的设计 (5) 2.2.3 8位移位寄存器reg_8的设计 (6) 2.2.4 8位加法器adder_8的设计 (7) 2.2.5 1位乘法器multi_1的设计 (7) 2.2.6 16位移位寄存器reg_16的设计 (8) 2.2.7 16位二进制转BCD码B_BCD的设计 (9) 2.3. 软件设计 2.3.1 设计平台和开发工具 (10) 2.3.2 程序流程方框图 (10) 2.3.3 实现功能 (11) 2.3.4 8位乘法器的顶层设计 (11) 2.4. 系统测试 2.4.1 乘法器使用 (13) 2.4.2 仪器设备 (13) 2.4.3 测试数据 (14) 2.5. 结论 (14) 三.测试结果仿真图 (14) 四.参考文献 (15) 五.附录:设计说明书及使用说明书 (15)

摘要 本设计通过对一个8×8的二进制乘法器的设计,学习利用VHDL语言来描述简单的算法,掌握利用移位相加方法实现乘法运算的基本原理。在此次设计中该乘法器是由十进制计数器,BCD码(输入)转二进制码,8位寄存器,8位加法器,16位寄存器,8x1乘法器,二进制码转BCD码(输出显示)7个模块构成的以时序方式设计的8位乘法器,采用逐项移位相加的方法来实现相乘。设计中乘数,被乘数的十位和个位分别采用cnt10(十进制加法器)来输入,经拼接符“&”拼接成8位BCD码,再由BCD_B(BCD码转二进制码)转化成二进制码后计算,计算结果由B_BCD(二进制转BCD码)转化成BCD码输入到数码管中显示。此次设计的创新点在于cnt10,BCD_B,B_BCD的设计,使得电路的输入简单,显示方式为十进制,符合人们的习惯。使用中只要输入乘数,被乘数,按下键3(脉冲)就可以直接得出结果,显示结果稳定。可以满足两位十进制乘法的计算。 一.设计要求 设计一个十六位(8*8)硬件乘法器(难度系数1.0) 要求:2位十进制乘法;能同时显示乘数,被乘数和积的信息(LED数码管)。 二.正文 2.1. 系统设计 2.1.1 系统设计方案 方案一:直接生成乘法器,再配合输入,输出电路,构成2位十进制乘法器,该方案简单,原理清晰明了,但占用资源比较多,且不易于了解内部结构,及其乘法原理。 方案二:移位相加方法实现乘法运算再配合输入,输出电路,构成2位十进制乘法器,该方案原理简单,占用资源少,易于初学者掌握移位相加方法实现乘法运算的原理,但电路模块较多。方案选择:由于现在属初学阶段,掌握原理较为重要,故经小组讨论,一致同意采用方案二。

xxx硬件详细设计方案-模板

xxx硬件详细设计方案 2010年11月26日

目录 xxx硬件详细设计方案 (1) 1 产品概述 (3) 2需求描述(来自于需求规格书) (3) 2.1功能描述 (3) 2.2性能描述 (3) 2.3 其它需求描述 (3) 3硬件总体框图和各功能单元说明 (3) 3.1硬件总体框图 (3) 3.2功能单元1 (3) 3.3功能单元2 (3) 3.4功能单元3 (3) 3.5其它 (4) 3.5.1 其它 (4) 4硬件外部接口描述 (4) 4.1硬件主要外部接口 (4) 4.2外部接口1 (4) 4.3外部接口2 (4) 5硬件的软件需求 (4) 5.1系统软件 (4) 5.2配置软件 (4) 5.3应用软件 (5) 6硬件的产品化 (5) 6.1可靠性设计 (5) 6.2电源 (5) 6.3电磁兼容设计与安规设计 (5) 6.4环境适应性与防护设计 (5) 6.5工艺路线设计 (5) 6.6结构设计 (5) 6.7热设计 (5) 6.8监控设计 (6) 6.9可测试性与可维护性设计 (6) 7硬件成本分析 (6) 8硬件开发环境 (6) 9其它 (6)

1产品概述 2需求描述(来自于需求规格书) 2.1功能描述 2.2性能描述 2.3 其它需求描述 3硬件总体框图和各功能单元说明3.1硬件总体框图 3.2功能单元1 3.3功能单元2 3.4功能单元3

3.5其它 3.5.1其它 4硬件外部接口描述4.1硬件主要外部接口 4.2外部接口1 4.3外部接口2 5硬件的软件需求5.1系统软件 5.2配置软件

5.3应用软件 6硬件的产品化 6.1可靠性设计 6.2电源 6.3电磁兼容设计与安规设计6.4环境适应性与防护设计6.5工艺路线设计 6.6结构设计 6.7热设计

硬件设计规范

XXX电子有限公司 XXX电子硬件设计规范 V1.2

xxx 电子有限公司发布 1.目的: 为规范硬件设计、保证产品质量和性能、减少各类差错,特制定本规范。 2.适用范围 XXX公司自行研发、设计的各类产品中硬件设计的全过程,各部门涉及到有关内容者均以此规范为依据。 3.文档命名规定 硬件设计中涉及各种文档及图纸,必须严格按规则命名管理。由于XXX公司早期采用的 6.01设计软件不允许文件名超过8个字符,故文件名一直规定为8.3模式。为保持与以前文件 的兼容,本规范仍保留这一限制,但允许必要情况下在文件名后面附加说明性文字。 3.1.原理图 3.1.1.命名规则 原理图文件名形如 xxxxYmna.sch 其中xxxx:为产品型号,由4位阿拉伯数字组成,型号不足4位的前面加0。 Y:为电路板类型,由1位字母组成,目前已定义的各类板的字母见附录1。 m:为文件方案更改序号,表示至少有一个电路模块不同的电路方案序号,不同方案的电路可同时在生产过程中流通,没有互相取代关系。 n:一般为0,有特殊更改时以此数字表示。 a:为文件修改序号,可为0-z,序号大的文件取代序号小的文件。 例如:1801采用SSM339主控芯片的主板原理图最初名为1801M001.SCH,进行电路设计改进后为1801M002.SCH、1801M003.SCH等;改为采用AK1020主控芯片后名为1801M101.SCH,在此基础上的改进版叫1801M102.SCH、1801M103.SCH等。 3.1.2.标题框 原理图标题框中包含如下各项,每一项都必须认真填写: 型号(MODEL):产品型号,如1801(没有中间的短横线); 板名(BOARD):电路板名称,如MAIN BOARD、FRONT BOARD等; 板号(Board No.):该电路板的编号,如1801100-1、1801110-1等,纯数字表示,见“3.2.2.”; 页名(SHEET):本页面的名称,如CPU、AUDIO/POWER、NAND/SD等; 页号(No.):原理图页数及序号,如1 OF 2、2 OF 2等; 版本(REV.):该文件修改版本,如0.1、0.11、1.0等,正式发行的第一版为V1.0; 日期(DATE):出图日期,如2009.10.16等,一定要填出图当天日期; 设计(DESIGN):设计人,由设计人编辑入标题框; 审核(CHECK):审核人,需手工签字; 批准(APPROVE):批准人,需手工签字。 3.2.PCB图 3.2.1.命名规则 PCB文件除后缀为.PCB外,文件名主体及各字段的意义与对应的原理图文件完全相同。 注意:PCB图更改后,即便原理图没有变动,也必须更改原理图文件名,使二者始终保持这种对应关系。

16位除8位有符号数的VHDL设计

library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; Entity Divider is port( clk: in std_logic; --reset: in std_logic; start: in std_logic; word1: in std_logic_vector(15 downto 0);--被除数 word2: in std_logic_vector(7 downto 0);--除数 data_out: out std_logic_vector(15 downto 0)--商 ); end Divider; Architecture Divider_arc of Divider is type states is(S_Idle,S_Adivr,S_Adivn,S_div); signal state,next_state:states; signal dividend:std_logic_vector(16 downto 0); signal comparison:std_logic_vector(8 downto 0); signal divisor:std_logic_vector(7 downto 0); signal load_words,shift_divisor,shift_dividend,subtract:std_logic; signal num_shift_divisor,num_shift_dividend:integer range 0 to 16; signal quotient:std_logic_vector(15 downto 0); begin process(state,dividend,divisor) begin case state is when S_Adivr => if divisor(7)='0' then comparison<='1'&(not(divisor(6 downto 0)&'0')) +"000000001"+dividend(16 downto 8); else comparison<='1'&(not divisor) +"000000001"+dividend(16 downto 8); end if; when others => comparison<='1'&(not divisor) +"000000001"+dividend(16 downto 8); end case; end process; process(clk,start) begin

超前进位加法器设计报告

存档资料成绩: 华东交通大学理工学院 课程设计报告书 所属课程名称EDA课程设计 题目超前进位加法器设计 分院 专业班级 学号 学生姓名 指导教师 2013 年7月2日

目录 第一章设计内容与要求 (3) 第二章超前进位加法器设计原理 (3) 第三章详细设计流程 (4) 3.1.创建工程文件 (4) 3.2.程序的编译 (5) 3.3.波形的仿真 (7) 第四章设计结果分析 (11) 第五章源程序代码 (12) 第六章心得体会 (14) 第七章参考文献 (15)

第一章设计内容与要求 加法运算是最重要也是最基本的运算,所有的其他基本运算,如减、乘、除运算最终都能归结为加法运算。但因为加法运算存在进位问题,使得某一位计算结果的得出和所有低于他的位相关。因此为了减少进位传输所消耗的时间,提高计算速度,人们设计了多种类型的加法器,如跳跃进位加法器、进位选择加法器、超前进位加法器等。本设计采用的是超前进位加法器。通过Verilog 设计一个超前8位加法器。 要求在Quartus II软件下,利用Verilog编程完成层次式电路设计,电路中的元件可以用Verilog设计也可以用库元件连线构成再封装。8位超前进位加法器,借助EDA工具中的综合器,适配器,时序仿真器和编程器等工具进行相应处理。适配采用Cyclone系列的EP1C6Q240C8。 要求综合出RTL电路,并进行仿真输入波形设计并分析电路输出波形. 试比较并阐述数据类型reg型和wire型的区别。 第二章超前进位加法器设计原理 将n个全加器相连可得n位加法器,但是加法时间较长。解决的方法之一是采用“超前进位产生电路”来同时形成各位进位,从而实现快速加法。超前进位产生电路是根据各位进位的形成条件来实现的 首先对于1位加法器基本位值和与进位输出为1;如果a,b有一个为1,则进位输出等于cin; 令G=ab,P=a+b,则有: Cout==ab+(a+b)cin=G+P?cin 由此可以G和P来写出4位超前进位链如下(设定四位被加数和加数为A

项目总体设计方案模板

XX项目 总体设计方案 版本: 拟制: 校对: 审核: 批准: 二零XX年X月制 修订情况记录

目录

一引言 (5) 1.1项目背景及目标 (5) 1.2术语及缩略语 (5) 1.3设计参考文档 (5) 二项目需求分析 (5) 2.1产品需求 (5) 2.2产品定位 (5) 2.3功能要求 (5) 2.4性能要求 (5) 2.5设计思路 (5) 2.6质量目标 (5) 三外观设计方案 (6) 3.1外观设计整体要求 (6) 3.2外观设计注意事项 (6) 四硬件设计方案 (6) 4.1部件选择 (6) 4.2系统连接框图 (6) 4.3系统逻辑框图 (7) 4.4系统接口及资源分配 (7) 五软件设计方案 (7) 5.1开发调试环境 (7) 5.2开发资源需求 (7) 5.3程序设计方案 (7) 5.4程序设计周期 (7) 5.5生产工具 (7) 六结构设计方案 (7) 6.1结构设计方案 (7) 6.2结构件延用情况 (7) 6.3结构设计注意事项 (8) 七可靠性、安全性、电磁兼容性设计 (8) 7.1可靠性设计要求 (8) 7.2安全性设计要求 (8)

7.3电磁兼容性要求 (8) 7.4其它(包装、泡沫等) (8) 八电源设计 (8) 8.1电源电气参数要求 (8) 8.2电源安全设计要求 (8) 8.3电源其它要求 (8) 九散热设计 (9) 9.1整机散热设计 (9) 9.2部件散热设计 (9) 十测试要求 (9) 10.1整机结构方面测试要求 (9) 10.2整机电气方面测试要求 (9) 10.3整机环境方面测试要求 (9) 十一成本估算及控制 (9) 11.1成本估算 (9) 11.2成本控制 (10) 十二项目风险及控制 (10)

硬件设计文档规范 -硬件模板

SUCHNESS 硬件设计文档 型号:GRC60定位终端 编号: 机密级别:绝密机密内部文件 部门:硬件组 拟制:XXXX年 XX月 XX日 审核:年月日 标准化:年月日 批准:年月日

文档修订历史记录

目录 1系统概述 (3) 2系统硬件设计 (3) 2.1硬件需求说明书 (3) 2.2硬件总体设计报告 (3) 2.3单板总体设计方案 (3) 2.4单板硬件详细设计 (3) 2.5单板硬件过程调试文档 (3) 2.6单板硬件测试文档 (4) 3系统软件设计 (4) 3.1单板软件详细设计 (4) 3.2单板软件过程调试报告 (4) 3.3单板系统联调报告 (4) 3.4单板软件归档详细文档 (4) 4硬件设计文档输出 (4) 4.1硬件总体方案归档详细文档 (4) 4.2硬件信息库 (5) 5需要解决的问题 (5) 6采购成本清单 (5)

1系统概述 2系统硬件设计 2.1、硬件说明书 硬件需求说明书是描写硬件开发目标,基本功能、基本配置,主要性能指标、运行环境,约束条件以及开发经费和进度等要求,它的要求依据是产品规格说明书和系统需求说明书。它是硬件总体设计和制订硬件开发计划的依据,具体编写的内容有:系统工程组网及使用说明、硬件整体系统的基本功能和主要性能指标、硬件分系统的基本功能和主要性能指标以及功能模块的划分等 2.2、硬件总体设计报告 硬件总体设计报告是根据需求说明书的要求进行总体设计后出的报告,它是硬件详细设计的依据。编写硬件总体设计报告应包含以下内容:系统总体结构及功能划分,系统逻辑框图、组成系统各功能模块的逻辑框图,电路结构图及单板组成,单板逻辑框图和电路结构图,以及可靠性、安全性、电磁兼容性讨论和硬件测试方案等 2.3、单板总体设计方案 在单板的总体设计方案确定后出此文档,单板总体设计方案应包含单板版本号,单板在整机中的位置、开发目的及主要功能,单板功能描述、单板逻辑框图及各功能模块说明,单板软件功能描述及功能模块划分、接口简单定义与相关板的关系,主要性能指标、功耗和采用标准 2.4、单板硬件详细设计 在单板硬件进入到详细设计阶段,应提交单板硬件详细设计报告。在单板硬件详细设计中应着重体现:单板逻辑框图及各功能模块详细说明,各功能模块实现方式、地址分配、控制方式、接口方式、存贮器空间、中断方式、接口管脚信号详细定义、时序说明、性能指标、指示灯说明、外接线定义、可编程器件图、功能模块说明、原理图、详细物料清单以及单板测试、调试计划。有时候一块单板的硬件和软件分别由两个开发人员开发,因此这时候单板硬件详细设计便为软件设计者提供了一个详细的指导,因此单板硬件详细设计报告至关重要。尤其是地址分配、控制方式、接口方式、中断方式是编制单板软件的

有符号5位整数乘法器设计与制作

哈尔滨工业大学(威海) 信息科学与工程学院 EDA课程设计报告 有符号5位整数乘法器设计与制作 指导老师:胡屏 学生班级:0802102 学生姓名:傅愉 学生学号:080210210 2009年11月10日

目录 1.课程设计的性质、目的和任务 (1) 2.题目要求 (1) 3.总体设计 (1) 3.1算法设计 (1) 3.2整体框图及原理 (2) 4.电路设计 (4) 4.1 乘法器总体电路原理图: (4) 4.2分时输入模块电路图: ........................................................... - 5 - 4.3乘法运算电路图: (6) 4.4阀门控制模块电路: ............................................................... - 9 - 4.5计数单元电路图: ................................................................. - 12 - 4.6数码管显示单元电路: ......................................................... - 14 - 4.7报警电路示意: ......................................... 错误!未定义书签。 5.调试过程中出现的问题以及解决办法 .......................................... - 19 - 6.心得体会........................................................................................... - 20 - 7.建议:............................................................................................... - 21 - 1.课程设计的性质、目的和任务 创新精神和实践能力二者之中,实践能力是基础和根本。这是由

加法器的设计与仿真实验报告

加法器的设计与仿真 一、实验内容 1、用逻辑图和VHDL语言设计全加器。 2、利用设计的全加器组成串行加法器。 3、用逻辑图和VHDL语言设计并行加法器。 4、应用MaxplusII软件对全加器和串行加法器进行编译、仿真和模拟。 5、在“MaxplusII软件的基本操作”实验的基础上,能更加熟练的掌握应用MaxplusII软件,从而更形象更深层次的理解全加器和串行加法器。 二、实验平台及实验方法 用VHDL语言编写全加器和串行加法器的程序,运用MaxplusII软件进行仿真,再结合FPGA(即对实验箱的芯片进行编译)进行验证。也可以用原理图进行文本设计,波形设计。逻辑符号图: 真值表: 电路图: 三、实验过程 1.启动MaxplusII软件; 2.新建一个文本编辑文件,输入全加器的VHDL语言; 3.编译。点击file save as,保存文件名为f-adder名称,扩展名为vhd,选择芯片类型为EPF10K20TI144-4,保存并进行编译,

若编译结果出现0 error,0 warnings则说明编译通过。 4.仿真波形。点Max+plus II→Waveform editor,出现波形图的设置界面,然后点Node→Enter Nodes from SNF→list,将输入输出端添加到界面,并设置其周期和输入波形,保存后,点Max+plus II→Simulator,即可仿真出输出的波形。 5.配置芯片。点Max+plus II→Floorplan editor,将Unassigned Nodes & 栏中,电路的输入输出节点标号直接用鼠标“拖到” 想分配的引脚上,Max+plusII→programmer→configuer,然后就可以操作试验箱,观察全加器的工作情况。 四、实验结果 实验步骤: 1、用VHDL语言编写全加器的程序 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY f_adder IS PORT( x,y,cin:IN STD_LOGIC; s,cout:OUT STD_LOGIC ); END ENTITY f_adder; ARCHITECTURE bhv OF f_adder IS BEGIN s<=x XOR y XOR cin; cout<=(x AND y)OR(x AND cin)OR(y AND cin); END ARCHITECTURE bhv; 2、将上述程序保存为文件名为f_adder的文件,点击Maxplus里的compiler进行编译,点击start,如果出现0 error,0 warnings,则编译成功。

16位乘法器芯片设计 3月9日

16位乘法器芯片设计 1.方法 乘法器的设计方法有两种:组合逻辑设计方法和时序逻辑设计方法。 采用组合逻辑设计方法,电路事先将所有的乘积项全部算出来,然后做加法运算。 采用时序逻辑设计方法,电路将部分已经得到的乘积结果右移,然后与乘积项相加并保存和值,反复迭代上述步骤直到计算出最终积。 2.组合逻辑的实现 可以以16*3位的乘法器为例做出如下设想: A为16位二进制乘数,B为3位二进制乘数,C为A与B相乘的积。则: C的结果实际上只能为如下值中的一个: 0,A,2A,3A,4A,5A,6A,7A 因为B为3位二进制,则B只能是000,001,010,011,100,101,110,111中的一个。 初步设想符合现实,由于要实现ASIC芯片的生产,所以对各端口定义如下: reset:芯片复位、清零信号。值为0,芯片复位。 start:芯片使能信号。值为1,芯片读入乘数和被乘数,并将乘积复位清零。 ain:被乘数,16bit。 bin:乘数,3bit。 yout:乘积输出,19bit。 done:芯片输出标志信号,值为1,乘法运算完成,yout端口的数据稳定,得到最终的乘积;值为0,乘法运算未完成,yout端口数据不稳定。 编写的Verilog程序如下: Module mult16(reset,start,ain,bin,done,yout); Parameter N=16; Input reset; Input start; Input [N-1:0] ain; Input [2:0]bin; Output [N+3:0] yout; Output done; Integer aa,ab,ac,temp; Integer su; Reg done; Always @(ain) Begin If(start&&!reset) Begin aa=ain; ab=ain+ain; ac=ab+ab;

十六位硬件乘法器电路设计报告

课程名称电子设计自动化 题目十六位硬件乘法器电路 院系班级信息学院11电子信息工程A班姓名 学号 指导老师凌朝东 2013 年 12 月 5 日

题目名称: 十六位硬件乘法器电路 摘要: 设计一个16位硬件乘法器电路.要求2位十进制乘法,能用LED数码管同时显示乘数,被乘数和积的值.本设计利用Quartus II软件为设计平台,通过移位相加的乘法原理:即从被乘数的最低位开始,若为1,则乘数左移后与上一次的和相加;若为0,左移后以全零相加,直至被乘数的最高位。经软件仿真和硬件测试验证后,以达到实验要求。

目录 1.题目名称 (2) 2.摘要 (2) 3.目录 (3) 4.正文 (4) 4.1. 系统设计 (4) 4.1 设计要求 (4) 4.2 系统设计方案 (4) 4.2 单元电路设计 (4) 4.2.1十进制计算模块 (5) 4.2.2 BCD码转二进制模块 (5) 4.2.3 8位右移寄存器模块 (6) 4.2.4 8位加法器模块 (7) 4.2.5 1乘法器multi_1模块 (7) 4.2.6 16位移位寄存器reg_16模块 (8) 4.2.7 16位二进制转BCD码B_BCD模块 (9) 4.2.8 8位乘法器multi_8x8顶层设计 (10) 4.3 软件设计 (12) 4.3.1设计平台和开发工具 (12) 4.3.2程序流程方框图 (13) 4.4 系统测试 (14) 4.1仿真分析 (14) 4.2硬件验证 (15) 5. 结论 (15) 6. 参考文献 (15) 7. 附录 (15)

4.正文 4.1系统设计 1.1设计要求 题目要求设计一个16位硬件乘法器电路.要求2位十进制乘法;能用LED数码管同时显示乘数,被乘数和积的信息.设置一个乘法使能端,控制乘法器的计算和输出. 1.2系统设计方案 此设计问题可分为乘数和被乘数输入控制模块,乘法模块和输出乘积显示模块基本分. 乘数和被乘数的输入模块使输入的十进制数转化为二进制数输入乘法模块,乘法模块利用移位相加的方法将输入的两组二进制数进行相乘,并将16位乘积输出到乘积输出显示模块.显示模块将输入的二进制数按千,百,十,个位分别转化为十进制数输出. 乘数和被乘数的输入可用数据开关K1~K10分别代表数字1,2,…,9,0,用编码器对数据开关K1~K10的电平信号进行编码后输入乘法器进行计算.但此方案所用硬件资源较多,输入繁琐,故不采取. 方案二是利用硬件箱自带16进制码发生器,由对应的键控制输出4位2进制构成的1位16进制码,数的范围是0000~1111,即0H~FH.每按键一次,输出递增1,输出进入目标芯片的4位2进制数将显示在该键对应的数码管. 乘数和被乘数的输入模块将16进制码的A~F码设计成输出为null.使得减少了无用码的输入. 两数相乘的方法很多,可以用移位相加的方法,也可以将乘法器看成计数器,乘积的初始值为零,每一个时钟周期将乘数的值加到积上,同时乘数减一,这样反复执行,直到乘数为零.本设计利用移位相加的方法使得程序大大简化. 系统总体电路组成原理图如下图所示: 4.2单元电路设计

(新)硬件总体设计报告

软件需求规格说明 (仅供内部使用) 文档作者:_________________ 日期:____/____/____ 文档校对:_________________ 日期:____/____/____ 管理办:_________________ 日期:____/____/____ 请在这里输入公司名称 版权所有不得复制

软件需求规格说明 1 引言 1 .1编写目的 软件需求规格说明的目的在于为电能质量数据分析软件项目的开发提供: a.提出软件总体要求;作为软件开发人员和最终使用者之间相互了解的基础。 b.提出软件性能要求,数据结构和采集要求,作为软件设计和程序制作基础。 c.软件确认测试的依据。 1 .2背景 见项目开发计划。 1 .3参考资料 略 1 .4术语和缩写词 略。 特别说明:凡涉及到公司内部秘密的部分用(略)代替 2 概述 2 .1软件总体说明 本软件是一项独立、完整的软件。 本软件的主要功能为对(略)进行分析。 2 .2软件总体描述 ********************************************电能质量分析仪的数据分析软件。 该软件的基本要求有: 1.能够根据要求对所测量的结果文件以图形或表格形式进行分析。 2.软件界面友好,指示明确,显示清晰,易于使用。 3.分析结果可打印输出。

1.打开文件及评估标准设置 使用者选择打开一个测量结果文件(略)。文件选择前,首先出现评估标准设置窗口。设置内容可以存储在一个文件中,设置时也可选择一个已存在的文件。 确定后,可选择测量结果(略)。文件选择后,出现“互感器接法”选择窗口,可选择互感器接法。 评估标准国标规定值: (略)

16位vhdl乘法器详解,加仿真图

控制模块: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity cont_modu is port( Clk : in std_logic ; Start : in std_logic; //数据输入开始信号 en_sig : out std_logic; //控制运算信号,为‘1’运算数据 out_sig : out std_logic // 运算完成信号 ); end entity; architecture rlt_cont_modu of cont_modu is signal cnt :integer range 0 to 15 :=0;//定义从0到15 type state is(S_idle,S_work,S_1d,S_2d);//运算状态信号,状态机 signal st_ty : state :=S_idle; begin process(Clk) begin if rising_edge(Clk) then case st_ty is选择语句;S_idle为空闲状态,当输入数据后Start信号为1就开始工作 when S_idle => if Start ='1' then如果为1就跳转到S_work状态,并且使能信号置1 st_ty <= S_work; en_sig <='1'; else不然继续在S_idle状态 st_ty <= S_idle; en_sig <='0'; end if; out_sig <='0'; when S_work => if cnt =15 then在S_work状态下,cnt信号一直加1,加满16个数就跳转到S_1d,然后使能信号en_sig 就为0。 st_ty <= S_1d; cnt <= 0; en_sig <='0'; else如果没到16个数继续加1 st_ty <= S_work;

八位加法器设计实验报告

实验四:8位加法器设计实验 1.实验目的:熟悉利用quartus原理图输入方法设计简单组合电路,掌握层次化设计方法。 2.实验原理:一个八位加法器可以由八个全加器构成,加法器间的进位可以串行方式实现,即将低位加法器的进位输出cout与相邻的高位加法器的最低进位输入信号cin相接。 3.实验任务:完成半加器,全加器,八位加法器设计,使用例化语句,并将其设计成一个原件符号入库,做好程序设计,编译,程序仿真。 1)编译成功的半加器程序: module h_adder(a,b,so,co); input a,b; output so,co; assign so=a^b; assign co=a&b; endmodule 2)编译成功的全加器程序: module f_adder(ain,bin,cin,cout,sum); output cout,sum;input ain,bin,cin; wire net1,net2,net3; h_adder u1(ain,bin,net1,net2); h_adder u2(.a(net1),.so(sum),.b(cin),.co(net3));

or u3(cout,net2,net3); endmodule 3)编译成功的八位加法器程序: module f_adder8(ain,bin,cin,cout,sum); output [7:0]sum; output cout;input [7:0]ain,bin;input cin; wire cout0, cout1, cout2 ,cout3, cout4,cout5,cout6; f_adder u0(.ain(ain[0]),.bin(bin[0]),.cin(cin),.sum(sum[0]),.cout(cout0)); f_adder u1(.ain(ain[1]),.bin(bin[1]),.cin(cout0),.sum(sum[1]),.cout(cout1 )); f_adder u2(.ain(ain[2]),.bin(bin[2]),.cin(cout1),.sum(sum[2]),.cout(cout2 )); f_adder u3(.ain(ain[3]),.bin(bin[3]),.cin(cout2),.sum(sum[3]),.cout(cout3 )); f_adder u4(.ain(ain[4]),.bin(bin[4]),.cin(cout3),.sum(sum[4]),.cout(cout4 )); f_adder

相关文档
最新文档