EDA实验指导书
熊利祥编
武汉理工大学华夏学院
2011年9月
前言
一、实验课目的
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. 其真值表:
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”后,进入工程设置对话框。
点击“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”后,完成工程的创建。
工程名
器件名字
生成了空的工程框
2、建立Verilog源文件。
①选中器件名字,点击鼠标右键,弹出一个快捷菜单。
②选中“New Source ”,进入新建源文件向导对话框,输入文件名。
选中New Source
③点击“Next ”后,进入定义模块对话框,进行端口指定。
选择VHDL Module
输入”experiment ”作为VHDL 模块的名字
点击“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、综合。
4、仿真。
①先选中Simulation ,然后选中器件名字,点击鼠标右键,弹出一个快捷菜单。
②点击“New Source ”后,进入选择源文件类型对话框。
选中experiment1.v 文件
双击进行综合
③选择关联文件
④概要
⑤进入仿真测试文件编辑窗口
⑥输入测试程序代码
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”命令。