FPGA研发之道(5)从零开始调试FPGA

来源:本站
导读:目前正在解读《FPGA研发之道(5)从零开始调试FPGA》的相关信息,《FPGA研发之道(5)从零开始调试FPGA》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《FPGA研发之道(5)从零开始调试FPGA》的详细说明。
简介:对于新手来说,如何上手调试FPGA是关键的一步。
  对于每一个新设计的FPGA板卡,也需要从零开始调试。
  那么如何开始调试?
  下面介绍一种简易的调试方法。
  (1) 至少设定一个输入时钟 input sys_clk; (2) 设定输出 output [N-1:0] led; (3)设定32位计数器 reg [31:0] led_cnt; (4) 时钟驱动计数器开始工作。。。

“合抱之木,生于毫末;九层之台,起于垒土;千里之行,始于足下。” 老子《道德经》

对于新手来说,如何上手调试FPGA是关键的一步。

对于每一个新设计的FPGA板卡,也需要从零开始调试。

那么如何开始调试?

下面介绍一种简易的调试方法。

(1) 至少设定一个输入时钟 input sys_clk;

(2) 设定输出 output [N-1:0] led;

(3)设定32位计数器 reg [31:0] led_cnt;

(4) 时钟驱动计数器开始工作

always@(posedge sys_clk)

led_cnt <= led_cnt + 1

(5)输出led信号。

assign led = led_cnt[M:N];

程序完成。

(6)设定管教约束

如果为XILINX FPGA ,在UCF文件中 NET “sys_clk” LOC = 管脚名称

如果为ALTERA FPGA ,在QSF文件中,添加 set_location_assignment 管脚名称 -to sys_clk

其他管脚,可依次类推。

(7)编译,布局、布线,生成配置文件。

XILINX 生成BIT文件。

ALTERA 生成SOF文件

(8)连接JTAG,下载相应的配置文件。

(9)观察是否闪灯(肉眼可见)。

关于闪灯的解释如下:

assign led = led_cnt[M:N]; led_cnt 为32bit的信号,需要几个闪灯,则根据输入时钟的频率和肉眼能够分辨的时间(100ms)。如输出时钟为25Mhz。则闪灯看见的位置能够分批到10hz。需分频2.5M= 32‘h2625A0,因此,则需要输出至少为led_cnt[21]位,才能看到闪灯。

虽然程序简单,但是,通过调试可以确认:

(1)首先可确定JTAG下载器的正确连接,能够正常下载下载文件。如不能,常见问题包括

(一)检查是否安装驱动。

(二)下载器是否由红灯变成黄灯/绿灯。如红灯亮一般情况下,JTAG的与电路板VCC没有供电。

(三)检查JTAG连接的线序。

(四)检查JTAG电路,检查原理图上TMS,TDI,TDO的上拉和下拉电阻是否与datasheet中一致。

通过以上四种方式,可排除绝大部分JTAG下载的错误。

(2)可以判断晶振是否起振,下载后无灯闪。

(一)首先,示波器查看晶振频率,观察晶振的输出,如无输出,查看晶振的电源和地信号,如电源正常,而晶振无反应,则更换晶振。

(二)如无示波器,也有替代的方法,通过嵌入式逻辑分析仪抓信号(任意信号)。如逻辑分析仪点击采样后无反应,则无时钟输入。

这是因为逻辑分析仪也需要时钟进行逻辑值的存储。

(3)如正常下载后闪灯,证明该FPGA板卡硬件设计上能够达到最低限度的FPGA调试状态。

最后,说明一下,为什么是闪灯而不是亮灯的程序,这是因为,首先闪灯可以判断外部晶振工作正常,并且由于LED等通常为上拉,也就是说逻辑值0表示灯亮,而也不排除某硬件工程师非要下拉。逻辑1表示亮。因此采用闪灯更加方便。

问题:为什么LED灯值为什么要上拉?

这是因为:LED上拉后,需要灯亮时电流由外部电源提供,而下拉,灯亮时电流由芯片的CMOS电路驱动。这种在设计中应避免。

提醒:《FPGA研发之道(5)从零开始调试FPGA》最后刷新时间 2024-03-14 01:11:19,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《FPGA研发之道(5)从零开始调试FPGA》该内容的真实性请自行鉴别。