当前位置:文档之家› 移位相加型8位硬件乘法器设计

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

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

合肥学院

课程设计报告

题目:移位相加型8位硬件乘法器

系别:电子信息与电气工程系

专业:通信工程

班级: 13通信工程(1)班

学号:

姓名:

导师:石朝毅

成绩:

2016年 6 月 11 日

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

摘要

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

关键词:时序;乘法器;元件例化

目录

第一章前言 (1)

1.1设计概述 (1)

1.1.1问题提出与原理 (1)

1.1.2设计需要 (1)

第二章设计过程及结果 (2)

2.1设计思路 (2)

2.1.1设计须知 (2)

2.1.2基本步骤 (2)

2.2设计代码及仿真 (3)

2.2.1元件REGSHT设计代码及仿真结果 (3)

2.2.2元件SREG8BT设计代码及仿真结果 (4)

2.2.3元件AND8B设计代码及仿真结果 (5)

2.2.4元件ADDER8BT设计代码及仿真结果 (7)

2.2.5总模块设计代码及仿真结果 (8)

第三章总结 (11)

致谢 (12)

第一章前言

1.1设计概述

1.1.1问题提出与原理

采用元件例化的设计方法,设计一个移位相加型8位硬件乘法器设计。下图所示为一个基于时序结构的8位移位相加型乘法器。

图1设计原理图

1.1.2设计需要

(1)元件REGSHT设计,并仿真;

(2)元件SREG8BT,并仿真;

(3)元件AND8B,并仿真;

(4)元件ADDER8BT,并仿真;

(5)整体VHDL程序设计,包括元件例化,并仿真。

第二章设计过程及结果

2.1设计思路

2.1.1设计须知

首先建立文件夹在软件工作的环境下,注意对于不同的器件的设计不能放在同一个文件夹当中这样会造成编译时出现混乱的错误现象。对于每个元器件的设计有两种方法:可以利用原理图输入法,或者利用文本输入法进行设计。本次设计使用的是文本输入法。要注意在写文本输入时要注意实体名与你程序中名字一致。然后,依次按照实验指导书的步骤进行设计。先功能仿真,然后时序仿真,最后下载编译。

2.1.2基本步骤

(1)为本项设计建立文件夹任何一项设计都是一项工程(Project),都必须首先为此工程建立一个放置与此工程相关的所有文件的文件夹,此文件夹将被EDA软件默认为工作库(Work Library)。一个设计项目可以包含多个设计文件,一般不同的设计项目最好放在不同的文件夹中。注意:文件名不能用中文,且不可带空格。

(2)输入设计项目和存盘

a.打开Quartus II,单击“File”菜单,将鼠标移到New Project Wizard…选项并单击,

b.选择File--New,选择原理图编辑器,双击“Block Diagram/Schematic File”,或者选中该项后单击“OK”按钮。(或者选择File New,选择VHDL File 进行文本设计)

(3)选择目标器件并编译,在Assignments选项的下拉菜单中选择器件选择项Device...,在Family(器件序列栏)中选定目标器件对应的序列名,EP1C6对应的是Cyclone系列。在Available Devices里选择EP1C6Q240C8(有时需要把Show advanced devices的勾消去,以便显示出所有速度级别的器件)。注意:所选器件必须与目标板的器件型号完全一致。

(4)在总VHDL程序中需要将要用到的之前设计好的元件添加到当前工程中来,添加方法如下:Project—Add/Remove File in Project,找到之前的元件

add即可,之后方可进行总程序的编译。

(5)仿真时,首先选择Edit—EndTime设置时间为30us,之后导入输入输出端口,选择Pins:All将需要的端口添加,之后给输入端口进行赋值或添加时钟进行时序仿真。

2.2设计代码及仿真

2.2.1元件REGSHT设计代码及仿真结果

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY regsht IS

PORT(CLK,CLR:IN STD_LOGIC;

D:IN STD_LOGIC_VECTOR(8 DOWNTO 0);

Q:OUT STD_LOGIC_VECTOR(15 DOWNTO 0));

END regsht;

ARCHITECTURE behav OF regsht IS

SIGNAL R16S:STD_LOGIC_VECTOR(15 DOWNTO 0);

BEGIN

PROCESS(CLK,CLR)

BEGIN

IF CLR='1' THEN R16S<=(OTHERS=>'0');

ELSIF CLK'EVENT AND CLK='1' THEN

R16S(6 DOWNTO 0)<=R16S(7 DOWNTO 1);

R16S(15 DOWNTO 7)<=D;

END IF;

END PROCESS;

Q<=R16S;

END behav;

图2 REGSHT时序仿真图

