电子设计自动化技术
- 格式:doc
- 大小:365.00 KB
- 文档页数:8
1 《电子设计自动化》课程设计指导
一、任务题目:基于FPGA的数字钟系统设计
二、目的:
(1)使学生增进对EDA技术的感性认识,加深对EDA理论方面的理解。
(2)使学生掌握 XILINX FPGA结构、原理和应用方法。
(3)使学生能够应用Verilog语言和EDA软件进行电子系统的设计。
(4)培养学生查阅工程设计手册和资料的初步能力,使得学生能基本掌握数字系统的现代化设计方法和手段。是对学生EDA技术应用能力、自主学习能力和创新设计能力的综合培养。
三、现有条件:
(1)PC机一台。
(2)Xilinx Spartan-3 LC FPGA开发板、下载线及电源一套。
(3)扩展板及电源一套。
(4)ISE 10.1开发工具。
三、设计要求
(1)设计一个能进行年、月、日、时、分、秒计时的二十四小时制的数字钟,将时刻显示在液晶屏上;并且能够对年、月、日、小时、分钟和秒进行手动调节以校准时间,每逢整点,产生发光报时。(必选)
(2)具有定时与闹钟功能,能在设定的时间给出提示(发光管亮)。
(3)具有秒表功能。
四、系统说明
(1)Spartan-3 LC 开发板结构图如下:
XC3S400-4PQ208C JTAG
Platform Flash
50MHz Clock
Clock Socket
Push Switches
Voltage Regulators
(1.2V,2.5V,3.3V) DIP Switches 7-Segment LED Display
User LEDs
Serial Port(DB9F)
Serial Port(DB9M)
User I/O Pin
P160 Connectors 4
2
4 2 各个设备与FPGA引脚的连接如下表:
信号名 Spartan-3针脚号 指示 说明
CLK_50M P184 Input 输入50MHz振荡器
PUSH1 P22 Input 用户按键1,“down”为“0”
PUSH2 P24 Input 用户按键2,“down”为“0”
DIP1 P26 Input 用户开关1,“ON”为“0”
DIP2 P27 Input 用户开关2,“ON”为“0”
DIP3 P28 Input 用户开关3,“ON”为“0”
DIP4 P29 Input 用户开关4,“ON”为“0”
LED1 P20 Output 发光管1,“0”时亮
LED2 P21 Output 发光管2,“0”时亮
LED3 P18 Output 发光管3,“0”时亮
LED4 P19 Output 发光管4,“0”时亮
(2)扩展板结构图如下:
各个设备与FPGA引脚的连接如下表(原理图见E:\FPGA\):
信号名 Spartan-3针脚号 指示 说明
Keyin1 P114 Input 键盘的行输入信号1,“0”有键按下
Keyin1 P113 Input 键盘的行输入信号2,“0”有键按下
Keyout1 P107 Output 键盘的列输出扫描信号1
Keyout2 P108 Output 键盘的列输出扫描信号2
Keyout3 P109 Output 键盘的列输出扫描信号3
Sid P146 Output LCD的地址/数据/命令输入端
SCLK P148 Output LCD的时钟输入端(f<500KHz)
User
I/O Pin
A/D
DI(4)
Keyboard(2*8)
Voltage Regulators
(5V) D/A
DO(3)
7219
LCD 7-Segment LED
74LS138 2
3 8 2 3 3 Do1 P46 Output 发光管1,“1”时亮
Do2
P48 Output 发光管2,“1”时亮
Do3 P50 Output 发光管3,“1”时亮
(3)LCM12864ZK
是中文液晶显示模块,液晶屏幕为128*64,可显示四行,每行可显示8 个汉字,16个ASCII码。
硬件接口采用的是串行接口数据传输模式,模块的同步时钟线(SCLK)具有独立的操作,但是当有连续多个指令需要被传输,必须确实等到一个指令完全执行完成才能传送下一笔资料,因为模块内部并没有传送/接收缓冲区。
其工作时序图如下:
从一个完整的串行传输流程来看,一开始先传输起始位,它需先接收到五个连续的“1” (同步位串)在起始位元组,此时传输计数将被重置并且串行传输将被同步,再跟随的二个BIT 分别指定传输方向位(RW)及暂存器选择位(RS) ,最后第八位则为“0”。
在接收到起始位元组后,每个指令/数据将分为二组接收到:较高4位元(DB7-DB4)的指令资料将会被放在第一组的LSB部分,而较低4位元(DB3-DB0)的指令资料则会被放在第二组的LSB部分,至于相关的另四位则都为0。
用户命令可参照LCMxxZKuser使用说明书(见E:\FPGA\),使用时主要涉及以下命令:
Interface=2’h30 //(8位控制界面,基本指令集)
Open=2’h0c //(开屏)
Move=2’h06 //(在资料的读取与写入时,设定光标的右移)
Address(地址)=2’h80-2’h87(第一行), 2’h90-2’h97(第二行),
2’h88-2’h8f(第三行), 2’h98-2’h9f(第四行)。
由于向LCM是写操作,因此RW=0。当送命令或地址时,RS=0;送数据(代码)时,RS=1。
字库及ASCII码表可从“E:\FPGA\ ”目录下的文档中查找。
五、设计思路(建议):
按功能将电路划分为若干个部分(模块),分别设计各个子模块,根据其输入/输出端口的衔接,构成一个具有完整功能的顶层模块,可参照以下框图设计:
4
显示屏显示模式(参考):
1、时间显示:
时钟运行模式下,应实时显示当前时刻。
设置模式(时间、闹钟)下,可选择每一位并对其设定,选中某位时,该位呈闪烁状态,其值的修改范围应符合实际情况,如分/秒的十位不能超过5,时的十位不能超过2。
2、秒表显示
计时前显示 计时中状态显示
当前时刻:
2009-5-31
12:00:00
计时开始?
00:00:00 计时结束?
02:06:66
分 秒 毫秒 主控电路
计数器模块 时计数器 分计数器 秒计数器
50MHz时钟源 键盘/开关输入 信号选通器
年计数器 月计数器 日计数器
时间设定模块 时设置器 分设置器 秒设置器 年设置器 月设置器 日设置器
秒表模块 时计数器 分计数器 秒计数器
整点报时 闹钟 显示模块
闹钟设定模块 时设置器 分设置器 秒设置器 年设置器 月设置器 日设置器 5 六、操作流程
(1)新建一个项目(项目名称,路径,模块名称不要有中文字符,模块名称不要以数字开头),对器件的选择作如下设定:
器件系列(Family):Spartan3;器件(Device):XC3S400
器件封装(Package):PQ208;器件速度等级(Speed):-4
综合工具(Synthesis Tool):XST(VHDL/Verilog)
仿真工具(Simulator)ISE Simulator(VHDL/Verilog)
使用语言(Preferred Language):Verilog
(2)按下图流程实现电路设计:
完成源代码的输入并保存后,在ISE10.1中分别运行SynthesisFloorplan
IO-Synthesis(引脚约束) Implement DesignGenerate Programming
FileConfig Target Device,在弹出窗口中选确定,则出现如下画面:
在FPGA图标上,单击右键选择Assign new Configration File,在弹出窗口DesignSynthesisImplementDownloadA & B = CABCLUTRegABCCLBABC输入Verilog的源代码
将EDA平台上编辑输入的HDL文本、,依据给定的硬件结构组件和约束控制条件进行编译、优化、转换和综合,最终获得门级电路甚至更底层的电路描述网表文件。
将综合后网表文件针对某一具体的目标器件进行逻辑映射操作,其中包括底层器件配置、逻辑分割、逻辑优化、逻辑布局布线操作。
对FPGA进行编程。
配置PROM FPGA