数电— 4位并行乘法器的电路设计与仿真

数电— 4位并行乘法器的电路设计与仿真
数电— 4位并行乘法器的电路设计与仿真

题目: 4位并行乘法器的电路设计与仿真

功能要求:

1. 实现4位并行乘法器的电路设计;

2. 带异步清零端;

3. 输出为8位;

4. 单个门延迟设为5 ns 。

设计要求

使用V erilog 语言寄存器传输级(RTL )方法描述电路;

使用testbeach 方法验证电路;验证要求计算总时延等。

开发环境选用Modelsim 6.5b ;

文档:分析文档、设计文档、测试文档、代码和总结。

设要有完整的组合逻辑电路设计步骤;

每一步骤完成要正确合理;

设计电路时分模块测试。

时间安排

分析设计阶段:周一至周二上午;

代码编写阶段:周二下午至周三;

代码测试优化阶段:周四;

仿真分析及总结:周五上午;

验收:周五下午。

验收标准

文档齐全(20分)。

注:无文档不可以进行下一步。

仿真结果正确,回答问题正确。(50分)

课程设计报告。(30分)

一、分析

A3A2A1A0与B3B2B1B0相乘,按乘法规则进行计算如下:

A3B0 A2B0 A1B0 A0B0

A3B1 A2B1 A1B1 A0B1

A3B2 A2B2 A1B2 A0B2

+ A3B3 A2B3 A1B3 A0B3 Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0

每一列相加均采用全加器,最直接的方法是采用一位全加器,也可采用超前进位加法器,相对延迟会更短。

采用一位全加器,有两种算法,第一种为每两列相加,每一行加法器串行进位,这种方法相对延迟较大,设每个全加器延迟为t ,采用这种方法的最大延迟为8t 。第二种为断开串行进位的进位链,以缩短每次加法的延迟。实现方法为:将第j 步第i 位的进位输出连到下一步(第j+1步)第i+1位的进位输入。但最后要添加一行串行进位的加法器。此种方法的最大延为6t 。

// 四位并行乘法器模块

module mul4x4(reset,a,b,y);

output [7:0] y;

input [3:0] a,b;

input reset;

wire [11:0] s,co;

wire [15:0] c;

assign #5 c[0]=a[0]&b[0],

c[1]=a[1]&b[0],

c[2]=a[2]&b[0],

c[3]=a[3]&b[0];

assign #5 c[4]=a[0]&b[1],

c[5]=a[1]&b[1],

c[6]=a[2]&b[1],

c[7]=a[3]&b[1];

assign #5 c[8]=a[0]&b[2],

c[9]=a[1]&b[2],

c[10]=a[2]&b[2],

c[11]=a[3]&b[2];

assign #5 c[12]=a[0]&b[3],

c[13]=a[1]&b[3],

c[14]=a[2]&b[3],

c[15]=a[3]&b[3];

fulladder add0(s[0],co[0],c[1],c[4],1'b0); fulladder add1(s[1],co[1],c[2],c[5],1'b0); fulladder add2(s[2],co[2],c[3],c[6],1'b0); fulladder add3(s[3],co[3],c[8],s[1],co[0]); fulladder add4(s[4],co[4],c[9],s[2],co[1]); fulladder add5(s[5],co[5],c[10],c[7],co[2]); fulladder add6(s[6],co[6],c[12],s[4],co[3]); fulladder add7(s[7],co[7],c[13],s[5],co[4]); fulladder add8(s[8],co[8],c[14],c[11],co[5]); fulladder add9(s[9],co[9],s[7],co[6],1'b0); fulladder add10(s[10],co[10],s[8],co[7],co[9]); fulladder add11(s[11],co[11],c[15],co[8],co[10]); assign #5 y[0]=~reset&c[0];

assign #5 y[1]=~reset&s[0];

assign #5 y[2]=~reset&s[3];

assign #5 y[3]=~reset&s[6];

assign #5 y[4]=~reset&s[9];

assign #5 y[5]=~reset&s[10];

assign #5 y[6]=~reset&s[11];

assign #5 y[7]=~reset&co[11];

endmodule

// 乘法器测试模块

module tb_mul4x4;

reg reset;

reg [3:0] a,b;

wire [7:0] y;

integer j=0,i=0;

mul4x4 mul(reset,a,b,y);

initial

begin

$monitor($time,"reset=%d,a=%d,b=%d,y=%d",reset,a,b,y);

a=4'd1;b=4'd4;reset=1'b1;

#200 reset=1'b0;a=4'd1;b=4'd4;

for(i=0;i<16;i=i+1)begin

for(j=0;j<16;j=j+1) begin

#200 a=i;b=j;

end

end

end

endmodule

// 一位全加器模块

module fulladder(s,co,a,b,ci);

output s,co;

input a,b,ci;

assign #15 s=~((~a&~b&~ci)|(a&~b&ci)|(~a&b&ci)|(a&b&~ci));

assign #15 co=~((~a&~b)|(~b&~ci)|(~a&~ci));

endmodule

// 全加器测试模块

module tb_fulladder;

reg a,b,ci;

wire s,co;

fulladder add0(s,co,a,b,ci);

initial

begin

a=1'b0;b=1'b0;ci=1'b1;

#15 a=1'b0;b=1'b0;ci=1'b0;

$monitor($time,"a=%d,b=%d,ci=%d,s=%d,co=%d",a,b,ci,s,co);

#15 a=1'b0;b=1'b0;ci=1'b1;

#15 a=1'b0;b=1'b1;ci=1'b0;

#15 a=1'b0;b=1'b1;ci=1'b1;

#15 a=1'b1;b=1'b0;ci=1'b0;

#15 a=1'b1;b=1'b0;ci=1'b1;

#15 a=1'b1;b=1'b1;ci=1'b0;

#15 a=1'b1;b=1'b1;ci=1'b1;

end

endmodule

//一位全加器加上最大延迟15ns,分析乘法器最大延时为90ns(六个全加器),//实际测得乘法器延时75ns,即可输出正确结果。测试结果如下:

# 0reset=1,a= 1,b= 4,y= 0