分析:此处锁存器模块即16位右移寄存器可利用IF语句来完成其输入值的锁存当清零CLR=‘1’信号到来时定义的信号量R16S锁存输入值即R16S清零否则在时钟信号CLK上升沿作用下将R16S的低8位进行移位操作同时将8位输入数据D锁存到R16S的高8位最后传送给Q输出。在乘法器的顶层设计中乘数与被乘数的乘积也将出现在REG16B端口。

2.2.2元件SREG8BT设计代码及仿真结果

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY sreg8bt IS

PORT(CLK,LOAD:IN STD_LOGIC;

DIN:IN STD_LOGIC_VECTOR(7 DOWNTO 0);

QB:OUT STD_LOGIC);

END sreg8bt;

ARCHITECTURE behav OF sreg8bt IS

SIGNAL REG8:STD_LOGIC_VECTOR(7 DOWNTO 0);

BEGIN

PROCESS(CLK,LOAD)

BEGIN

IF CLK'EVENT AND CLK='1' THEN

IF 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;

图3 SREG8BT时序仿真图

分析:8位右移寄存器是当时钟信号CLK处于上升沿时当LOAD=‘1’时将8位被乘数加载进去而当LOAD=‘0’时 数据进行移位操作。同时定义一个信号REG8用来装载新数据及移位后的操作数在完成这些操作后寄存器的最低位REG8(0)传送给QB输出。

2.2.3元件AND8B设计代码及仿真结果

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY and8b IS

PORT(ABIN:IN STD_LOGIC;

DIN:IN STD_LOGIC_VECTOR(7 DOWNTO 0);

DOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));

END and8b;

ARCHITECTURE behav OF and8b IS

BEGIN

PROCESS(ABIN,DIN)

BEGIN

FOR I IN 0 TO 7 LOOP

DOUT(I)<=DIN(I) AND ABIN;

END LOOP;

END PROCESS;

END behav;

图4 AND8B时序仿真图

分析:加法器是由两个4位二进制加法器U1和U2组成的8位加法器逻辑电路其中U1用来装载8位加法器中两个加数的低四位而U2则用来装载高4位。

2.2.4元件ADDER8BT设计代码及仿真结果

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY adder8bt 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 adder8bt;

ARCHITECTURE behav OF adder8bt IS

SIGNAL SINT,AA,BB:STD_LOGIC_VECTOR(8 DOWNTO 0);

BEGIN

AA<='0'&A;

BB<='0'&B;

SINT<=AA+BB+CIN;

S<=SINT(7 DOWNTO 0);

COUT<=SINT(8);

END behav;

图5 ADDER8BT时序仿真图

分析:8位加法器的设计是由两个4位加法器U1,U2所形成的在下面程序中定义一个信号量CARRY_OUT 将4位加法器U1的COUT赋给CARRY_OUT ,再将CARRY_OUT的值赋给4位加法器U2的进位CIN,8位加法器的高四位低四位分别来自于4位加法器U2和U1。

2.2.5总模块设计代码及仿真结果

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY MULT8B IS

PORT(CLK0,LD:IN STD_LOGIC;

A,B:IN STD_LOGIC_VECTOR(7 DOWNTO 0);

Q0:BUFFER STD_LOGIC_VECTOR(15 DOWNTO 0));

END ENTITY MULT8B;

ARCHITECTURE BEHA V OF MULT8B IS

COMPONENT SREG8BT

PORT(CLK,LOAD:IN STD_LOGIC;

DIN:IN STD_LOGIC_VECTOR(7 DOWNTO 0);

QB:OUT STD_LOGIC);

END COMPONENT;

COMPONENT AND8B

PORT(ABIN:IN STD_LOGIC;

DIN :IN STD_LOGIC_VECTOR(7 DOWNTO 0);

DOUT: OUT STD_LOGIC_VECTOR(7 DOWNTO 0));

END COMPONENT;

COMPONENT ADDER8BT

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 COMPONENT;

COMPONENT REGSHT

PORT(CLK,CLR:IN STD_LOGIC;

D:IN STD_LOGIC_VECTOR(8 DOWNTO 0);

Q:OUT STD_LOGIC_VECTOR(15 DOWNTO 0)); END COMPONENT;

SIGNAL NET1:STD_LOGIC;

SIGNAL NET4:STD_LOGIC;

SIGNAL NET3:STD_LOGIC_VECTOR(7 DOWNTO 0);

SIGNAL NET2:STD_LOGIC_VECTOR(8 DOWNTO 0);

BEGIN

U1:SREG8BT

PORT MAP(CLK=>CLK0,LOAD=>LD,DIN=>A,QB=>NET1);

U2:AND8B

PORT MAP(DIN=>B,ABIN=>NET1,DOUT=>NET3);

U4:ADDER8BT

