找回密码
 注册
关于网站域名变更的通知
查看: 222|回复: 1
打印 上一主题 下一主题

从零开始调试  

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-12-1 09:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 Diabloa 于 2018-12-1 09:26 编辑 * c! \( n" r1 ^6 ?- r

5 }  _7 Q4 _, ]7 ^
       从零开始调试  

' F9 _/ g/ L" q4 \       对于新手来说,如何上手调试FPGA是关键的一步。: y$ U+ ^$ |9 K5 K! h8 l- E
  对于每一个新设计的FPGA板卡,也需要从零开始调试。
9 n6 P- v0 H4 J  那么如何开始调试?# o$ |( X+ c. {1 \7 a' h

: E" [- Y. {9 n% ^  下面介绍一种简易的调试方法。0 n8 ^) \" v6 F2 E9 w7 X* n' m
  (1) 至少设定一个输入时钟 input sys_clk;, M3 y( ?' F9 f* n
  (2) 设定输出 output [N-1:0] led;# E( k5 \2 c& S
  (3)设定32位计数器 reg [31:0] led_cnt;
$ I* E3 d1 }9 Y& e9 L; G4 E  (4) 时钟驱动计数器开始工作5 _4 i7 d1 p0 ^6 i& {) D
  always@(posedge sys_clk)
% r7 n% b3 a. L7 k+ J  led_cnt <= led_cnt + 1
* @& a" T7 k% @- ^( L4 m  (5)输出led信号。
) U5 j* P( }% M6 C% N" n7 ?  assign led = led_cnt[M:N];
3 r, Q3 M# c& R& U2 K# J6 e* X- |  程序完成。3 r) Z* k- m$ F( @
  (6)设定管教约束
8 a4 _% C, O0 F& v  Q  如果为XILINX FPGA ,在UCF文件中 NET “sys_clk” LOC = 管脚名称
, z3 ~6 `- x$ D% v: P  如果为ALTERA FPGA ,在QSF文件中,添加 set_location_assignment 管脚名称 -to sys_clk9 F3 g4 d" z& C
  其他管脚,可依次类推。
7 i. d- R4 G( S4 s$ o5 S+ D  (7)编译,布局、布线,生成配置文件。
: R- P# ^6 t2 l; p5 T; f) q8 E" k. |  XILINX 生成BIT文件。3 y" q) P2 {4 r1 i% f& Z% I; {" F5 j
  ALTERA 生成SOF文件
- M6 _; e. @. @" R* V$ S+ h  (8)连接JTAG,下载相应的配置文件。
4 Y3 E$ ~% h4 Y  (9)观察是否闪灯(肉眼可见)。
& f% @4 @0 a- V
; }8 T, a- E6 J" E  e9 a) J: a  关于闪灯的解释如下:
3 ^5 m$ r4 ~- |3 m* r) b* r5 V  assign led = led_cnt[M:N]; led_cnt 为32bit的信号,需要几个闪灯,则根据输入时钟的频率和肉眼能够分辨的时间(100ms)。如输出时钟为25Mhz。则闪灯看见的位置能够分批到10hz。需分频2.5M= 32‘h2625A0,因此,则需要输出至少为led_cnt[21]位,才能看到闪灯。
8 @" h1 W' c8 m2 P3 q7 z
  W9 \1 s# G& c6 B  虽然程序简单,但是,通过调试可以确认:6 r7 I; v: R5 ]6 K! a
  (1)首先可确定JTAG下载器的正确连接,能够正常下载下载文件。如不能,常见问题包括7 n" O& P: M% L
  (一)检查是否安装驱动。  V; U0 |4 b; d. ~; e
  (二)下载器是否由红灯变成黄灯/绿灯。如红灯亮一般情况下,JTAG的与电路板VCC没有供电。
3 d+ u, U& }, Q  (三)检查JTAG连接的线序。
/ Q9 Q" I% u( p# A+ s# `( I& z  (四)检查JTAG电路,检查原理图上TMS,TDI,TDO的上拉和下拉电阻是否与datasheet中一致。
4 F5 l8 H$ I* c  通过以上四种方式,可排除绝大部分JTAG下载的错误。
9 S  G9 h& y( c4 L; [0 L, e3 `6 p
  (2)可以判断晶振是否起振,下载后无灯闪。, ?  q1 c( k5 z) X) M" J
  (一)首先,示波器查看晶振频率,观察晶振的输出,如无输出,查看晶振的电源和地信号,如电源正常,而晶振无反应,则更换晶振。
# A- s% {& r( a+ i  (二)如无示波器,也有替代的方法,通过嵌入式逻辑分析仪抓信号(任意信号)。如逻辑分析仪点击采样后无反应,则无时钟输入。# o' |! Q: o4 O5 K! \' K
  这是因为逻辑分析仪也需要时钟进行逻辑值的存储。% x/ [5 A7 ^' A6 R" Z- |
  (3)如正常下载后闪灯,证明该FPGA板卡硬件设计上能够达到最低限度的FPGA调试状态。
% r5 o9 k! U4 q6 Q# F2 `- {; w7 y2 V
/ g) U4 K) D1 E3 _  最后,说明一下,为什么是闪灯而不是亮灯的程序,这是因为,首先闪灯可以判断外部晶振工作正常,并且由于LED等通常为上拉,也就是说逻辑值0表示灯亮,而也不排除某硬件工程师非要下拉。逻辑1表示亮。因此采用闪灯更加方便。
4 Q: P9 Z! L! X7 A9 U/ n5 U! s, ~3 v9 u; ~  T( @1 S* S5 ?, O- |
  问题:为什么LED灯值为什么要上拉?/ s6 U8 r6 e" [: o
$ d4 J6 L5 N, D" n. G! Z
  这是因为:LED上拉后,需要灯亮时电流由外部电源提供,而下拉,灯亮时电流由芯片的CMOS电路驱动。这种在设计中应避免。# h/ c2 e% h3 c- }! A" f; o- J

3 \7 _: N4 l) \  s7 ~* M0 W0 ]; u3 y9 g7 T
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-24 09:30 , Processed in 0.109375 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表