# 200reset=0,a=15,b=14,y= 4

# 215reset=0,a=15,b=14,y= 78

# 230reset=0,a=15,b=14,y=146

# 245reset=0,a=15,b=14,y=162

# 260reset=0,a=15,b=14,y=178

# 275reset=0,a=15,b=14,y=210

//加法器设置15ns个延时,测试时也设置15ns延时。测试结果如下:# 15a=0,b=0,ci=0,s=1,co=0

# 30a=0,b=0,ci=1,s=0,co=0

# 45a=0,b=1,ci=0,s=1,co=0

# 60a=0,b=1,ci=1,s=1,co=0

# 75a=1,b=0,ci=0,s=0,co=1

# 90a=1,b=0,ci=1,s=1,co=0

# 105a=1,b=1,ci=0,s=0,co=1

# 120a=1,b=1,ci=1,s=0,co=1

# 135a=1,b=1,ci=1,s=1,co=1

//加法器设置15ns个延时,测试时设置20ns延时。测试结果如下:# 20a=0,b=0,ci=0,s=1,co=0

# 35a=0,b=0,ci=0,s=0,co=0

# 40a=0,b=0,ci=1,s=0,co=0

# 55a=0,b=0,ci=1,s=1,co=0

# 60a=0,b=1,ci=0,s=1,co=0

# 80a=0,b=1,ci=1,s=1,co=0

# 95a=0,b=1,ci=1,s=0,co=1

# 100a=1,b=0,ci=0,s=0,co=1

# 115a=1,b=0,ci=0,s=1,co=0

# 120a=1,b=0,ci=1,s=1,co=0

# 135a=1,b=0,ci=1,s=0,co=1

# 140a=1,b=1,ci=0,s=0,co=1

# 160a=1,b=1,ci=1,s=0,co=1

# 175a=1,b=1,ci=1,s=1,co=1

//再给复位时的与门和位相与的与门加上5ns延迟,测得延时为85ns # 0reset=1,a= 1,b= 4,y= x

# 5reset=1,a= 1,b= 4,y= 0

# 100reset=0,a=15,b=14,y= 0

# 105reset=0,a=15,b=14,y= 4

# 125reset=0,a=15,b=14,y= 78

# 140reset=0,a=15,b=14,y=146

# 155reset=0,a=15,b=14,y=162

# 170reset=0,a=15,b=14,y=178

# 185reset=0,a=15,b=14,y=210

# 200reset=0,a= 0,b= 0,y=210

# 225reset=0,a= 0,b= 0,y=156

# 240reset=0,a= 0,b= 0,y=120

# 255reset=0,a= 0,b= 0,y= 0

# 300reset=0,a= 0,b= 1,y= 0

4FPGA实验报告8位乘法器—徐艺萍

实验四8位乘法器实验 一、实验原理 8位乘法器,输入为两个8位信号,输出结果为16位。 module mult8(out, a, b); //8位乘法器源代码 parameter size=8; input[size-1:0] a,b; //两个操作数 output[2*size-1:0] out; //结果 assign out=a*b; //乘法运算符 endmodule 本实验采用Chipscope-Pro生成VIO/ICON核,并插入到8位乘法器设计中,在线进行观测和调试。 二、实验目的 1. 熟悉ISE9.1 开发环境,掌握工程的生成方法; 2. 熟悉SEED-XDTK XUPV2Pro 实验环境; 3. 了解Verilog HDL语言在FPGA 中的使用; 4. 通过掌握8位乘法器的Verilog HDL设计,了解数字电路的设计。 三、实验内容 1. 用Verilog HDL语言设计8位乘法器,进行功能仿真验证。 2. 使用chipscope-Pro 生成VIO/ICON 核,在线观测调试。 四、实验准备 1. 将USB 下载电缆与计算机及XUPV2Pro 板的J8 连接好; 2. 将RS232 串口线一端与计算机连接好,另一端与板卡的J11 相连接; 3. 启动计算机,当计算机启动后,将XUPV2Pro 板的电源开关SW11 打开到ON 上。观察XUPV2Pro 板上的+2.5V,+3.3V,+1.5V 的电源指示灯是否均亮。若有不亮的,请断开电源,检查电源。

五、实验步骤 ⑴创建工程及设计输入 ①在E:\project\目录下,新建名为mult8的新工程; 器件族类型(Device Family)选择“Virtex2P”, 器件型号(Device)选“XC2VP30 ff896 -7”, 综合工具(Synthesis Tool)选“XST (VHDL/Verilog)”, 仿真器(Simulator)选“ISE Simulator” ②设计输入并保存。 ⑵功能仿真 ①在sources窗口sources for中选择Behavioral Simulation。 ②由Test Bench WaveForm 添加激励源,如图1所示。仿真结果如图2所示。 图1 波形激励编辑窗口 图2 仿真结果 从图中可以验证由Verilog HDL语言设计的8位乘法器的工作是正确的,不论是输入a的值变化还是输入b的值变化,输出值随之变化,为a与b的乘积。 ⑶生成核并添加核 本次试验内容为8位乘法器,不需要使用ILA核。因此下面使用核生成法生成一个ICON核,一个VIO核就可以了。 ①首先对生成的工程进行综合。 ②生成核 ③添加核

全加器逻辑电路图

全加器逻辑电路图 全加器英语名称为full-adder,是用门电路实现两个二进制数相加并求出和的组合线路,称为一位全加器。一位全加器可以处理低位进位,并输出本位加法进位。多个一位全加器进行级联可以得到多位全加器。常用二进制四位全加器74LS283。 一位全加器:全加器是能够计算低位进位的二进制加法电路 一位全加器(FA)的逻辑表达式为: S=A⊕B⊕Cin Co=AB+BCin+ACin 其中A,B为要相加的数,Cin为进位输入;S为和,Co是进位输出; 如果要实现多位加法可以进行级联,就是串起来使用;比如32位+32位,就需要32个全加器;这种级联就是串行结构速度慢,如果要并行快速相加可以用超前进位加法, 超前进位加法前查阅相关资料; 如果将全加器的输入置换成A和B的组合函数Xi和Y(S0…S3

控制),然后再将X,Y和进位数通过全加器进行全加,就是ALU的逻辑结构结构。 即X=f(A,B) Y=f(A,B) 不同的控制参数可以得到不同的组合函数,因而能够实现多种算术运算和逻辑运算。 半加器、全加器、数据选择器及数据分配器 一、实验目的 1.验证半加器、全加器、数据选择器、数据分配器的逻辑功能。 2.学习半加器、全加器、数据选择器的使用。 3.用与非门、非门设计半加器、全加器。 4.掌握数据选择器、数据分配器扩展方法。 二、实验原理 1.半加器和全加器 根据组合电路设计方法,列出半加器的真值表,见表7。逻辑表达式为: S =AB + AB= A⊕B