PORT MAP(A=>Q0(15 DOWNTO 8),B=>NET3,CIN=>NET4,

S=>NET2(7 DOWNTO 0),COUT=>NET2(8));

U3:REGSHT

PORT MAP(CLK=>CLK0,CLR=>LD,D=>NET2,Q=>Q0); END ARCHITECTURE BEHA V;

图6 总模块时序仿真图

第三章总结

本次设计是个综合性设计,我们需要熟悉很多知识才能完成本次设计。通过本次项目的设计,我对一个项目开发的基本流程有了更深层次的了解,也让我加深对EDA的了解,我也开始喜欢上了EDA。在此次设计的过程中,遇到了很多问题,如写端口时将小括号写成大括号,有些部分还少了分号导致了编译出错,最后根据错误提示信息找到了错误并改正,还有仿真的时候找不到波形文件,原因是我没有将波形文件保存到对应的文件夹中,在找错误的过程中,我觉得自己得到了很大的提升。

上课的时候我们学习的都是理论知识,将理论转化成实践是有一定的难度的,但我们不能纸上谈兵,只有实践才能让我们真正掌握这门课的知识,从中获得最终的结论,使我们对以前的知识以及接触到的新内容掌握的更加牢固。

致谢

感谢石朝毅老师对我的悉心教导,使我对这门课产生了浓厚的兴趣。硬件编程语言VHDL和高级语言有区别但很接近,通过这门课让我对硬件方面有了更深层次的了解,这将对我以后学习高级语言编程有很大的帮助,也必定有所突破。

在此,谨向石老师表示崇高的敬意和由衷的感谢。

32位移位寄存器

实验四 一、实验名称 32位并进/并出移位寄存器设计 二、实验原理 用一个8位移位寄存器,再增加一些电路,如4个8位锁存器等,设计成为一个能为32位二进制数进行不同方式移位的移位寄存器。 三、实验步骤 1、建立一个工程项目,设置路径,项目名和顶层实体名一致; 2、设计一个8位移位寄存器电路; 3、设计一个8位锁存器电路; 4、运用元件调用声明语句和元件例化语句完成顶层设计。 四、实验程序 1、八位移位寄存器程序 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY jicun IS PORT ( CLK,CO: IN STD_LOGIC; --时钟和进位输入 MD : IN STD_LOGIC_VECTOR(2 DOWNTO 0); --移位模式控制字 D : IN STD_LOGIC_VECTOR(7 DOWNTO 0); -- 待加载移位的数据 QB : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); --移位数据输出 CN : OUT STD_LOGIC); --- 进位输出 END jicun; ARCHITECTURE behav OF jicun IS SIGNAL REG : STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL CY : STD_LOGIC; BEGIN

PROCESS(CLK,CO,MD) BEGIN IF CLK'EVENT AND CLK='1' THEN CASE MD IS WHEN "001"=> REG(0)<=CO; ---带进位循环左移 REG(7 DOWNTO 1)<= REG(6 DOWNTO 0);CY<=REG(7); WHEN "010" => REG(0)<=REG(7); ---自循环左移 REG(7 DOWNTO 1)<= REG(6 DOWNTO 0); WHEN "011"=>REG(7)<=REG(0); ---自循环右移 REG(6 DOWNTO 0)<=REG(7 DOWNTO 1); WHEN "100" =>REG(7)<=CO; ---带进位循环右移 REG(6 DOWNTO 0)<=REG(7 DOWNTO 1);CY<=REG(0); WHEN "101" =>REG(7 DOWNTO 0)<=D(7 DOWNTO 0); --加载待移数 WHEN OTHERS=>REG<=REG;CY<=CY;--保持 END CASE; END IF; END PROCESS; QB(7 DOWNTO 0)<=REG(7 DOWNTO 0);CN<=CY; END behav; 2、锁存器程序 library ieee ; use ieee.std_logic_1164.all ; entity suocun is port(d : in std_logic_vector(7 downto 0) ; q: out std_logic_vector(7 downto 0); clk : in std_logic ); end suocun ; architecture one of suocun is signal q1: std_logic_vector(7 downto 0);

模拟乘法器设计____模拟电路课程设计

乘法运算电路 1、课程设计的目的 模拟电子技术基础课程设计是学习模拟电子技术基础课程之后的实践教学环节。其目的是训练学生综合运用学过的模拟电子技术的基础知识。独立完成查找资料,选择方案,设计电路,撰写报告等工作。使学生进一步理解所学本课程的内容。并理论联系实际提高和培养学生的创新能力,为后续课程的学习毕业设计。毕业后的工作打下基础。 2、设计方案论证 理想模拟乘法器具备的条件:1.r i1和r i2为无穷大;2.r o为零; 3. k值不随信号幅值而变化,且不随频率而变化; 4.当u X或u Y为零时u o为零,电路没有失调电压、噪声。 由乘法电路的输出电压正比于其两个输入电压的乘积,即 u o = u I1u I2 求对数,得: 再求指数,得: 所以可以利用对数电路、求和电路和指数电路,得到乘法运算电路,其方块图1为: 对数电路 对数电路 u I1 u I2 ln u I1 ln u I2 求和电路 ln u I1+ ln u I2 指数电路

