移位相加型8位硬件乘法器设计.doc
文本预览下载声明
合 肥 学 院
课 程 设 计 报 告
题 目:移位相加型电子信息与电气工程系通信工程石朝毅
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)(2)(3)(4)(5)
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 CLKEVENT AND CLK=1 THEN
R16S(6 DOWNTO 0)=R16
显示全部