C = AB 半加器的逻辑电路图如图17所示。 用两个半加器可组成全加器,原理图如图18所示。 在实验过程中,我们可以选异或门74LS86及与门74LS08来实现半加器的逻辑功能;也可用全与非门如74LS00、反相器74LS04组成半加器。这里全加器不用门电路构成,而选用集成的双全加器 74LS183。其管脚排列和逻辑功能表分别见图19和表4.9所示 (a)用异或门组成的半加器(b)用与非门组成的半加器 图17 半加器逻辑电路图

模拟电路课程设计心得体会

模拟电路课程设计心得 体会 内部编号:(YUUT-TBBY-MMUT-URRUY-UOOY-DBUYI-0128)

精选范文:《模拟电路》课程设计心得体会(共2篇)本学期我们开设了《模拟电路》与《数字电路》课,这两门学科都属于电子电路范畴,与我们的专业也都有联系,且都是理论方面的指示。正所谓“纸上谈兵终觉浅,觉知此事要躬行。”学习任何知识,仅从理论上去求知,而不去实践、探索是不够的,所以在本学期暨模电、数电刚学完之际,紧接着来一次电子电路课程设计是很及时、很必要的。这样不仅能加深我们对电子电路的任职,而且还及时、真正的做到了学以致用。这两周的课程设计,先不说其他,就天气而言,确实很艰苦。受副热带高气压影响,江南大部这两周都被高温笼罩着。人在高温下的反应是很迟钝的,简言之,就是很难静坐下来动脑子做事。天气本身炎热,加之机房里又没有电扇、空调,故在上机仿真时,真是艰熬,坐下来才一会会,就全身湿透,但是炎炎烈日挡不住我们求知、探索的欲望。通过我们不懈的努力与切实追求,终于做完了课程设计。在这次课程设计过程中,我也遇到了很多问题。比如在三角波、方波转换成正弦波时,我就弄了很长时间,先是远离不清晰,这直接导致了我无法很顺利地连接电路,然后翻阅了大量书籍,查资料,终于在书中查到了有关章节,并参考,并设计出了三角波、方波转换成正弦波的电路图。但在设计数字频率计时就不是那么一帆风顺了。我同样是查阅资料,虽找到了原理框图,但电路图却始终设计不出来,最后实在没办法,只能用数字是中来代替。在此,我深表遗憾!这次课程设计让我学到了很多,不仅是巩固了先前学的模电、数电的理论知识,而且也培养了我的动手能力,更令我的创造性思维得到拓展。希望今后类似这样课程设计、类似这样的锻炼机会能更多些!

实验三 8位乘法器的设计

实验三8位乘法器的设计 一、实验目的 1)了解8位乘法器的工作原理 2)熟悉MAX+plusII软件的基本使用方法 3)熟悉EDA实验开发的基本使用方法 4)学习VHDL程序中数据对象,数据类型,顺序语句,并行语句的综合使用 二、实验内容 设计一个由8位加法器构成的以时序逻辑方式设计的8位乘法器。其乘法原理是:乘法通过逐项位移相加原理来实现,以被乘数的最低位开始,若为1,则乘数左移后与上一次和相加,若为0,左移后以全零相加,直至被乘数的最高位。 三、实验条件 开发软件:MAX+plus II 9.23 Baseline 硬件设备:装有windows7的pc机 四、实验设计 1)系统的原理框架图

2)VHDL源程序 andarith.vhd源代码 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 entity andarith; architecture art of andarith is begin process(abin, din)is begin for i in 0 to 7 loop dout(i)<=din(i)and abin; end loop; end process; end architecture art; arictl.vhd源代码 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity arictl is port(clk:in std_logic; start: in std_logic; clkout:out std_logic; rstall: out std_logic; ariend: out std_logic); end entity arictl; architecture art of arictl is signal cnt4b:std_logic_vector(3 downto 0); begin rstall<=start; process(clk, start)is begin if start='1' then cnt4b<="0000"; elsif clk'event and clk='1'then if cnt4b<8 then cnt4b<=cnt4b+1; end if; end if;

第3章--组合逻辑电路习题答案

