VHDL实验报告_第1页
VHDL实验报告_第2页
VHDL实验报告_第3页
VHDL实验报告_第4页
VHDL实验报告_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、项目一 数 据 选 择 器一、实验与设计要求1熟悉MAX+PLUS II的编译环境,掌握该集成环境各个菜单项的使用;2了解MAX+PLUSII的VHDL程序设计输入方法,初步了解该软件的仿真环境;3初步运用VHDL编程,体会硬件描述语言的先进性;4理解VHDL语言的并发执行的特点;5熟悉VHDL语法6. 按照如下图示,设计一个四路的数据选择器,该电路能将四组不同的数据有选择的输出,每一组数据的宽度为4,输出那一组数据由选择开关决定,如下表:地址选择开关输出S0S1Z00A01B10C11D辑图如下: 数据选择器 A B Q C D S0 S1二、实验与设计方法 1进入MAX+PLUSII软件之

2、前,在E盘上新建一个工作目录lyung。2进入MAX+PLUSII文本编辑器,编写VHDL程序,并保存文件至lyung mux41.vhd:3. 将工程指向当前文件并编译当前文件。4. 建立波形仿真文件,设置输入、输出端口及输入端口的信号波形,保存波形仿真文件。5. 进入仿真器工作环境,查看波形仿真结果。6. 选择器件, 为电路端口分配FPGA器件引脚。7. 进行第二次编译(包括逻辑综合和器件工艺映射),生成目标文件(*.sof等)。8将目标文件下载至FPGA器件。9在实验台上进行实际操作,验证设计的正确性。三、实验与设计结果通过实验,初步熟悉了MAX+PLUS II的编译环境,并掌握该集成环