u O = u I1u I2 图1 乘法运算电路方块图 2.1 Multisim介绍 Multisim是加拿大图像交互技术公司(Interactive Image Technoligics 简称IIT公司)推出的以Windows为基础的仿真工具,适用于板级的模拟/数字电路板的设计工作。它包含了电路原理图的图形输入、电路硬件描述语言输入方式,具有丰富的仿真分析能力。它的前身为 EWB(Electronics Workbench)软件。它以界面形象直观、操作方便、分析功能强大、易学易用等突出优点,早在20世纪90年代初就在我国得到迅速推广,并作为电子类专业课程教学和实验的一种辅助手段。21世纪初,EWB 5.0更新换代推出EWB 6.0,并更名为Multisim 2001;2003年升级为Multisim 7.0;2005年发布Multisim 8.0时其功能已十分强大,能胜任电路分析、模拟电路、数字电路、高频电路、RF电路、电力电子及自动控制原理等个方面的虚拟仿真,并提供多达18种基本分析方法。 工程师们可以使用Multisim交互式地搭建电路原理图,并对电路行为进行仿真。Multisim提炼了SPICE仿真的复杂内容,这样工程师无需懂得深入的SPICE技术就可以很快地进行捕获、仿真和分析新的设计,这也使其更适合电子学教育。通过Multisim和虚拟仪器技术,PCB设计工程师和电子学教育工作者可以完成从理论到原理图捕获与仿真再到原型设计和测试这样一个完整的综合设计流程。2.1.1破解版Multisim7安装方法注:电脑第一次安装Multisim7,须安装两遍;第二次及以后安装均会将跳过第一遍步骤,直接从第二遍步骤开始。第一遍安装步骤:(1)双击Multisim7破解版文件夹/双击Electronics Workbench MULTISMv7.0文件夹/Setup/Next/ 接受协议/Next安装DAO3.5。(2)第一遍安装结束,问是否现在重起计算机?选择“NO”/Finish。第二遍安装步骤:(1)仍双击Electronics Workbench MULTISMv7.0文件夹下的Setup/Next/接受协议/在Serial栏输入任意密码,Next/要求第二次输入密

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核就可以了。 ①首先对生成的工程进行综合。 ②生成核 ③添加核

移位相加8位乘法器的设计

EDA技术课程大作业 设计题目:移位相加8位乘法器的设计 院系:电子信息与电气工程学院 学生姓名: 学号:200902070017 专业班级:09电子信息工程专升本 2010年12月3日

移位相加8位乘法器的设计 1.设计背景和设计方案 1.1设计背景 EDA技术(即Electronic Design Automation技术)就是依赖强大的计算机,在EDA工具软件平台上,对以硬件描述语言HDL(Hardware Ddscription Langurage)为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、化简、分割、综合、布局布线以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。它在硬件实现方面融合了大规模集成电路制造技术、IC版图设计、ASIC 测试和封装、FPGA(Gield Peogrammable Gate Array)/CPLD(Complex Programmable Logic Device)编程下载和自动测试等技术;在计算机辅助工程方面融合了计算机辅助设计(CAD),计算机辅助制造(CAM),计算机辅助测试(CAT),计算机辅助工程(CAE)技术以及多种计算机语言的设计概念;而在现代电子学方面则容纳了更多的内容,如电子线路设计理论、数字信号处理技术、数字系统建模和优化技术及长线技术理论等。本文介绍设计一个两个5位数相乘的乘法器。用发光二极管显示输入数值,用7段显示器显示十进制结果。乘数和被乘数分两次输入。在输入乘数和被乘数时,要求显示十进制输入数据。输入显示和计算结果显示,采用分时显示方式进行,可参见计算器的显示功能 1.2设计方案 此设计是由八位加法器构成的以时序逻辑方式设计的八位乘法器,它的核心器件是八位加法器,所以关键是设计好八位加法器。 方案一:八位直接宽位加法器,它的速度较快,但十分耗费硬件资源,对于工业化设计是不合理的。 方案二:由两个四位加法器组合八位加法器,其中四位加法器是四位二进制并行加法器,它的原理简单,资源利用率和进位速度方面都比较好。综合各方面的考虑,决定采用方案二。 该乘法器是由8位加法器构成的以时序方式设计的8位乘法器。其乘法原理是乘法通过逐项移位相加原理来实现,从被乘数的最低位开始,若为1,则乘数左移后与上一次的和相加;若为0,左移后以全零相加,直至被乘数的最高位。从

