首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
FPGA/CPLD可编程逻辑
» Nexys3学习手记5:流水灯在线运行
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
Nexys3学习手记5:流水灯在线运行
发短消息
加为好友
pengpengpang
(pengpengpang)
当前离线
UID
1023229
帖子
6106
精华
0
积分
3055
阅读权限
90
来自
中国
在线时间
156 小时
注册时间
2013-12-20
最后登录
2016-7-3
论坛元老
UID
1023229
来自
中国
1
#
打印
字体大小:
t
T
pengpengpang
发表于 2014-10-10 19:55
|
显示全部帖子
Nexys3学习手记5:流水灯在线运行
在线
,
手记
,
资源
在进行第一个工程实例前,顺便提一下设计工具相关资源的获取。从特权同学接触的几家FPGA开发工具来看,Xilinx在这方面做得应该算是最人性化的了,其设计资源可谓唾手可得。如图1所示,当我们开启ISE软件后,主窗口便会显示这样一个带有介绍和引导链接的页面。这里我们主要提一下它的Documentation。
图1 ISE设计资源引导界面 点开Documentation,如图2所示,其实是直接打开了Xilinx的一个客户端小工具Documentation Navigator(简称DocNav)的下载页面。这是一款不错的Xilinx设计文档在线浏览工具,非常推荐各位下载并安装。
图2 Documentation页面 如图3所示,打开DocNav软件的首页,可以看到各类开发相关的归类文档,这个小工具让Xilinx的各类文档一目了然,极大的方便了设计者对文档资源的索取和阅读。这么大的一个文档资源库,恐怕花个一年半载的都未必能够通读一遍,实际上压根个也没有这个必要。一般来说,建议设计者对这些文档的基本用处有所了解即可,而在遇到一些设计小问题的时候脑子里能够灵光一现,想起来大概哪个文档里会有解决问题的办法,而后再过来翻看也就足够了。 图3 D
ocNav首页 再说每个软件都有Help,ISE中点开菜单栏的HelpàHelp Topics…,便如图4所示。记得特权同学大三那年一个被认为牛的不行的留过洋的微波课老师第一次和我们提Project,还让我们用Matlab画smith圆图,那时对专业英文一知半解的我们才发现原来Help里面要啥有啥,真可谓大百科全书。所以捏,同学们都要好好利用Help这玩意,不懂就问,最简单快捷的问法就是Search。
图4 ISE Help页面好了,那么下面我们要简单的做个ISE工程的范例,写个流水灯的小代码下载到FPGA中看看效果。双击打开桌面的快捷方式“Xilinx ISE Design Suite 13.3”,点击菜单栏的FileàNew Project…。出现如图5所示的新工程设置界面,输入工程名并定位好工程存储文件夹位置,完成后点击Next进入下一步。
图5 工程名与存储设置 器件与工程属性设置如图6所示。设置完毕再Next便Finish。
图6 器件与工程属性设置 此时我们看工具左侧窗口,选中Design便如图7所示。Hierarchy下只有工程名和相应器件显示,可谓设计文件一片空白,咱要来此拓荒了。首先,我们需要添加源代码文件到工程中。
图7 Design窗口 在Hierarchy窗口的空白处右键点击New Source…,如图8所示。这里可以选择新建各类源文件,包括IP核、基于处理器的系统、verilog或VHDL源文件以及测试脚本等等。我们需要新建一个verilog源代码文件,所以选择Verilog Module,给模块命名,通常顶层代码源文件名建议和工程名一致,免得后面一串麻烦事。
图8 新建源文件 新建的源代码.v文件会自动添加到Hierarchy下,并且直接在主窗口中打开源文件如图9所示。
图9 源代码文件 此时需要编写一段流水灯测试代码,如下所示:module test1led( clk,rst_n, led ); input clk; //100MHzinput rst_n; //低电平复位信号 output[7:0] led; //分频信号,连接到蜂鸣器 //---------------------------------------------------reg[2:0] cnt; //分频计数器 always @ (posedge clk or negedge rst_n)//异步复位 if(!rst_n) cnt <= 23'd0; else cnt <= cnt+1'b1; //寄存器cnt循环计数 //----------------------------------------------------reg[7:0] ledr; //LED流水灯 always @ (posedge clk or negedge rst_n) if(!rst_n) ledr <= 8'd1; else if(cnt == 23'h7fffff) ledr <= {ledr[6:0],ledr[7]};//大约每80ms让led左移一次 assign led = ledr; endmodule 接下来需要对管脚进行分配,如图10所示,Hierarchy中需要先选中顶层代码文件testled.v,然后双击Processes下的User ConstraintsàI/O Pin Planning(PlanAhead) – Post-synthesis(或者I/O Pin Planning(PlanAhead) – Pre-synthesis,两者的区别在于在分配管脚时是否synthesis了,一般是无关紧要的)。
图10 PlanAhead启动 Xilinx的工具做得真是独具匠心啊,打开PlanAhead后的欢迎界面不得不让我们发出“设计文档无处不在”的感慨。如果想深入了解PlanAhead工具,不妨好好拜读下这里罗列的PlanAhead User Guide。
图11 PlanAhead的欢迎界面 如图12所示,参照原理图NEXYS3_sch.pdf,在PlanAhead的I/O Ports中对该实例的管脚进行分配。其中rst_n使用了拨码开关SW1,板级验证的时候注意将SW1朝板子内侧拨动即处于正常运行状态。分配完成后保存设置即可退出PlanAhead。
图12 管脚分配 回到ISE中,双击图10的Processes下Generate Programming File进行编译生成.bit下载文件。然后使用上节提到的Adept工具,在Config功能项中加载并烧录工程文件夹下生成的test1led.bit文件。接着,我们就可以看到在线烧录到FPGA器件中的代码运行起来了,SW1拨码开关处于内侧时,8个流水灯跑的很欢。转载自:
特权同学的博客
收藏
分享
评分
记录学习中的点点滴滴,让每一天过的更加有意义!
回复
引用
订阅
TOP
返回列表
测试测量
DSP技术
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议