3、境各个菜单项的使用。 实验过程中,了解了MAX+PLUSII的VHDL程序设计输入方法,初步运用VHDL编程,成功的按照实验要求设计了程序的VHDL源码(见附件1),熟悉了VHDL语法,理解了VHDL语言的并发执行的特点;并进行了仿真实验(仿真实验截图见图4-1),初步了解该软件的仿真环境,并成功的将文件烧入实验平台,成功通过了测试(实验平台截图见图4-2)。四、程序源码及实验截图4-0、VHDL源码如下: LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux41 IS PORT (a,b,c,d: IN STD_LOGIC_VECTOR (3

4、 DOWNTO 0); s1,s0: IN STD_LOGIC; q: OUT STD_LOGIC_VECTOR (3 DOWNTO 0); END mux41;ARCHITECTURE behave OF mux41 ISSIGNAL sel: STD_LOGIC_VECTOR(1 DOWNTO 0); BEGIN sel = s1 & s0; q= a WHEN sel=00 ELSE b WHEN sel=01 ELSE c WHEN sel=10 ELSE d WHEN sel=11 ELSE XXXX; END behave ;图 4-2 实验平台实验项目二 三八 译 码 器一、实验

5、与设计要求1.掌握组合逻辑电路的设计的一般步骤和方法;2.掌握一般电路设计要求及其设计知识;3. 设计一个3-8译码器,此电路有三个输入端(A,B,C),八个输出端D70;当输入为为不同的值(07)时,只有对应的输出端才有输出;如下图所示:3-8译码器 Y0A Y1 Y2 B Y3 Y4 C Y5 Y6 Y7二、实验与设计方法 1.建立真值表输入输出ABCY0Y1Y2Y3Y4Y5Y6Y700010000000001010000000100010000001100010000100000010001010000010011000000010111000000012. 编写VHDL语言程序 3.

6、将工程指向当前文件并编译当前文件。4. 建立波形仿真文件,设置输入、输出端口及输入端口的信号波形,保存波形仿真文件。5. 进入仿真器工作环境,查看波形仿真结果。6. 选择器件, 为电路端口分配FPGA器件引脚。7. 进行第二次编译(包括逻辑综合和器件工艺映射),生成目标文件(*.sof等)。8将目标文件下载至FPGA器件。9在实验台上进行实际操作,验证设计的正确性三、实验与设计结果 通过实验,初步掌握了一般电路设计要求及其设计知识,并掌握了组合逻辑电路的设计的一般步骤和方法,按照实验的要求成功设计了实验的VHDL程序(程序源码见四源代码),并成功的进行了程序的仿真,并成功将程序烧入实验平台(实

7、验平台见图1)。四、程序源码及实验截图VHDL源码如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY dec38case1 IS PORT (a,b,c: IN STD_LOGIC; y: OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END dec38case1;ARCHITECTURE behave OF dec38case1 ISSIGNAL indata :STD_LOGIC_VECTOR(2 DOWNTO 0);BEGIN indata y y y y y y y y y OUT7.1 ESET G-OUT MIN

8、IN S-OUT sethour D Q SETHOUR scan_clk 图 4-3 整个电路的结构逻辑图 附件4-4:引脚分配: 数码管的段选out7out1:PIN 51、49、48、47、46、44、43; 数码管的位选sel8sel1 :PIN 8、102、101、100、99、98、97、96;清零、设分、设时(reset、setmin、sethuor)对应k9、k8、k7:PIN 59、60、62;秒时钟(clk):pin122 ; 输出扫描(刷新)和调时扫描时钟(scan_clk):PIN 55 附件:程序源码 LIBRARY IEEE;USE IEEE.STD_LOGIC_1

9、164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY clksystem IS PORT ( cclk,clr,xclk:IN STD_LOGIC; minset,hourset:IN STD_LOGIC; - 时、分调节按键 bihuaag:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); gsel: OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END;ARCHITECTURE rtl OF clksystem ISSIGNAL bcd1ns :STD_LOGIC_VECTOR(3 DOWNTO 0); -

10、秒个位SIGNAL bcd10ns :STD_LOGIC_VECTOR(3 DOWNTO 0); - 秒个位SIGNAL bcd1nms :STD_LOGIC_VECTOR(3 DOWNTO 0); - 分个位SIGNAL bcd10nms:STD_LOGIC_VECTOR(3 DOWNTO 0); - 分十位SIGNAL bcd1nhs :STD_LOGIC_VECTOR(3 DOWNTO 0); - 时个位SIGNAL bcd10nhs:STD_LOGIC_VECTOR(3 DOWNTO 0); - 时十位SIGNAL clkm,clkh :STD_LOGIC; SIGNAL sco,mc

11、o:STD_LOGIC; - 分、时计数标志信号SIGNAL clockadjq:STD_LOGIC; - 计时/调时选择信号 SIGNAL minsetq,hoursetq: STD_LOGIC; - 时、分调节信号SIGNAL gscnt: STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL smhdis: STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN clkm = sco WHEN minsetq=0 ELSE minsetq; clkh = mco WHEN hoursetq=0 ELSE hoursetq; sp:PROCESS(clr,c

12、clk) - 秒进程 VARIABLE bcd1nsv :STD_LOGIC_VECTOR(3 DOWNTO 0); - 秒个位 VARIABLE bcd10nsv :STD_LOGIC_VECTOR(3 DOWNTO 0); - 秒个位 BEGIN IF clr =0 THEN bcd1nsv := 0000; bcd10nsv := 0000; ELSIF (cclkEVENT AND cclk=1)THEN IF bcd1nsv=9 THEN bcd1nsv := 0000; bcd10nsv := bcd10nsv+1; IF(bcd10nsv=6)THEN bcd10nsv := 0

13、000; sco = 1; - 置分计数标志 ELSE sco = 0; END IF; ELSE bcd1nsv := bcd1nsv+1; END IF; END IF; bcd1ns = bcd1nsv; bcd10ns = bcd10nsv; END PROCESS;mp:PROCESS(clr,clkm) - 分进程 VARIABLE bcd1nmsv :STD_LOGIC_VECTOR(3 DOWNTO 0); - 分个位 VARIABLE bcd10nmsv:STD_LOGIC_VECTOR(3 DOWNTO 0); - 分十位 BEGIN IF clr =0 THEN bcd1

14、nmsv := 0000; bcd10nmsv := 0000; ELSIF clkmEVENT AND clkm=1 THEN IF bcd1nmsv=9 THEN bcd1nmsv := 0000; bcd10nmsv := bcd10nmsv+1; IF(bcd10nmsv=6)THEN bcd10nmsv := 0000; mco = 1; - 置时计数标志 ELSE mco = 0; END IF; ELSE bcd1nmsv := bcd1nmsv+1; END IF; END IF; bcd1nms = bcd1nmsv; bcd10nms = bcd10nmsv; END PR

15、OCESS; hp:PROCESS(clr,clkh) - 时进程 VARIABLE bcd1nhsv :STD_LOGIC_VECTOR(3 DOWNTO 0); - 时个位 VARIABLE bcd10nhsv:STD_LOGIC_VECTOR(3 DOWNTO 0); - 时十位 BEGIN IF clr =0 THEN bcd1nhsv := 0000; bcd10nhsv := 0000; ELSIF clkhEVENT AND clkh=1THEN IF bcd1nhsv = 9 THEN bcd10nhsv := bcd10nhsv+1; bcd1nhsv := 0000; EL

16、SE bcd1nhsv := bcd1nhsv+1; END IF; IF bcd10nhsv=2 AND bcd1nhsv=4 THEN bcd10nhsv := 0000; - 24时即为0时 bcd1nhsv := 0000; END IF; END IF; bcd1nhs = bcd1nhsv; bcd10nhs = bcd10nhsv; END PROCESS;-clkadj:PROCESS(cclk) - 计时/调时选择信号处理 - BEGIN - IF (cclkEVENT AND cclk=1)THEN - clockadjq = clockadj; - END IF; - E

17、ND PROCESS; minhrs:PROCESS(xclk) - 时分设置信号进程 BEGIN IF (xclkEVENT AND xclk=1)THEN minsetq = NOT minset; - 信号反向是因为实验台上 END IF; - 自复按键的节点的输出常 IF (xclkEVENT AND xclk=1)THEN - 态为高电平,而按下后的 hoursetq = NOT hourset; - 输出状态为低电平。 END IF; END PROCESS;disbhp:PROCESS(xclk) - 显示进程 BEGIN IF clr=0 THEN gscnt = 0000;

18、ELSIF(xclkEVENT AND xclk=1)THEN gscnt = gscnt+1; IF gscnt=0111 THEN gscnt gsel=00000001; -显示秒个位 smhdis gsel=00000010; -显示秒十位 smhdis gsel=00000100; -显示 “-” smhdis gsel=00001000; -显示分个位 smhdis gsel=00010000; -显示分十位 smhdis gsel=00100000; -显示 “-” smhdis gsel=01000000; -显示时个位 smhdis gsel=10000000; -显示时十位 smhdis bihuaag bihuaag bihuaag bihuaag bihuaag bihuaag bihuaag bihuaag bihuaag bihuaag bihuaag =0000001; - - END CASE; END PROCESS; END rtl; 实 验 心 得通过实验,逐渐的了解了VHDL在实际设计及应用中的使用,并掌握了VHDL编译软件的使用,同时也了解了硬件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论