资源描述
Basys 2数字电路实验指导书
同学们先去网上下载ISE软件,破解并安装!
前 言
一、实验课目的
EDA实验课是电子工程类专业教学中重要的实践环节,涉及了ISE开发环境基本操作及Verilog语言、组合逻辑电路设计、流水灯设计、计数器设计、扫描显示电路的驱动、综合层次性实验——交通灯或数字秒表设计实验。规定学生通过实验学会对的使用EDA技术,掌握FPGA器件的开发,纯熟使用ISE开发环境,掌握Verilog语言的编程,掌握数字电路和系统的设计。
通过实验,使学生加深对课堂专业教学内容的理解,培养学生理论联系实际的能力,实事求是,严谨的科学作风,使学生通过实验结果,运用所学的理论去分析研究EDA技术。培养学生使用EDA实验设备的能力以及运用实验方法解决实际问题的能力。
二、实验规定:
1.课前预习
① 认真阅读实验指导书,了解实验内容;
② 认真阅读有关实验的理论知识;
③ 读懂程序代码。
2.实验过程
① 准时到达实验室;
② 认真听取老师对实验内容及实验规定的讲解;
③ 认真进行实验的每一步,观测程序代码与仿真结果是否相符;
④ 将实验过程中程序代码和仿真结果提交给老师审查;
⑤ 做完实验后,整理实验设备,关闭实验开发板电源、电脑电源后方可离开。
3.实验报告
① 按规定认真填写实验报告书;
②认真分析实验结果;
③准时将实验报告交给老师批阅。
三、实验学生守则
1.保持室内整洁,不准随地吐痰、不准乱丢杂物、不准大声喧哗、不准吸烟、不准吃东西;
2.爱惜公务,不得在实验桌及墙壁上书写刻画,不得擅自删除电脑里面的文献;
3.安全用电,严禁触及任何带电体的裸露部分,严禁带电接线和拆线;
4.任何规章或不按老师规定操作导致仪器设备损坏须论价补偿。
目 录
实验一 ISE开发环境入门_五人表决器……………………………………………4
实验二加法器、乘法器、比较器的设计……………………………………………26
实验三 流水灯………………………………………………………………………28
实验四 计数器………………………………………………………………………30
实验五 综合层次性实验——交通灯设计…………………………………………32
实验六 综合层次性实验——数字秒表设计………………………………………34
附录一 basys 2开发板资料………………… ……………………………………36
实验一 ISE开发环境入门
一、实验目的
1.了解ISE开发环境及基本操作。
2.熟悉设计方法和环节。
3.掌握电路的综合和实现。
4.掌握电路仿真与时序分析。
5.熟悉3/8线译码器工作原理和五人表决器设计。
二、实验内容和基本原理
1.以3/8线译码器为例,总体思绪以Basys 2开发板中的三个拨位开关,SW2,SW1,SW0为三个输入信号,可以代表8种不同的状态,该译码器对这8种状态译码,并把所译码的结果在八个发光二级管(LD7~LD0)上显示。
2.输入与输出之间逻辑关系
3.以Basys 2开发板中的五个拨位开关,SW4,SW3,SW2,SW1,SW0为五个输入信号,可以代表五个表决的人,当五个人中有三个以上批准时,则表决通过,并将表决的结果在LD0上显示出来。
4. 其真值表:
输入
输出
A
B
C
D
E
F
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
others
0
5.输入与输出之间逻辑关系
f=abc+abd+abe+acd+ace+ade+bcd+bce+bde+cde;
三、重要仪器和设备
重要仪器和设备:计算机,Basys 2开发板。
图1 Basys 2开发板
四、ISE开发环境
1、 建立工程。
①选择菜单“File”→“New Preject”。
点击New Project…
②进入新建工程向导对话框
输入工程名字:experiment1
工程所在目录
点击“Next”按纽
顶层源文献类型
②点击“Next”后,进入工程设立对话框。
产品范围(product category)
芯片的系列(Family)
具体的芯片型号(Device)
封装类型(Package)
速度信息(speed)
综合工具(Synthesis Tool)
仿真工具(Simulator)
喜欢的语言(VHDL/Verilog)
点击“Next”按钮
对如下选项进行设立:
Family:Spartan3E
Device:XC3S100E
Package:CP132
TOP-Level Source:HDL
Synthesis Tool:XST(VHDL/Verilog)
Simulator:ISim(VHDL/Verilog)
Preferred Language:Verilog
③点击“Next”后,进入工程摘要对话框。
点击“Finish”按钮
④点击“Finish”后,完毕工程的创建。
生成了空的工程框架
1
工程名
器件名字
1
2、建立Verilog源文献。
①选中器件名字,点击鼠标右键,弹出一个快捷菜单。
选中器件名字,点击鼠标右键
选中New Source
②选中“New Source”,进入新建源文献向导对话框,输入文献名。
0
IP生成向导
0
0
0
0
0
0
0
0
0
原理图文献
用户文档文献
Verilog模块模板文献
Verilog测试平台模板文献
VHDL模块模板文献
VHDL库模板文献
VHDL包模板文献
VHDL测试平台模板文献
片上系统设计向导
0
选择VHDL Module
0
输入”experiment”作为VHDL模块的名字
点击“Next”按钮
③点击“Next”后,进入定义模块对话框,进行端口指定。
0
指定端口名
0
指定端口方向
0
指定位宽
点击“Next”
点击“Next”
④点击“Next”后,进入概要对话框。
点击“Finish”
⑤点击“Finish”后,回到ISE主界面。
生成的experiment1.v文献
添加代码到experiment1.v文献中
⑥输入源程序代码:
module experiment1(
output [7:0] ld,
input [2:0] sw
);
assign ld[0]=~sw[2]&~sw[1]&~sw[0];
assign ld[1]=~sw[2]&~sw[1]& sw[0];
assign ld[2]=~sw[2]& sw[1]&~sw[0];
assign ld[3]=~sw[2]& sw[1]& sw[0];
assign ld[4]= sw[2]&~sw[1]&~sw[0];
assign ld[5]= sw[2]&~sw[1]& sw[0];
assign ld[6]= sw[2]& sw[1]&~sw[0];
assign ld[7]= sw[2]& sw[1]& sw[0];
endmodule
3、综合。
选中experiment1.v文献
双击进行综合
4、仿真。
①先选中Simulation,然后选中器件名字,点击鼠标右键,弹出一个快捷菜单。
②点击“New Source”后,进入选择源文献类型对话框。
③选择关联文献
④概要
⑤进入仿真测试文献编辑窗口
⑥ 输入测试程序代码
module test;
reg [2:0] sw;
wire [7:0] ld;
experiment1 uut (
.ld(ld),
.sw(sw)
);
initial begin
sw = 8'b000;
#100 sw = 3'b001;
#100 sw = 8'b010;
#100 sw = 8'b011;
#100 sw = 8'b100;
#100 sw = 8'b101;
#100 sw = 8'b110;
#100 sw = 8'b111;
end
endmodule
⑦ 右键单击“Simulate Behavioral Model”弹出快捷菜单,点击“run”命令。
⑧ 进入ISim仿真器界面,选中Simulation菜单中的“Run”命令。
⑨显示仿真波形时序图。
5、编写约束文献。
①选中器件名字,点击鼠标右键,弹出一个快捷菜单。
选中器件名字,点击鼠标右键
选中New Source
②选中“New Source”,进入新建源文献向导对话框,输入约束文献名。
点击“Next”按钮
输入约束文献名
选中实现约束文献
③点击“Next”后,进入概要对话框。
点击“Finish”按钮
④点击“Finish”后,回到ISE主界面,编辑约束文献。
⑤输入约束文献代码
NET "sw<2>" LOC="K3";
NET "sw<1>" LOC="L3";
NET "sw<0>" LOC="P11";
NET "ld<7>" LOC="G1";
NET "ld<6>" LOC="P4";
NET "ld<5>" LOC="N4";
NET "ld<4>" LOC="N5";
NET "ld<3>" LOC="P6";
NET "ld<2>" LOC="P7";
NET "ld<1>" LOC="M11";
NET "ld<0>" LOC="M5";
6、实现
双击进行实现
选中experiment1.v文献
7、生成编程文献
双击生成编程文献
选中experiment1.v文献
8、下载
①将Basys 2开发板右上角的Mode左边两个引脚(PC)用跳帽短接(JTAG模式)。
②将Basys 2开发板左下角的Power开关打开。
③打开Digilent Adept下载软件,浏览选中编程文献,并进行下载。
编程下载
浏览选中下载文献
9、功能测试
五、实验环节
1、新建一个工程,命名为vote5.xise。
2、新建一个Verilog源文献,命名为vote5.v,编写源文献。
3、综合
4、新建一个测试文献,命名为test.v,编写测试文献进行波形仿真。
5、新建一个约束文献,命名为vote.ucf。
6、实现
7、生成编程文献
8、下载
9、功能测试
六、实验报告规定
1.写出设计思想及框图
2.简述设计环节和调试过程。涉及总体电路设计、相应模块设计,以及在ISE上完毕的设计和仿真。相关文档涉及:Verilog HDL语言的源代码(程序要有具体的注释和功能说明)、引脚分派的约束文献、验证设计功能等设计的所有文档与调试的结果。
3.写出结论及心得体会。
4.按照实验报告模板,撰写实验报告。实验报告各项内容都要填好,不能空缺。源代码和图可以打印,其它内容手写。
说明:
1、模仿3/8译码器的操作,写出下列五人表决器的VHDL程序并对其进行仿真和下载测试。
2、按照实验报告模板完毕实验报告
具体涉及:
①实验目的
②实验内容及基本原理
③重要实验设备型号及技术指标(计算机,Basys 2开发板,ISE开发环境)。
④实验方案与测试记录(实验方案涉及进行实验的硬件电路、Verilog程序、操作环节,测试记录涉及实验过程中测得的重要数据和现象)
⑤实验结果分析(分析实验过程中获得的数据、仿真波形、现象或问题的对的性和必然性,分析产生不对的结果的因素和解决方法)。
实验二 加法器、乘法器、比较器的设计
一、实验目的
1. 进一步熟悉ISE开发环境及基本操作。
2. 掌握两个四位二进制加法器模块的设计方法。
3. 掌握两个四位二进制乘法器模块的设计方法。
4. 掌握两个四位二进制比较器模块的设计方法。
二、实验内容及基本原理
以Basys 2开发板上的八个拨码开关(SW7,SW6,SW5,SW4,SW3,SW2,SW1,SW0)为八个输入信号,其中(SW7,SW6,SW5,SW4)表达一个四位二进制数a,(SW3,SW2,SW1,SW0)表达另一个四位二进制数b,结果在LD7~LD0上显示出来。规定实现如下功能:
(1) 两个四位二进制加法运算
(2) 两个四位二进制乘法运算
(3) 两个四位二进制比较运算
三、实验环节
1.新建一个工程,命名为adder.xise。
2.新建一个Verilog源文献,命名为adder.v,编写源文献,实现加法器功能。
3.综合
4.新建一个测试文献,命名为test.v,编写测试文献进行波形仿真。
5.新建一个约束文献,命名为adder.ucf。
6.实现
7.生成编程文献
8.下载
9.功能测试
说明:乘法器和比较器的设计环节参考加法器的环节。
四、重要仪器和设备
重要仪器和设备:计算机,Basys 2开发板。
五、实验报告规定
1.写出设计思想及框图
2.简述设计环节和调试过程。涉及总体电路设计、相应模块设计,以及在ISE上完毕的设计和仿真。相关文档涉及:Verilog HDL语言的源代码(程序要有具体的注释和功能说明)、引脚分派的约束文献、验证设计功能等设计的所有文档与调试的结果。
3.写出结论及心得体会。
4.按照实验报告模板,撰写实验报告。实验报告各项内容都要填好,不能空缺。源代码和图可以打印,其它内容手写。
实验三 流水灯
一、实验目的
1. 进一步熟悉ISE开发环境及基本操作。
2. 掌握分频电路的设计方法。
3. 掌握流水灯的设计方法。
二、实验内容及基本原理
以Basys 2开发板上的晶振产生的50M的脉冲作为时钟信号,先进行分频,然后驱动八个led显示按照设立的模式显示。五个拨码开关,SW4,SW3,SW2,SW1,SW0为五个输入信号,可以控制五种闪烁模式,结果在LD7~LD0上显示出来。规定实现如下功能:
(1)从右往左依次点亮8个led。
(2)从左往右依次点亮8个led。
(3)从中间往两边依次点亮8个led。
(4)从两边往中间依次点亮8个led。
(5)8个led以1Hz的频率闪烁。
三、实验环节
1.新建一个工程,命名为flashled.xise。
2.新建一个Verilog源文献,命名为flashled.v,编写源文献,实现交通灯功能。
3.综合
4.新建一个测试文献,命名为test.v,编写测试文献进行波形仿真。
5.新建一个约束文献,命名为flashled.ucf。
6.实现
7.生成编程文献
8.下载
9.功能测试
四、重要仪器和设备
重要仪器和设备:计算机,Basys 2开发板。
五、实验报告规定
1.写出设计思想及框图
2.简述设计环节和调试过程。涉及总体电路设计、相应模块设计,以及在ISE上完毕的设计和仿真。相关文档涉及:Verilog HDL语言的源代码(程序要有具体的注释和功能说明)、引脚分派的约束文献、验证设计功能等设计的所有文档与调试的结果。
3.写出结论及心得体会。
4.按照实验报告模板,撰写实验报告。实验报告各项内容都要填好,不能空缺。源代码和图可以打印,其它内容手写。
实验四 计数器
一、实验目的
1. 进一步熟悉ISE开发环境及基本操作。
2.计数器的设计方法。
3.掌握七段数码管显示模块的设计方法。
二、实验原理
数码的显示方式一般有三种:第一种是字型重叠式;第二种是分段式;第三种是点阵式。目前以分段式应用最为普遍,重要器件是七段发光二极管(LED)显示器。它可分为两种,一是共阳极显示器(发光二极管的阳极都接在一个公共点上),另一是共阴极显示器(发光二极管的阳极都接在一个公共点上,使用时公共点接地)。
Basys 2开发板使用的数码管为四位共阳极数码管,每一位的共阳极7段数码管由7段发光LED组成,呈条字状,7个发光LED的阳极连接在一起,阳极分别连接至 FPGA相应引脚。an0、an1、an2和an3为四位7段数码管的位选择端。当其值为“0”时,相应的7段数码管被选通。当输入到7段数码管CA~CG和DP管脚的数据为低电平时,该管脚相应的段变亮,当输入到7段数码管CA~CG和DP管脚的数据为高电平时,该管脚相应的段变灭。规定按一次按键数码管上的数字加1。
三、实验环节
1.新建一个工程,命名为counter.xise。
2.新建一个Verilog源文献,命名为counter.v,编写源文献,实现计数功能。
3.综合
4.新建一个测试文献,命名为test.v,编写测试文献进行波形仿真。
5.新建一个约束文献,命名为counter.ucf。
6.实现
7.生成编程文献
8.下载
9.功能测试
四、重要仪器和设备
重要仪器和设备:计算机,Basys 2开发板。
五、实验报告规定
1.写出设计思想及框图
2.简述设计环节和调试过程。涉及总体电路设计、相应模块设计,以及在ISE上完毕的设计和仿真。相关文档涉及:Verilog HDL语言的源代码(程序要有具体的注释和功能说明)、引脚分派的约束文献、验证设计功能等设计的所有文档与调试的结果。
3.写出结论及心得体会。
4.按照实验报告模板,撰写实验报告。实验报告各项内容都要填好,不能空缺。源代码和图可以打印,其它内容手写。
实验五 交通灯
一、实验目的
1.掌握分频器的设计方法。
2.掌握计数器的设计方法。
3.掌握状态机的设计方法。
二、实验内容及基本原理
1
2
3
4
显示十字路口东西、南北两个方向的红、黄、绿灯的指示状态。用两组红黄绿三种颜色灯分别作为东西、南北两个方向的红、黄绿灯。变化规律为东西绿灯亮,南北红灯亮→东西绿灯闪烁,南北红灯亮→东西黄灯亮,南北红灯亮→东西红灯亮,南北绿灯亮→东西红灯亮,南北绿灯闪烁→东西红灯亮,南北黄灯亮→东西绿灯亮,南北红灯亮,如此循环。
红灯亮30秒,黄灯亮5秒,绿灯亮20秒后闪烁5秒,时间可设立修改,在绿灯转为红灯时,规定黄灯先亮5秒钟,才干变换车道,规定有复位功能。其状态转换如下表所示:
状态装换表
状态
东西方向
南北方向
state
red1
yellow1
green1
red2
yellow2
green2
000
0
0
1
1
0
0
001
0
0
clock1s
1
0
0
010
0
1
0
1
0
0
011
1
0
0
0
0
1
100
1
0
0
0
0
clock1s
101
1
0
0
0
1
0
交通灯信号控制系统一般由晶体振荡器、分频器、时间计数器、控制器以及译码显示电路组成,根据设计内容规定,其组成框图如图所示:
系统时钟
分频器
时间计数
控 制 器
复位信号
紧急请求
译码器
时间显示
东西灯
南北灯
三、实验环节
1.新建一个工程,命名为trafficlights.xise。
2.新建一个Verilog源文献,命名为trafficlights.v,编写源文献,实现交通灯功能。
3.综合
4.新建一个测试文献,命名为test.v,编写测试文献进行波形仿真。
5.新建一个约束文献,命名为trafficlights.ucf。
6.实现
7.生成编程文献
8.下载
9.功能测试
四、重要仪器和设备
重要仪器和设备:计算机,Basys 2开发板。
五、实验报告规定
1.写出设计思想及框图
2.简述设计环节和调试过程。涉及总体电路设计、相应模块设计,以及在ISE上完毕的设计和仿真。相关文档涉及:Verilog HDL语言的源代码(程序要有具体的注释和功能说明)、引脚分派的约束文献、验证设计功能等设计的所有文档与调试的结果。
3.写出结论及心得体会。
4.按照实验报告模板,撰写实验报告。实验报告各项内容都要填好,不能空缺。源代码和图可以打印,其它内容手写。
实验六 数字跑表设计
一、实验目的
1.掌握Verilog的层次化设计法。
2.掌握分频模块的设计方法。
3.掌握计时模块的设计方法。
4.掌握数码显示的设计方法。
5.掌握模块的调用方法。
二、实验内容及基本原理
跑表是体育比赛中常用的计时仪器,设计一个数字跑表,它通过一个按键来控制计时的开始和暂停,另一个按键控制跑表清零。按下清零按键时,跑表清零,当清零按键无效时,按一下开始/暂停键则计时器开始计时,再按一下则暂停计时,再按一下则又继续计时。规定实现如下功能:
(1)跑表的计时范围为0.01s~59min59.99s,计时精度为10ms。
(2)具有异步清零、启动、计时和暂停功能。
(3)计时频率为100Hz。
(4)数字跑表的分和秒在数码管上显示出来,百分秒的BCD码在8个led上显示出来。
交通灯信号控制系统一般由晶体振荡器、分频器、时间计数器、控制器以及译码显示电路组成,根据设计内容规定,其组成框图如图所示:
系统时钟
分频器
时间计数
控 制 器
复位信号
开始暂停
译码器
数码管显示
LED显示
三、实验环节
1.新建一个工程,命名为timer.xise。
2.新建一个Verilog源文献,命名为div.v,编写源文献实现分频功能。
3.新建一个Verilog源文献,命名为timer.v,编写源文献实现计时功能。
4.新建一个Verilog源文献,命名为display.v,编写源文献实现数码显示功能。
5.新建一个Verilog源文献,命名为timer.v,编写源文献实现数码显示功能。
6.综合
7.新建一个测试文献,命名为test.v,编写测试文献进行波形仿真。
8.新建一个约束文献,命名为timer.ucf。
9.实现
10.生成编程文献
11.下载
12.功能测试
四、重要仪器和设备
重要仪器和设备:计算机,Basys 2开发板。
五、实验报告规定
1.写出设计思想及框图
2.简述设计环节和调试过程。涉及总体电路设计、相应模块设计,以及在ISE上完毕的设计和仿真。相关文档涉及:Verilog HDL语言的源代码(程序要有具体的注释和功能说明)、引脚分派的约束文献、验证设计功能等设计的所有文档与调试的结果。
3.写出结论及心得体会。
4.按照实验报告模板,撰写实验报告。实验报告各项内容都要填好,不能空缺。源代码和图可以打印,其它内容手写。
附录一 basys 2开发板资料
Basys2 电路连接图
Basys2 引脚定义表
Basys2 引脚定义表
展开阅读全文