1、实 验 报 告实验课程: EDA 技术 学生姓名: 邱 永 洪 学 号: 6100210026 专业班级: 中 兴 101 班 2012 年 12 月 27 日目 录实验一 一位全加器实 验 二 模 可 变 计 数 器实 验 三 数 字 时 钟实 验 四 序 列 发 生 和 检 测实 验 五 交 通 灯 控 制实 验 六 16*16 点 阵 显 示 南 昌 大 学 实 验 报 告学生姓名: 邱永洪 学 号: 6100210026 专业班级: 中兴101 实验类型: 验证 综合 设计 创新 实验日期:2012、10、12 实验一 一位二进制全加器设计实验一、 实验目的1、学习 Quartus I
2、I 的文本和原理图输入方法设计简单组合电路以熟悉QuartusII 的使用;2、熟悉设备和软件,掌握实验操作。二、 实验内容与要求(1)在利用 VHDL 编辑程序实现半加器和或门,在主层中进行应用。熟悉层次设计概念;(2)给出此项设计的仿真波形;(3)参照实验板的引脚号,选定和锁定引脚,编程下载,进行硬件测试。三、设计思路1 ,一个 1 位全加器可以用两个 1 位半加器及一个或门连接而成。而一个1 位半加器可由基本门电路组成。半加器的真值表为a b so co0 0 0 00 1 1 01 0 1 01 1 0 1其中 a 为被加数,b 为加数,co 为本位向高位进位,so 为本位和因而可得表
3、达式为: co=ab 而 so= ab+ab =ab其 VHDL 文本如下LIBRARY IEEE; -半加器描述 (1):布尔方程描述方法USE IEEE.STD_LOGIC_1164.ALL; ENTITY h_adder IS PORT (a, b : IN STD_LOGIC; co, so : OUT STD_LOGIC); END ENTITY h_adder; ARCHITECTURE fh1 OF h_adder is BEGIN so New,在 Device Design Files 标签选项框中选择 VHDL File。LIBRARY IEEE; -半加器描述(1):布尔
4、方程描述方法USE IEEE.STD_LOGIC_1164.ALL; ENTITY h_adder IS PORT (a, b : IN STD_LOGIC; co, so : OUT STD_LOGIC); END ENTITY h_adder; ARCHITECTURE fh1 OF h_adder is BEGIN so ain,b=bin,co=d,so=e);-例化语句u2 : h_adder PORT MAP(a=e,b=cin,co=f,so=sum);u3 : or2a PORT MAP(a=d,b=f,c=cout);END ARCHITECTURE fd1;六、VHDL 文
5、本输入法设计实验步骤1.新建项目,选择项目文件夹,输入工程名称,添加文件(一般为空) ,选择芯片型号,选择仿真工具(一般为默认) ,最后生成项目。2.新建 VHDL 文件,输入设计语言,保存时要注意与工程文件名相同。如下图:图(2)文本输入3.保存好后,进行综合编译,如果有错误,折回修改。4、建立波形文件,导入结点,并设置好仿真结束时间,保存文件,进行仿真设置,然后进行波形仿真,如下图:图(4)六、仿真波形分析.如下图:图(5)波形分析经过分析,可知仿真结果与真值表相同ain bin cin count sum0 0 0 0 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0
6、0 11 0 1 1 01 1 0 1 01 1 1 1 1因此,仿真正确。七、硬件测试1.选择菜单 Assignment-Assignment Editor-Pin 窗口,选择菜单 ViewShow All Known Pin Names,此时编辑器将显示所有的输入输出信号,其中 “To”列是信号列, “Location”列是引脚列, “General Function”列显示该引脚的通用功能。对ain 0 0bin 0 0cin 0 1 其他类似不在一一分析count 0 1sum 0 1于一个输入输出信号,双击对应的“Location” 列,在弹出的下拉列表框内选择需要锁定的引脚号。2.
7、引脚锁定后,保存,必须重新进行一次全程编译,编译通过后才能编程下载。3.编程下载,用下载线将计算机并口和试验箱上的 JTAG 口接起来,接通电源。选择 ToolsProgrammer 菜单,打开 programmer 窗口。在 mode 中选中 JTAG,将 Program/Configure 下的笑方框选中4 在开始编程之前,必须正确设置编程硬件。点击“Hardware Setup”按钮,打开硬件设置口。3) 点击 Add Hardware 按钮, 出现 Add Hardware 对话框, 如图 1-35 所示。图 1-35 编程硬件选择对话框4) 在 Add Hardware 对话 框中,
8、 从 Hardware type 列 表中选择所需要硬件类型,如果是 USB 接口的 请参照用户使用手册中的 USB 电缆 的安装与使用,如果使用的是并口下载线则选取如图 1-35 所示的硬 件类型,点击 OK 按钮,完成对硬件类型的设置。回到编程器硬件设置窗口,点击 Close按钮退出设置。则在编程器对话框中的编程硬件类型会出现刚才选取的编程器硬件。5) 如果软件已运行一个工程, 则在打开编程器的时候, 编程器窗口会自动出 现 这 个 工 程 文 件 要 加 载 到 目 标 器 件 的 文 件 , 如 果 要 加 载 其 它 文 件可 以 从 其 它 地方进行添加更改。 选好加载文件后, 再
9、点选 Progam/Configure, 编程模 式选取 JTAG 模式, 点击 STRAT 进行文件加载,直到加载进度变为 100%, 文件成功加 载完成。八、硬件测试结果硬件测试:根据真值表,本次实验中,我的 ain bin cin 分别取的是 K1.K2.K3 而输出 count sum 取的是 LED1 和 LED2,它们会根据 K1.K2.K3 的不同而显示亮灭,如输入 000 ,由于输出 count sum 均为低电平,因此 LED1 和 LED2 均灭,输入111 由于输入 count sum 均为高电平,因此 LED1 和 LED2 均亮,依据全加器真值表依次验证过后,结果与真
10、值表相符合。试验成功。九、试验心得1、通过本次实验我基本熟悉了 QUARTUSII 的使用,分别学会了原理图输入法和 VHDL 文本输入法,同时也学会了波形仿真,波形仿真要观察到程序所要的结果,应该正确设置仿真时间,否则无法全面显示程序要实现的功能。2、在 QUARTUSII 软件使用方面,还是要注意一些细节问题,如原理图输入与 VHDl 文本输入保存文件时不能保存在同一个文件夹下,否则在文本文件编译时,会提示半加器元件已存在,导致文件编译无法通过。工程名,vhdl 文件名一定要与实体名相同等3、硬件测试方面,要正确添加硬件、正确设置引脚进行引脚锁定,然后一定不要忘记重新全程编译一遍,接下来是
11、下载,有时由于接触不好会下载失败,我把实验箱关掉电源,重新插了下连接线,重新打开后,下载成功。十、参考资料EDA 技术实用教程 EDA/SOPC 系 统 开 发 平 台 南 昌 大 学 实 验 报 告学生姓名: 邱永洪 学 号: 6100210026 专业班级: 中兴 101 班 实验类型: 验证 综合 设计 创新 实验日期: 2012.10. 19 实 验 二 模 可 变 计 数 器 的 设 计一、实验目的1、学习设计脉冲分频程序的设计,掌握分频的作用。2、学会利用控制位 M 来控制计数器的模值。二、实验内容与要求1、计设置一位控制模的位 M,要求 M=0,模 23 计数;当 M=1,模 1
12、09计数;2、计数结果用三位数码管显示,显示 BCD 码;3、利用 Quartus 软件实现波形仿真;4、应用实验箱验证此计数器的功能。三、实验思路1、要求分别实现模 23 和模 109 的计数,因些我分别用 GW、SW、 BW 代表个位,十位和百位。还有一个控制模的位 M,当 M 为 0 时实现模 23 计数,只用到 GW 和 SW 分别为个位和十位;当 M 为 1 时实现模 109 计数,用GW、SW、 BW 分别为个位 ,十位和百位计数。2、由于要求用三个数码管显示,由于每次只能只能选中一个数码管显示管,因此我使用了数码管的动态扫描来实现视觉上多个数码管显示管同时显示的效果,这个步骤中分频计的作用很重要。我使用了一个可变的 R 作为分频计的初值。3、计数时分两种情况1) 、当 M 为 0 时,实现模 23 计数,当个位为 9 则向十位进位,并个位清0,当个位小于 9,则个位自身加 1;计数到 22 时当下一个时钟上升沿到来时就清 0 重计。2) 、当 M 为 1 时,实现模 109 计数,当个位为 9 则向十位进位,并个位清0,当个位小于 9,则个位自身加 1;当个位和十位均为 9 时,就向百位进位,同时个位和十位自身清 0;计数到 108 时当下一个时钟上升沿到来时就清 0