4位乘法器

一、概述 利用四位二进制寄存器、全加器以及D触发器等元器件,实现四位二进制乘法器的控制部分和乘法的实现部分。成法是加法的简便运算乘法运算只能通过加法运算以及移位运算来实现。在控制端用四个触发器产生四个控制信号来控制实现的加法移位功能,实现端在控制端信号作用下依次执行置零、加法、移位和循环操作。 二、方案说明 设计一个4位二进制乘法器,可以存储其乘积。 电路原理框图如图1所示。乘法器可以利用家发起和寄存器实现。 图1 乘法器原理框图 寄存器B存放被乘数,寄存器Q存放乘数,两个乘积长度可能是原来的2倍,故计算完成后将累加和高位放入寄存器A,而Q放寄存器的低位,P 记录乘数的位数,每形成一个部分P加1,当P=4时,乘法结束,两数之积放在AQ寄存器中。 控制端产生四个控制信号分别为T0、T1、T2、T3。在初态T0时,被乘数和乘数已分别存于寄存器B和Q中,等待启动信号S的到来,当S=1时控制器进入状态T1,在此状态下A、E、P清零,准备乘法操作。 从状态T2开始,控制器进入累计部分积的循环操作过程。首先检验乘数的最低有效位Q1。如Q1=1,A和B相加结果存于A和E之中;如果Q1=0,不做加法运算。无论Q1为何值,都要将计数器P加1。在状态T3,合成寄存器EAQ右移一位得到累计的部分积,时检测P之值,如果P不等于4,状态返回T2,继续累计部分积的过程。如果P=4,停止循环,系统返回初始状态T0。 三、电路设计 1、控制器设计

根据图2所示的ASM图表,可以设计二进制乘法器的控制器。 图2 二进制乘法器ASM图表四个D触发器的驱动方程为: D0=T0S’+T3Z=((T0S’)’·(T3Z)’)’ D1=T0S=((T0S)’)’ D2=T1+T3Z’=(T1’·(T3Z’)’)’ D3=T2

8.模拟乘法器的应用-乘积型混频器

模拟乘法器的应用 ——乘积型混频器 学号:200800120228 姓名:辛义磊仪器编号:30 一、实验目的 1、掌握集成模拟乘法器的工作原理及其特点 2、进一步掌握集成模拟乘法器(MC1596/1496)实现振幅调制、同步检波、混频、倍频的电路调整与测试方法 二、实验仪器 低频信号发生器 高频信号发生器 频率计 稳压电源 万用表 示波器 三、实验原理与实验电路 集成模拟乘法器是继集成运算放大器后最通用的模拟集成电路之一,是一种多用途的线性集成电路。可用作宽带、抑制载波双边带平衡调制器,不需要耦合变压器或调谐电路,还可作为高性能的SSB乘法检波器、AM调制解调器、FM解调器、混频器、倍频器、鉴相器等,它与放大器相结合还可以完成许多数学运算,如乘法、除法、乘方、开放等。 MC1496的内部电路继引脚排列如图所示

MC1496型模拟乘法器只适用于频率较低的场合,一般工作在1MHz以下的频率。双差分对模拟乘法器MC1496/1596的差值输出电流为 MC1595是差值输出电流为 式中,错误!未找到引用源。为乘法器的乘法系数。 MC1496/1596使用时,VT 1至VT 6 的基极均需外加偏置电压。 实验电路 四、实验步骤

检查电路无误后接通电源,完成如下操作: 1、 当本振信号的频率为43 .4=L f MHz 、振幅为5 .0≤-p p V V ,输入信号的频率 为4 =C f MHz ,振幅为50 ≤-p p V mV 时,观察并测绘输入输出信号波形,记 录I L C f f f 、、。 2、当本振信号的频率为43.4=L f MHz 、振幅为5.0≤-p p V V ,输入信号的振幅为 50 ≤-p p V mV 时,改变输入信号频率C f (在3.9-4.1MHz 之间,每隔200kHz 测量 一次),测量输出信号的频率和幅度,记录在表格中,并由此计算带通滤波器的 通频带宽度。 f c 3.9MHz 4.0MHz 4.1MHz f 4.43 MHz 4.43 MHz 4.43 MHz v 500mV 500mV 500mV 3、保持两输入信号的频率及本振信号幅度不变,改变输入信号振幅V sm (峰峰值在40-100mV 之间变化)的大小,逐渐测量输入V sm 和中频输出V im 。将测量及计算结果填入表格中,并完成下列任务: ①计算混频增益A vc 。将混频电压增益A vc 定义为变频器中频输出电压幅值与输入信号幅值之比,以分贝表示为sm vc V V A Im lg 20= ②作出V sm 和V im 的关系曲线 V sm 40 mV 60 mV 80 mV 100mV V im 60mV 85mV 100mV 120mV 五、思考题