第3章 组合逻辑电路 3.1 试分析图3.59所示组合逻辑电路的逻辑功能,写出逻辑函数式,列出真值表,说明电路完成的逻辑功能。 (b) (c) (a)A B C D L =1 =1 =1 C 2 L 1L 2L 3 图3.59 题3.1图 解:由逻辑电路图写出逻辑函数表达式: 图a :D C B A L ⊕⊕⊕= 图b :)()(21B A C AB B A C AB L C B A L ⊕+=⊕=⊕⊕= 图c :B A B A L B A A B B A B A L B A B A L =+=+=+++==+=321 由逻辑函数表达式列写真值表: A B C D L 0 0 0 0 00 0 0 1 10 0 1 0 10 0 1 1 00 1 0 0 10 1 0 1 00 1 1 0 00 1 1 1 11 0 0 0 11 0 0 1 01 0 1 0 01 0 1 1 11 1 0 0 01 1 0 1 11 1 1 0 11 1 1 1 0 由真值表可知:图a 为判奇电路,输入奇数个1时输出为1;图b 为全加器L 1为和,L 2为进位;图c 为比较器L 1为1表示A>B ,L 2为1表示A=B, L 3为1表示A

D C B A W X Y Z 输入 输出 图3.61 题3.3图 解: BA C A C D B C A C D W +++= A C A C D CBA A C D A B B D X +++=B D A C D CB D B C D Y ++=B C D A B D DBA CA CB D Z +++= D C B A W X Y Z 输入输出 B C BA C A C D A C D W DCBA +++==∑)13,12,11,10,8,6,5,4,3()( A C D CBA B D A B X DCBA +++==∑)15,13,12,9,8,7,4,2,0()(

模拟乘法器实验

3.12模拟乘法器 一.实验目的 1. 了解模拟乘法器的构成和工作原理。 2. 掌握模拟乘法器在运算电路中的运用。 二.实验原理 集成模拟乘法器是实现两个模拟信号相乘的器件,它广泛用于乘法、除法、乘方和开方等模拟运算,同时也广泛用于信息传输系统作为调幅、解调、混频、鉴相和自动增益控制电路,是一种通用性很强的非线性电子器件,目前已有多种形式、多品种的单片集成电路,同时它也是现代一些专用模拟集成系统中的重要单元。 1. 模拟乘法器的基本特性 模拟乘法器是一种完成两个模拟信号(连续变化的电压或电流)相乘作用的电子器件,通常具有两个输入端和一个输出端,电路符号如图3-12-1所示。 u x u y o 图3-12-1 模拟乘法器的电路符号 若输入信号为x u , y u ,则输出信号o u 为: o u =k y u x u 式中: k 为乘法器的增益系数或标尺因子,单位为V 1 . 根据两个输入电压的不同极性,乘法输出的极性有四种组合,用图3-12-2所示的工作象限来说明。 图 3-12-2 模拟乘法器的工作象限 若信号x u 、y u 均限定为某一极性的电压时才能正常工作,该乘法器称为单象限乘法器;若信号x u 、y u 中一个能适应正、负两种极性电压,而另一个只能适应单极性电压,则为二象限乘法器;若两个输入信号能适应四种极性组合,称为四象限乘法器。

2. 集成模拟乘法器 集成模拟乘法器的常见产品有BG314、F1595、F1596、MC1495、MC1496、LM1595、LM1596等。下面介绍BG314集成模拟乘法器。 (1) BG314内部结构如图3-12-3所示,外部电路如图3-12-4所示: 1 8 43 7 6 5142+ 9 121110 13 7 图3-12-3 BG314内部电路

8位二进制乘法器

8位二进制乘EDA实验 法器 学号:02115024 [2013.12.15] 班级:021151 姓名:王浩楠 指导老师:徐少莹

一.设计要求 8位二进制乘法采用移位相加的方法。即用乘数的各位数码,从低位开始依次与被乘数相乘,每相乘一次得到的积称为部分积,将第一次(由乘数最低位与被乘数相乘)得到的部分积右移一位并与第二次得到的部分积相加,将加得的和右移一位再与第三次得到的部分积相加,再将相加的结果右移一位与第四次得到的部分积相加,直到所有的部分积都被加过一次。 例如:11010101和10010011相乘,计算过程如下: 二.设计方法 按照这种算法,可以得到下图所示之框图和简单流程图。按照这种算法,可以得到下图所示之框图和简单流程图。图中Y寄存器存放被乘数M,B寄存器存放乘数N,A累加器存放部分积。A和Y中的数据在加法器中相加后送入A 中,而A和B相级联又构成了一个16bit的移位寄存器,当它工作于移位模式时,可以实现数据的右移。由于乘数的每一位不是0就是1 ,对应的部分积不是0就是被乘数本身,所以实际作部分积相加这一步时,只要根据乘数的对应位判断:如该位为1 ,则将累加器中的数据加上被乘数再移位;如该位为0时,就不加被乘数而直接移位。运算时首先将累加器A清零,并将被乘数M和乘数N分别存入寄存器Y和B,然后依据寄存器B中最右一位B0(数据N0)确定第一个部分积。将此部分积送入A累加器以后,将A连同寄存器B右移一位,部分积的最低位被移进寄存器B的最左位,乘数的最低位N0被移出寄存器B,而乘数的次低位N1被移至寄存器B的B0位。第二次仍然依据B0位的数据(N1)来确定第二个部分积,将部分积与累加器中的数据相加后右移一位,N1又被移出寄存器,数据N2被移到B0位置。。。。。这样,经过8次部分积相加位的操作,完成1次乘法运算,乘数N恰好被移出寄存器B,寄存器B中保存的就是运算积的低8位数据。移位相加的次数应用一个计数器来控制,每移位一次,计数器计一个数。当计数器计得8个数时,发出一个信号,使电路停止操作,并输出运算结果。

模拟电路课程设计心得体会

模拟电路课程设计心得体会 本学期我们开设了《模拟电路》与《数字电路》课,这两门学科都属于电子电 路范畴,与我们的专业也都有联系,且都是理论方面的指示。正所谓“纸上谈 兵终觉浅,觉知此事要躬行。”学习任何知识,仅从理论上去求知,而不去实践、探索是不够的,所以在本学期暨模电、数电刚学完之际,紧接着来一次电 子电路课程设计是很及时、很必要的。这样不仅能加深我们对电子电路的任职,而且还及时、真正的做到了学以致用。 这两周的课程设计,先不说其他,就天气而言,确实很艰苦。受副热带高气压 影响,江南大部这两周都被高温笼罩着。人在高温下的反应是很迟钝的,简言之,就是很难静坐下来动脑子做事。天气本身炎热,加之机房里又没有电扇、 空调,故在上机仿真时,真是艰熬,坐下来才一会会,就全身湿透,但是炎炎 烈日挡不住我们求知、探索的欲望。通过我们不懈的努力与切实追求,终于做 完了课程设计。 在这次课程设计过程中,我也遇到了很多问题。比如在三角波、方波转换成正 弦波时,我就弄了很长时间,先是远离不清晰,这直接导致了我无法很顺利地 连接电路,然后翻阅了大量书籍,查资料(material),终于在书中查到了有关 章节,并参考,并设计出了三角波、方波转换成正弦波的电路图。但在设计数 字频率计时就不是那么一帆风顺了。我同样是查阅资料(material),虽找到了 原理框图,但电路图却始终设计不出来,最后实在没办法,只能用数字是中来 代替。在此,我深表遗憾! 这次课程设计让我学到了很多,不仅是巩固了先前学的模电、数电的理论知识,

而且也培养了我的动手能力,更令我的创造性思维得到拓展。希望今后类似这样课程设计、类似这样的锻炼机会能更多些!

EDA实习之8位乘法器设计

学号:10446234 常州大学 EDA 技术 课程设计报告 题目:移位相加8位硬件乘法器设计 学生:朱京 学院(系):信息科学与工程学院专业班级:电子102 指导教师:李文杰

一、设计题目移位相加8位硬件乘法器设计 二、设计背景 纯组合逻辑构成的乘法器虽然工作速度比较快,但过于占用硬件资源,难以实现宽位乘法器。基于PLD器件外接ROM九九表的乘法器则无法构成单片系统,也不实用。由8位加法器构成的以时序逻辑方式设计的8位乘法器,具有一定的实用价值。其乘法通过逐项移位相加来实现,从被乘数最低位开始,若为1,则乘数左移后与上次的和相加,若为0,左移后与全0相加,直至被乘数的最高位。 三、设计内容及要求 设计内容: 设计移位相加8位硬件乘法器,完成8位被乘数A[7..0]和8位乘数B[7..0]的乘法运算,得到16位的乘法运算输出DOUT[15..0]。 (1)设计8位移位寄存器SREG8B,当被乘数加载于SREG8B后,随时钟节拍,最低位在前,由低位至高位逐位移出。 (2)设计与门,根据移位寄存器输出是否为1,决定输入加法器的是8位乘数还是全零。 (3)设计8位加法器,将8位乘数或全零与16位锁存器的高8位进行相加。 (4)设计16位锁存器REG16B,在时钟到来时,锁存来自加法器的输出至高8位,并右移低8位。 要求: 1)根据系统设计要求,采用自顶向下的方法,划分系统主要模块,画出整体设计原理框图。 2)根据工作原理、用硬件描述语言对设计内容实现,列出设计程序清单,给出仿真波形图和调试中存在问题及解决方法。 3)设计内容下载至目标芯片,在EDA的GW48型实验箱进行功能验证。 4)谈谈该课题的课程设计中遇到的问题,获得哪些技能和体会,以及建设性意见。 四、设计步骤和安排: (1)题目安排;图书馆查相关资料; (2)设计原理研究,总体设计; (3)各主要模块的VHDL设计。各模块的设计仿真分析。 (4) 完成系统顶层文件设计,系统总体功能的仿真分析。 (5) 将设计内容进行硬件配置,在GW48实验箱上进行调试。 (6) 撰写课程设计报告、答辩并提交报告。

