电子设计自动化技术
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《电子设计自动化》课程设计指导
一、任务题目:基于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 开发板结构图如下:
(2)扩展板结构图如下:
各个设备与FPGA引脚的连接如下表(原理图见E:\FPGA\):
(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\ ”目录下的文档中查找。
五、设计思路(建议):
按功能将电路划分为若干个部分(模块),分别设计各个子模块,根据其输入/输出端口的衔接,构成一个具有完整功能的顶层模块,可参照以下框图设计:
显示屏显示模式(参考): 1、时间显示:
时钟运行模式下,应实时显示当前时刻。
设置模式(时间、闹钟)下,可选择每一位并对其设定,选中某位时,该位呈闪烁状态,其值的修改范围应符合实际情况,如分/秒的十位不能超过5,时的十位不能超过2。
2、秒表显示
计时前显示 计时中状态显示
六、操作流程
(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中分别运行Synthesis →Floorplan IO-Synthesis (引脚约束)→ Implement Design →Generate Programming File →Config Target Device,在弹出窗口中选确定,则出现如下画面:
在FPGA 图标上,单击右键选择Assign new Configration File,在弹出窗口
C 配置
PROM
FPGA
中选择顶层文件对应的配置文件(*.bit),再点击右键,选择program,即可下载数据流配置FPGA。
(3)创建PROM Image并烧录PROM
创建配置PROM的MCS文件,按如下方式操作:
在源文件窗口中,选择PROM File Formatter,如上图所示,在右侧空白区域点击右键,选择lanch wizard,弹出如下窗口,可修改PROM文件的名称和存盘位置,
下一步弹出窗口中,选择PROM为串行模式。再下一步弹出如下窗口,选择PROM 为xcf02s型,并添加进来。
完成后,提示是否添加设备,选是。在打开窗口中,选择bit数据流文件,
最后右键点击空白处,选择Generate File ,即可生成PROM配置文件(*.mcs),回到Boundary Scan界面,右键点击单击右键选择Assign new Configration File,在弹出窗口中选择顶层文件对应的配置文件(*.mcs),再点击右键,选择program,即可下载数据流配置FPGA(若PROM中已下载配置文件,应先进行擦除(Erase),再重新下载)。
七、Synthesis常见错误说明:
1、Port reference 'led' was not declared as input, inout or output。--端口led未声明是输入/输出或输入输出。
2、Reference to vector reg 'i' is not a legal net lvalue。--寄存器向量i不是合法的线网,i应为wire型。
3、Reference to vector wire 'i' is not a legal reg or variable lvalue。--线网向量i不是合法的寄存器,i应为reg型。
4、Illegal left hand side of continuous assign。--非法的左侧连续赋值。
5、Reference to vector wire 'i' is not a legal reg or variable lvalue
6、Cannot mix blocking and non blocking assignments on signal
7、signal
8、Signal is never used or assigned. This unconnected signal will be trimmed during the optimization process.—信号i从来没有用到或赋值,