8位移位寄存器的电路设计与版图实现

8位移位寄存器的电路设计与版图实现 摘要 电子设计自动化,缩写为EDA,主要是以计算机为主要工具,而Tanner EDA则是一种在计算机windows平台上完成集成电路设计的一种软件,基本包括S-Edit,T-Spice,W-Edit,L-Edit与LVS等子软件,其S-Edit以及L-Edit为常用软件,前者主要实现电路设计,后者主要针对的是已知电路的版图绘制,而T-Spice主要可实现电路图及版图的仿真,可以用Tanner EDA实现电路的设计布局以及版图实现等一系列完整过程。本文用Tanner EDA工具主要设计的是8位移位寄存器,移位寄存器主要是用来实现数据的并行和串行之间的转换以及对数据进行运算或专业处理的工具,主要结构构成是触发器,触发器是具有储存功能的,可以用来储存多进制代码,一般N 位寄存器就是由N个触发器构成,移位寄存器工作原理主要是数据在其脉冲的作用下实现左移或者右移的效果,输入输出的方式表现为串行及并行自由组合,本设计就是在Tanner EDA的软件平台上进行对8位移位寄存器的电路设计仿真,再根据电路图在专门的L-Edit 平台上完成此电路的版图实现,直至完成的结果和预期结果保持一致。 关键词:Tanner EDA;L-Edit;移位寄存器,S-Edit

8 bits shift register circuit design and layout Abstract Electronic design automation,referred to as EDA,it is based on computers as the main tool,and Tanner EDA is a kind of software that complete the integrated circuit design on Windows platforms.Its Sub-Softwares include S-Edit,T-Spice,W-Edit,L-Edit and LVS and so on.S-Edit and L-Edit are commonly used software,S-Edit is primarily designed to achieve circuit,the latter is aimed primarily known circuit layout drawing,T-Spice can achieve schematic and layout simulation.We can achieve layout of the circuit design and a series of complete process layout used Tanner EDA tools.In this paper, Tanner EDA tools are mainly designed an 8-bit shift register.The shift register is mainly used for data conversion between parallel and serial, and the data processing tool operation or professional,its main structure is the trigger composition,flip-flop is a storage function,it can be used to store more hexadecimal code,In general N-bits register is composed of N trigger.Working principle of the shift register data under the action of the pulse, mainly the effect of the shift to the left or right,input and output of the way of serial and parallel free combination.This design is in Tanner on the EDA software platform to 8 bits shift register circuit design and simulation,then according to the circuit diagram on special L - Edit platform to complete the circuit layout implementation,until the finish is consistent with the results and expected results. Keywords:Tanner EDA;L-Edit;Shift register,S-Edit

实验三 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;

专用集成电路,verilog移位乘法器,源代码及电路仿真

生命科学技术学院《CMOS专用集成电路》实验报告 学院(系):生命科学技术学院 专业:生物医学工程 班级:151011 学号:15101004 学生姓名:柳琳 2013年06 月29 日