八位乘法器VHDL及功能模块说明

EDA课程设计报告 实验名称:八位乘法器

目录 一.引言 1.1 EDA技术的概念?? 1.2 EDA技术的特点?? 1.3 EDA设计流程?? 1.4 VHDL介绍?? 二.八位乘法器的设计要求与设计思路??2.1 设计目的?? 2.2 设计要求?? 三.八位乘法器的综合设计?? 3.1 八位乘法器功能?? 3.2 八位乘法器设计方案?? 3.3 八位乘法器实体设计?? 3.4 八位乘法器VHDL设计?? 3. 5八位乘法器仿真图形?? 心得体会?? 参考文献??

一、引言 1.1 EDA技术的概念 EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。 1.2 EDA技术的特点 利用EDA技术进行电子系统的设计,具有以下几个特点:①用软件的方式设计硬件;②用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的;③设计过程中可用有关软件进行各种仿真;④系统可现场编程,在线升级;⑤整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。因此,EDA技术是现代电子设计的发展趋势。 1.3 EDA设计流程 典型的EDA设计流程如下: 1、文本/原理图编辑与修改。首先利用EDA工具的文本或图形编辑器将设计者的设计意图用文本或图形方式表达出来。 2、编译。完成设计描述后即可通过编译器进行排错编译,变成特定的文本格式,为下一步的综合做准备。 3、综合。将软件设计与硬件的可实现性挂钩,是将软件转化为硬件电路的关键步骤。 4、行为仿真和功能仿真。利用产生的网表文件进行功能仿真,以便了解设计描述与设计意图的一致性。 5、适配。利用FPGA/CPLD布局布线适配器将综合后的网表文件针对某一具体的目标器件进行逻辑映射操作,其中包括底层器件配臵、逻辑分割、逻辑优化、布局布线。适配报告指明了芯片内资源的分配与利用、引脚锁定、设计的布尔方程描述情况。

8位乘法器实验报告

6.2 8位乘法器的设计 1.实验目的 (1)熟悉isEXPERT/MAX+plusisEXPERT/MAX+plus II/Foudation Series 软件的基本使用方法。 (2)熟悉GW48-CK EDA实验开发系统的基本使用方法。 (3)学习VHDL基本逻辑电路的综合设计。 2.实验内容 设计并调试好由8位加法器构成的以时序逻辑方式设计的8位乘法器。此乘法器通过判断被乘数的位值为1还是零,并通过乘数的左移与上一次和相加的方法,实现了8位乘法的运算,并用GW48-CK EDA实验开发系统进行硬件验证。 3.实验条件 (1)开发设备:Lattice ispEXPERT。 (2)实验设备:GW48-CK EDA实验开发系统。 (3)拟用芯片:ispLSI1032E PLCC-84或EPF10K10LC84-3或XCS05/XL PLCC84以及运算控制电路和外部时钟。 4.实验设计 1)系统的原理框图

2)VHDL源程序 (1)选通与门模块的源程序ANDARITH.VHD 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 ENTITY ANDARITH; ARCHITECTURE ART OF ANDARITH IS BEGIN PROCESS(ABIN,DIN)IS BEGIN FOR I IN 0 TO 7 LOOP DOUT(I)<=DIN(I)AND ABIN; END LOOP; END PROCESS; END ARCHITECTURE ART; (2)16位锁存器的源程序REG16B.VHD LIBRARY IEEE;

