《实验二时钟驱动的乘法器.doc》由会员分享,可在线阅读,更多相关《实验二时钟驱动的乘法器.doc(4页珍藏版)》请在金锄头文库上搜索。
1、桂林电子科技大学EDA技术及应用 实验报告(实验二)实验名称:时钟驱动的乘法器生命与环境科学学院生物医学工程作者:学号:实验日期:2012年9月28日一、 实验目的1、 掌握时钟驱动乘法器的VHDL程序设计和其设计原理2、 了解在时钟信号下,乘法器仿真时序图的含义3、 了解乘法器的功能二、 实验内容1、 采用VHDL程序语言设计时钟驱动器乘法器,其表达式为:S=A*B;其中,S为输出,A为被乘数,B为乘数。2、 对程序进行编译仿真,显示波形,分析波形3、 将程序下载至硬件,显示结果并验证三、 实验设计及步骤1、 打开软件建立工程于文件夹D:chengfaqi单击file中的new projec
2、t wizard,选择工程所在位置D:chengfaqi,再给工程取名chenfaqi单击finish.(注意工程名必须与程序代码中的实体名一致)2、 新建VHDL文件单击file中的new,选择design file中的VHLD file,输入程序3、 源程序:LIBRARY IEEE; -声明库USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_SIGNED.ALL; -声明用到的程序包ENTITY.chenfaqi IS -实体PORT( -声明外部端口A:IN STD_LOGIC_VECTOR(7 DOWNTO 0); -定义A为输入B:IN
3、STD_LOGIC_VECTOR(7 DOWNTO 0); -定义B端口输入S:OUT STD_LOGIC_VECTOR(15 DOWNTO 0) -定义S端口输出);END chenfaqi;ARCHITECTURE ARCHI OF chenfaqi IS -结构体BEGINPROCESS(CLK) -开始时钟进程BEGINIF CLKEVENT AND CLK=1 THEN -当满足时钟信号为上升沿的条件时S=A*B; -A和B的乘积赋给S输出END IF;END PROCESS;END ARCHI;4、编译仿真单击进行编译,编译成功之后,设置芯片,单击“Assignments”,再单击
4、“device”Family处选择“cyclone ”,available devices处选择“EP2C8Q208C8”。再新建仿真文件。file中的new,在 中选,出现双击name下方的空白处,单击出现的Insert Node or Bus中的Node Finder.出现Node Finder对话框,单击list,在Nodes Found里面选择A、B、clk及S到右边的selected nodes里面。Ok再ok.选择A(其背景变成蓝色),单击,给A进行计数赋值,如图对B同样的做法。(signed decimal表示有符号十进制)选择clk,点击,出现clk对话框,按OK。选择S,右键
5、,单击properties。保存文件,再点击进行仿真仿真结果如下:5 、按照实验电路图锁定管脚实验电路图其中:PIO3PIO0接A3.0,键1输入,对应引脚号12,11,10,8PIO7PIO4接A7.4,键2输入,对应引脚号30,15,14,13PIO11PIO8接B3.0,键3输入,对应引脚号35,34,33,31PIO15PIO12接B7.4,键4输入,对应引脚号41,40,39,37CLOCK0接CLK,对应引脚号23PIO19PIO16接S3.0,数码管5显示,对应引脚号46,45,44,43PIO23PIO20接S7.4,数码管6显示,对应引脚号57,56,48,47PIO27PI
6、O24接S11.8,数码管7显示,对应引脚号94,92,59,58PIO31PIO28接S15.12,数码管8显示,对应引脚号99,97,96,956、硬件逻辑验证锁定管脚之后,点击,在弹出的对话框中勾选,再点击,选择下面的内容,close。单击,开始下载。实验箱选择模式一,按复位键,随意输入数据进行验证:说明:(被乘数A:第二位对应“键二”,第一位对应“键一” 乘数B:第二位对应“键四”,第一位对应“键三”数码管显示:第四位对应“数码管8”,第三位对应“数码管7”,第二位对应“数码管6”,第一位对应“数码管5”)四、 实验结果积S乘数B被乘数A数码管8数码管7数码管6数码管5键4键3键2键10014050402EE191E五、 实验小结