一、实验题目 (1)更改测试文件相关部分的参数值,将该乘法器的数据位宽改为8-Bit。 (2)根据对实验电路的分析,绘制该移位式乘法器电路详细的电路结构框图,并对每一功能部件的功能及相关参数的意义进行说明; (3)采用Verilog HDL硬件描述语言设计一个16-Bit超前进位加法器; (4)在上面超前进位加法器基础上,将原电路的部分积求和电路改进成超前进位加法器。 二、实验结果与讨论 (1)更改测试文件相关部分的参数值,将该乘法器的数据位宽改为8-Bit。 module multiplier_nbit ( rst, clk, x, y, result ); parameter mwidth = 8; parameter rwidth = mwidth + mwidth; input rst, clk; … reg [1:0] stcnt; reg [2:0] mucnt; … assign mucnt_en = (stcnt == 2'b01) ? 1'b1 : 1'b0; assign mucnt_full = (mucnt == 3'b111) ? 1'b1 : 1'b0; assign stcnt_load = (stcnt == 2'b10) ? 1'b1 : 1'b0; … always @(posedge rst or posedge clk) begin if(rst) mucnt <= 3'b000; else if(mucnt_en) mucnt <= mucnt + 1; else mucnt <= mucnt; end module test_mult; reg rst, clk; reg [7:0] x, y; wire [15:0] result;

模拟乘法器及其应用

模拟乘法器及其应用

摘要 模拟乘法器是一种普遍应用的非线性模拟集成电路。模拟乘法器能实现两个互不相关的模拟信号间的相乘功能。它不仅应用于模拟运算方面,而且广泛地应用于无线电广播、电视、通信、测量仪表、医疗仪器以及控制系统,进行模拟信号的变换及处理。在高频电子线路中,振幅调制、同步检波、混频、倍频、鉴频、鉴相等调制与解调的过程,均可视为两个信号相乘或包含相乘的过程。采用集成模拟乘法器实现上述功能比采用分立器件如二极管和三极管要简单的多,而且性能优越。 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.

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个数时,发出一个信号,使电路停止操作,并输出运算结果。

74HC164 串入、并出8 位移位寄存器

8 位串入、并出移位寄存器 1. 概述 74HC164、74HCT164 是高速硅门 CMOS 器件,与低功耗肖特基型 TTL (LSTTL) 器件的引脚兼容。74HC164、74HCT164 是 8 位边沿触发式移位寄存器,串行输入数据,然后并行输出。数据通过两个输入端(DSA 或 DSB)之一串行输入;任一输入端可以用作高电平使能端,控制另一输入端的数据输入。两个输入端或者连接在一起,或者把不用的输入端接高电平,一定不要悬空。 时钟 (CP) 每次由低变高时,数据右移一位,输入到 Q0, Q0 是两个数据输入端(D SA 和 DSB)的逻辑与,它将上升时钟沿之前保持一个建立时间的长度。 主复位 (MR) 输入端上的一个低电平将使其它所有输入端都无效,同时非同步地清除寄存器,强制所有的输出为低电平。 2. 特性 ?门控串行数据输入 ?异步中央复位 ?符合JEDEC 标准no. 7A ?静电放电(ESD) 保护: ·HBM EIA/JESD22-A114-B 超过2000 V ·MM EIA/JESD22-A115-A 超过200 V 。 ?多种封装形式 ?额定从-40 °C 至+85 °C 和-40 °C 至+125 °C 。 3. 功能图 图 1. 逻辑符号

图 2. IEC 逻辑符号 图 3. 逻辑图 图 4. 功能图 4. 引脚信息

图 5. DIP14、SO14、SSOP14 和 TSSOP14 封装的引脚配置 引脚说明 74HC164中文资料(功能,真值表,引脚图及电气参数介绍) SN54HC164,/SN74HC164是8位移位寄存器,当其中一个(或二个)选通串行输入端的低电平禁止进入新数据,并把第一个触发器在下一个时钟脉冲来后复位到低电平时,门控串行输入端(A 和B)可完全控制输入数据。一个高电平输入后就使另一个输入端赋能,这个输入就决定了第一个触发器的状态。虽然不管时钟处于高电平或低电平时,串行输入端的数据都可以被改变,但只有满足建立条件的信息才能被输入。时钟控制发生在时钟输入由低电平到高电平的跃变上。为了减小传输线效应,所有输入端均采用二极管钳位。 https://www.doczj.com/doc/1612329127.html,/info/cmos/0083928.html H=高电平(稳定态)L=低电平(稳定态)×=不定↑=从低电平转换到高电平 QA0…QH0=在稳定态输入条件建立前QA…QH 的相应电平 QAn…QHn=在最近的时钟输入条件(↑)建立前QA…QH 的相应电平,表示移位一位

模拟乘法器1496实验报告

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

五.实验原理与电路设计仿真 1、集成模拟乘法器1496的内部结构 集成模拟乘法器是完成两个模拟量(电压或电流)相乘的电子器件。在高频电子线路中,振幅调制、同步检波、混频、倍频、鉴频、鉴相等调制与解调的过程,均可视为两个信号相乘或包含相乘的过程。采用集成模拟乘法器实现上述功能比采用分立器件如二极管和三极管要简单的多,而且性能优越。所以目前在无线通信、广播电视等方面应用较多。集成模拟乘法器的常见产品有BG314、F1595、F1596、MC1495、MC1496、LM1595、LM1596等。下面介绍MC1496集成模拟乘法器。 (1)MC1496的内部结构 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电路模块 启动multisim11程序,Ctrl+N新建电路图文件,按照MC1496内部结构图,将元器件放到电子工作平台的电路窗口上,按住鼠标左键拖动,全部选中。被选择的电路部分由周围的方框标示,表示完成子电路的选择。为了能对子电路进行外部连接,需要对子电路添加输入/输出。单击Place / HB/SB Connecter 命令或使用Ctrl+I 快捷操作,屏幕上出现输入/输出符号,

八位乘法器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位双向移位寄存器电路设计

目录 摘要 (1) 1 多功能双向移位寄存器 (2) 1.1 基本工作原理 (2) 1.2 基本实现方案 (2) 2 电路图设计 (4) 2.1 电路结构 (4) 2.2 真值表 (4) 3 Verilog描述8位双向移位寄存器 (6) 4 程序仿真 (8) 5 总结 (10) 参考文献 (11)

摘要 移位寄存器是基本的同步时序电路,基本的移位寄存器可以实现数据的串行/并行或并行/串行的转换、数值运算以及其他数据处理功能。在本设计中,使用硬件描述语言Verilog,在EDA工具QuartussII中,设计8位双向移位寄存器硬件电路,根据设计语言进行功能时序仿真,验证设计的正确性与可行性。 关键字:Verilog QuartusII 移位寄存器

8位双向移位寄存器电路设计 1 多功能双向移位寄存器 1.1 基本工作原理 移位寄存器是基本的同步时序电路,基本的移位寄存器可以实现数据的串行/并行或并行/串行的转换、数值运算以及其他数据处理功能。在本设计中定义移位寄存器中的数据从低位触发器移向高位为右移,移向低位为左移。 为了扩展逻辑功能和增加使用的灵活性,某些双向移位寄存器集成电路产品 又附加了并行输入、并行输出等功能。如图1所示是上述几种工作模式的简化示意图。 并行输入 并行输出 右移串行输入(D IR 左移串行输出(D OL 右移串行输出(D OR ) D IL ) 0123 图1 多功能移位寄存器工作模式简图 1.2 基本实现方案 图2所示是实现数据保持、右移、左移、并行置入和并行输出的一种电路方 案。图中的D 触发器m FF 是N 为移位寄存器中的第m 位触发器,在其数据输入端插入了一个4选1数据选择器m MUX ,用2位编码输入10S S 、控制m MUX ,来选择触发器输入信号m D 的来源。当100S S ==时,选择该触发器本身输出的m Q , 次态为1m n n m m Q D Q +==,使触发器保持状态不变;当100,1S S ==时,触发器1m FF -的输出1m Q -被选中,故CP 脉冲上升沿到来时,m FF 存入1m FF -此前的逻辑值,即 1m 1n n m Q Q +-=,而1m +1n n m Q Q +=, 从而实现右移功能;类似地,当101,0S S ==时,m MUX 选择1m Q +,实现左移功能;而当101S S ==时,则选中并行输入数据m DI ,其次 态1 n m m Q DI +=,从而完成并行数据的置入功能。上述四种操作概述于表1,此外,

移位硬件八位乘法器

移位硬件八位乘法器 作者:孤灯 摘要:纯组合逻辑构成的乘法器虽然工作速度比较快,但过于占用硬件资源,难以实现宽位乘法器,基于PLD器件外接ROM九九表的乘法器则无法构成单片系统,也不实用。这里介绍由八位加法器构成的以时序逻辑方式设计的八位乘法器,具有一定的实用价值,而且由FPGA构成实验系统后,可以很容 易的用ASIC大型集成芯片来完成,性价比高,可操作性强。 关键词:加法器,寄存器,一位乘法器,锁存器。 Abstract The pure combinatory logic constitution multiplier although the working speed quite is quick,But too takes the hardware resources,Realizes the wide position multiplier with difficulty.Meets the ROM multiplication table based on the PLD component outside the multiplier then is unable to constitute the monolithic system,Also is impractica Here introduced constitutes by eight accumulators by the succession logic way design eight multipliers,Has the certain practical value, Moreover constitutes the experimental system after FPGA,May be very easy to complete with the ASIC large-scale integration chip,The natural price is higher than,Feasibility. 一.设计思路 纯组合逻辑构成的乘法器虽然工作速度比较快,但过于占用硬件资源,难以实现宽位乘法器,基于PLD器件外接ROM九九表的乘法器则无法构成单片系统,也不实用。这里介绍由八位加法器构成的以时序逻辑方式设计的八位乘法器,具有一定的实用价值,而且由FPGA构成实验系统后,可以很容易的用ASIC大型集成芯片来完成,性价比高,可操作性强。其乘法原理是:乘法通过逐项移位相加原理来实现,从被乘数的最低位开始,若为1,则乘数左移后与 上一次的和相加;若为0,左移后以全零相加,直至被乘数的最高位。 二.方案设计与论证 此设计是由八位加法器构成的以时序逻辑方式设计的八位乘法器,它的核心器件是八 加法器,所以关键是设计好八位加法器。 方案一:八位直接宽位加法器,它的速度较快,但十分耗费硬件资源,对于工业化设计是不合理的。 方案二:由两个四位加法器组合八位加法器,其中四位加法器是四位二进制并行加法器,它的原理简单,资源利用率和进位速度方面都比较好。综合 各方面的考虑,决定采用方案二。 三.工作原理

相关主题
文本预览
相关文档 最新文档