模拟乘法器及其应用

模拟乘法器及其应用

摘要 模拟乘法器是一种普遍应用的非线性模拟集成电路。模拟乘法器能实现两个互不相关的模拟信号间的相乘功能。它不仅应用于模拟运算方面,而且广泛地应用于无线电广播、电视、通信、测量仪表、医疗仪器以及控制系统,进行模拟信号的变换及处理。在高频电子线路中,振幅调制、同步检波、混频、倍频、鉴频、鉴相等调制与解调的过程,均可视为两个信号相乘或包含相乘的过程。采用集成模拟乘法器实现上述功能比采用分立器件如二极管和三极管要简单的多,而且性能优越。 Analog multiplier is a kind of widely used nonlinear analog integrated multiplier can be achieved between two unrelated analog multiplication is not only applied in the simulation operation aspect, and widely used in radio, television, communications, measuring instruments, medical equipment and control system, the analog signal conversion and the high frequency electronic circuit, amplitude modulation, synchronous detection, mixing, frequency doubling, frequency, modulation and demodulation process, the same as can be seen as two signal multiplication or contain multiplication function is realized by using integrated analog multiplier than using discrete components such as diodes and transistors are much more simple, and superior performance.

数电模电课程设计

目录 1 数字电子设计部分......................................... 错误!未定义书签。 1.1六进制同步加法计数器 1.1.1课程设计的目的 1.1.2设计的总体框图 1.1.3设计过程 1.1.4设计的逻辑电路图 1.1.5设计的电路原理图 1.1.6实验仪器 1.1.7实验结论(分析实验中出现的故障及产生的原因 1.1.6实验仪器 1.1.7实验结论(分析实验中出现的故障及产生的原因 1.2串型数据检测器 1.2.1课程设计的目的 1.2.2设计的总体框图 1.2.3设计过程 1.2.4设计的逻辑电路图 1.2.5设计的电路原理图 1.2.6实验仪器 1.2.7实验结论(分析实验中出现的故障及产生的原因) 1.3参考文献

2 模拟电子设计部分......................................... 错误!未定义书签。 2.1 课程设计的目的与作用............................... 错误!未定义书签。 2.1.1课程设计...................................... 错误!未定义书签。 2.2 设计任务、及所用multisim软件环境介绍.............. 错误!未定义书签。 2.3 电路模型的建立..................................... 错误!未定义书签。 2.4 理论分析及计算..................................... 错误!未定义书签。 2.5 仿真结果分析....................................... 错误!未定义书签。 2.6 设计总结和体会..................................... 错误!未定义书签。 2.7 参考文献........................................... 错误!未定义书签。

移位相加型8位硬件乘法器设计

合肥学院 课程设计报告 题目:移位相加型8位硬件乘法器 系别:电子信息与电气工程系 专业:通信工程 班级: 13通信工程(1)班 学号: 姓名: 导师:石朝毅 成绩: 2016年 6 月 11 日

移位相加型8位硬件乘法器设计 摘要 本次设计是基于时序结构的8位移位相加型乘法器,使用软件QuartusII进行仿真设计。完成此乘法器,我们需要首先设计该乘法器的组件,包括REGSHT模块、SREG8BT模块、AND8B模块和ADDER8BT模块,并对所有元件进行仿真,无误后可进行乘法器的设计。设计方法使用的是元件例化,具体原理是通过逐项相加来实现乘法功能,最终完成整体的VHDL程序设计并仿真。 关键词:时序;乘法器;元件例化

目录 第一章前言............................................ 错误!未定义书签。设计概述............................................. 错误!未定义书签。 问题提出与原理..................................... 错误!未定义书签。 设计需要........................................... 错误!未定义书签。第二章设计过程及结果.................................. 错误!未定义书签。设计思路............................................. 错误!未定义书签。 设计须知........................................... 错误!未定义书签。 基本步骤........................................... 错误!未定义书签。设计代码及仿真....................................... 错误!未定义书签。 元件REGSHT设计代码及仿真结果...................... 错误!未定义书签。 元件SREG8BT设计代码及仿真结果..................... 错误!未定义书签。 元件AND8B设计代码及仿真结果....................... 错误!未定义书签。 元件ADDER8BT设计代码及仿真结果.................... 错误!未定义书签。 总模块设计代码及仿真结果........................... 错误!未定义书签。第三章总结............................................ 错误!未定义书签。致谢................................................... 错误!未定义书签。

数电课程设计基于Multisim的乒乓球游戏机控制电路设计

课程设计(论文) 课程名称:数字电子技术基础 题目:基于Multisim的乒乓球游戏机控制电路设计院(系): 专业班级: 姓名: 学号: 指导教师:

任务书 设计题目:基于Multisim乒乓球游戏机的控制设计电路 课题目的: 该乒乓球游戏机电路主要由3块组成:球台驱动电路,控制电路和计分电路组成。其中球台电路主要实现游戏者击球完毕后球的左右移动显示位置功能;控制电路实现游戏者A和B击球,裁判对系统初始化的功能;计分电路具有当A或B击球有效时加分和当游戏者的分数累计超过10时报警通知裁判对系统初始化以便重新开始比赛计分功能。 课题主要内容与要求: 内容:本课题设计一个以8个二极管的依次被点亮代表球的移动位置双向选择开关J2,J3控制发球,击球信号,在Multisim软件上测试结果。 要求:1、熟悉Multisim软件 2、用8个发光二极管表示球,用俩个按钮分别表示AB俩个球员的球拍; 3、A,B各有一个数码管计分。 4、裁判有一个按钮,用来对系统初始化,每次得分后按下一次。

摘要 乒乓球游戏机通过十分巧妙地设计采用数字芯片实现乒乓球左右移动,选手击球得分,累计得分超10报警灯功能。该设计三个双向开关J1,J2,J3分别作为裁判和游戏者A,B,且选手可以译码显示器上直接读出自己的得分,具有操作简单,结构清晰的优点。 对与模电课题的研究离不开电路图,不过现在都在实行电子化,所以需要借助电子产品。Multisim软件就是一款画电路图的电子软件,在此对不太熟悉或未接触过Multisim软件的朋友简短的介绍下: Multisim是美国国家仪器(NI)有限公司推出的以Windows为基础的仿真工具,适用于板级的模拟/数字电路板的设计工作。它包含了电路原理图的图形输入、电路硬件描述语言输入方式,具有丰富的仿真分析能力。同时具备可以根据自己的需求制造出真正属于自己的仪器;所有的虚拟信号都可以通过计算机输出到实际的硬件电路上;所有硬件电路产生的结果都可以输回到计算机中进行处理和分析等特点。该乒乓球游戏机电路主要有3块电路:台球驱动电路,控制电路和计分电路组成。其中台球驱动电路主要实现游戏者击球完毕后球的左右移动显示位置功能;控制电路实现游戏者A和B击球,裁判对系统初始化的功能;

数电模电计数器课设-最终版

目录 数字电子设计部分 1.课程设计的目的与作用 (1) 1.1课程设计的目的 (1) 1.2课程设计的作用 (1) 2.六进制同步减法计数器(无效状011 100) (1) 2.1基本原理 (1) 2.2系统设计框图 (2) 3.六进制异步加法计数器(无效状011 100) (3) 3.1基本原理 (3) 3.2设计的总体框图 (5) 3.3 运行结果 (5) 4.全加器 (5) 5.设计总结和体会 (6) 6.参考文献 (6) 模拟电子设计部分 1.课程设计的目的与作用 (7) 1.1课程设计的目的 (7) 1.2课程设计的作用 (7) 2.设计任务、及所用multisim软件环境介绍 (7) 2.1设计任务 (7) 2.2multisim软件环境的介绍 (7) 3.电路模型的建立,理论分析与计算及仿真结果总结 (8) 3.1反向比例输入电路 (8) 3.2同相比例输入电路 (10) 3.3差分比例输入运算电路 (12) 3.4单限比较器 (15) 3.5滞回比较器 (17) 3.6双限比较器 (19) 4.设计总结和体会 (24) 5.参考文献 (24)

数字电子部分 一、课程设计目的与作用 1.1课程设计目的 1.学会使用数字电子实验平台 2.熟悉各个芯片和电路的接法 3.熟练掌握设计触发器的算法 4.懂得基本数字电子电路的功能,会分析,会设计 二、六进制同步减法计数器(无效状态011 100) 2.1基本原理 状态转换图: 000<---001<---010<---101<---110<---111<---000

Q0n 1.2系统设计框图

8位二进制乘法器设计报告

EDA课程设计报告 ------8位二进制乘法器设计 班级: 学号: 姓名:

目录 一.八位乘法器的设计要求与设计思路?? 2.1 设计目的?? 2.2 设计要求?? 二.八位乘法器的综合设计?? 3.1 八位乘法器功能?? 3.2 八位乘法器设计方案?? 3.3 八位乘法器各功能模块VHDL描述及仿真图形?? 3.4 八位乘法器顶层模块VHDL设计及下载验证?? 心得体会?? 参考文献?? 一、八位乘法器的设计要求与设计思路 1.1实验目的 学习并掌握应用8位二进制乘法器的原理、设计、分析和测试方法 1.2实验内容 利用移位相加原理设计一个8位二进制乘法器。 1.3实验要求 用VHDL编写代码,下载验证,并用8段数码管显示乘数和乘积。 二、八位乘法器的综合设计 2.1 八位乘法器功能 通过调节实验板,输入8位二进制的A和B,八位乘法器能实现其乘积,并在数码管上面显示出来其结果。

2.2乘法器设计方案 该乘法器是有由8 位加法器构成的以时序方式设计的8 位乘法器,采用逐项移位相加的方法来实现相乘。用乘数的各位数码,从低位开始依次与被乘数相乘,每相乘一次得到的积称为部分积,将第一次(由乘数最低位与被乘数相乘)得到的部分积右移一位并与第二次得到的部分积相加,将加得的和右移一位再与第三次得到的部分积相加,再将相加的结果右移一位与第四次得到的部分积相加。直到所有的部分积都被加过一次。例如:被乘数(M7M6M5M4M3M2M1M0)和乘数(N7N6N5N4N3N2N1N0)分别为11010101和10010011,其计算过程如下图(a)下面分解8 位乘法器的层次结构,分为以下4 个模块: ①右移寄存器模块:这是一个8 位右移寄存器,可将乘法运算中的被乘数加载于其中,同时进行乘法运算的移位操作。 ②加法器模块:这是一个8 位加法器,进行操作数的加法运算。 ③1 位乘法器模块:完成8 位与1 位的乘法运算。 ④锁存器模块:这是一个16 位锁存器,同时也是一个右移寄存器,在时钟信号的控制下完成输入数值的锁存与移位。 按照上述算法,可以得到下图所示之框图和简单流程图。图中8 位移位寄存器reg_8 存放乘数a,从a 的最低位开始,每次从reg_8 中移出一位,送至1×8 位乘法器multi_1 中,同时将被乘数加至multi_1 中,进行乘法运算,运算的结果再送至8 位加法器adder_8 中,同时取出16 位移位寄存器reg_16 的高8 位与之进行相加,相加后结果即部分积存入reg_16 中,进行移位后并保存。这样经过8 次对乘数a 的移位操作,所以的部分积已全加至reg_16 中,此时锁存器reg_16 存放的值即所要求的积。

模电课程设计心得

模电课程设计心得(精选多篇) 第一篇:模电课程设计心得 时间总是过得很快,经过一周的课程设计的学习,我已 经自己能制作一个高保真音频功率放大器,这其中的兴奋是无法用言语表达的。 学习模电这段时间也是我们一学期最忙的日子,不仅面 临着期末考试,而且中间还有一些其他科目的实验,更为紧急的是,之前刚做完protelxx的课程设计,本周必须完成模电的课程设计。任务对我们来说,显得很重。昨天刚考完复变,为了尽快完成模电的课程设计,我一天也没歇息。相关知识缺乏给学习它带来很大困难,为了尽快掌握它的用法,我照着原理图学习视频一步一步做,终于知道了如何操作。 刚开始我借来了一份高保真音频功率放大器的电路原理图,但离实际应用差距较大,有些器件很难找到,后来到网上搜索了一下相关内容,顺便到学校图书馆借相关书籍,经过不断比较与讨论,最终敲定了高保真音频功率放大器的电 路原理图,并且询问了兄弟班关于元器件的参数情况。为下步实物连接打好基础。 在做电路仿真时,我画好了电路原理图,修改好参数后,

创建网络列表时系统总是报错,无论我怎样修改都不行,后来请教同学,他们也遇到了同样的困惑。任何事情都不可能是一帆风顺的,开始是创建网络表时出现问题,后来是没有差错但出来的仿真波形不是预计中的,这确实很难修改。输出 时仿真波形总是一条直线,我弄了一晚上也找不出原因,整个人也显得焦躁不已。 接下来,开始了我们的实物焊接阶段。之前的电工实习让我简单的接触到了焊接实物,以为会比较轻松,但实际焊接起来才发现此次与电工实习中的焊接实物有很大的不同,要自己对焊板上元件进行布置和焊接电路元件连线,增加了很大的难度。由于采用了电路板,为了使步线美观、简洁, 还真是费了我们不少精力,经过不断的修改与讨论,最终结果还比较另人满意。 经过这段课程设计的日子,我发现从刚开始的matlab到现在的pspice,不管是学习哪种软件,都给我留下了很深 的印象。由于没有接触,开始学得很费力,但到后来就好了。在每次的课程设计中,遇到问题,最好的办法就是问别人,因为每个人掌握情况不一样,不可能做到处处都懂,发挥群众的力量,复杂的事情就会变得很简单。这一点我深有体会, 在很多时候,我遇到的困难或许别人之前就已遇到,向他们请教远比自己在那冥思苦想来得快。

移位相加位硬件乘法器电路设计

电子技术课程设计 ----移位相加8位硬件乘法器电路计 学院: 华科学院 专业: 通信工程 班级:通信052201H 姓名: 张茹 学号:2 指导教师:柴婷婷 2007年12月30日

一,设计任务与要求--------------------(3)1,内容 2,要求 二,总体框图---------------------------(3)1,电路的总体框图 2,框图的说明 3,设计思路 4,方案设计 三,选择器件与功能模块-----------------(5)1,选择器件各功能模块及功能说明 四,功能模块----------------------------(8)1,ADDER8B的模块 2,ANDARITH的模块 3,ARICTL的模块 4,REG16B的模块 5,SREG8B的模块 五,总体设计电路图----------------------(14)1,总体原理图 2,仿真波形图 3,管脚分配图 4,硬件验证情况 六,心得体会--------------------------------------(18)

移位相加8位硬件乘法器 一.设计任务与要求 1.内容: 由8位加法器构成的以时序逻辑方式设计的8位乘法器乘法通过逐向移位加原理来实现,从被乘数的最低位开始,若为1,则乘数左移与 上一次和相加;若为0,左移后以全零相加,直至被乘数的最高位。2.要求: (1) 重点掌握VHDL设计电路模块 (2)在掌握8位加法器设计的基础上,进一步掌握8×8位乘法器的设计; (3)进一步学习开发系统,掌握MAX+PLUS II的设计流程。 二.总体框图 (电路的总体框图)

高频,模拟乘法器汇总

实验课程名称:高频电子线路

MC1496 是目前常用的平衡调制/解调器。它的典型应用 包括乘、除、平方、开方、倍频、调制、混频、检波、鉴相、 鉴频、动态增益控制等。MC1496 的和内部电路与外部引脚图 如图1(a)(b)所示 (a)1496内部电路 (b)1496引脚图 图1 MC1496的内部电路及引脚图 它内部电路含有 8 个有源晶体管,引脚 8 与 10 接输入电压 VX、1与 4接另一输入电压VY,6 与12 接输出电压 VO。一个理想乘法器的输出为VO=KVXVY,而实际上输出存在着各种误差,其输出的关系为:VO=K(VX +VXOS)(VY+VYOS)+VZOX。为了得到好的精度,必须消除 VXOS、VYOS与 VZOX三项失调电压。引脚 2 与 3 之间需外接电阻,对差分放大器 T5与 T6产生交流负反馈,可调节乘法器的信号增益,扩展输入电压的线性动态范围。 各引脚功能如下: 1:SIG+ 信号输入正端 2: GADJ 增益调节端 3:GADJ 增益调节端 4: SIG- 信号输入负端 5:BIAS 偏置端 6: OUT+ 正电流输出端 7: NC 空脚 8: CAR+ 载波信号输入正端 9: NC 空脚 10: CAR- 载波信号输入负端11: NC 空脚 12: OUT- 负电流输出端 13: NC 空脚 14: V- 负电源 (2)Multisim建立MC1496电路模块 MC1496内部结构multisim电路图和电路模块如图2所示。

图2 MC1496的内部电路及电路模块引脚图 2、AM与DSB电路的设计与仿真 调幅就是用低频调制信号去控制高频振荡(载波)的幅度,使高频振荡的振幅按调制信号的规律变化。把调制信号和载波同时加到一个非线性元件上(例如晶体二极管或晶体三体管),经过非线性变换电路,就可以产生新的频率成分,再利用一定带宽的谐振回路选出所需的频率成分就可实现调幅。幅度调制信号按其不同频谱结构分为普通调幅(AM)信号,抑制载波的双边带(DSB)信号,抑制载波和一个边带的单边带(SSB)信号。 利用模拟乘法器相乘原理实现调幅是很方便的,工作原理如下:在乘法器的一个输入端输入载波信号另一输入端输入调制信号,则经乘法器相乘,可得输出抑制载波的双边带调幅信号的表达为: 若要输出普通调幅信号,只要调节外部电路的平衡电位器,使输出信号中有载波即可。输出信号表达式为: 普通振幅调制电路的原理框图与抑制载波双边带振幅调制电路的原理框图如图3所示 图3 ① AM与DSB电路的设计 查集成模拟乘法器MC1496 应用资料(附录1),得典型应用电路如图4所示。

相关文档
最新文档