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

从零开始调试  

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 Diabloa 于 2018-12-1 09:26 编辑 " O: w; W) r6 v9 o# _$ e8 _. E2 Z
7 K  n7 B+ i/ {8 s# \
       从零开始调试  
8 P1 T6 `, P% K; d& P- h- s
       对于新手来说,如何上手调试FPGA是关键的一步。, [8 x- P' E/ S5 x( Q$ Y9 E* p# S
  对于每一个新设计的FPGA板卡,也需要从零开始调试。: P0 ^! P( b8 M4 F3 V
  那么如何开始调试?' Z2 r- J" a, K# D6 U
( V, O3 b. B. p
  下面介绍一种简易的调试方法。
2 U6 [  b! a6 ~' s  (1) 至少设定一个输入时钟 input sys_clk;* f/ s. p6 G2 i/ G9 ?) f! B+ D5 C* w
  (2) 设定输出 output [N-1:0] led;
- R; \+ t$ R) {1 l8 V' }& C  (3)设定32位计数器 reg [31:0] led_cnt;' O7 p: o# T: E! Y/ I' L
  (4) 时钟驱动计数器开始工作
0 W+ m! ^; z' P0 O  `  always@(posedge sys_clk)
% x$ B" w9 P7 d. s3 o1 B/ F  led_cnt <= led_cnt + 1
$ |4 P* l% }* n1 b  ]/ \( D' U  (5)输出led信号。+ J8 f. z8 H0 K4 H
  assign led = led_cnt[M:N];
" K# _  m- f6 w3 Z7 `* w1 j* K  程序完成。$ H9 S2 ~7 J0 x4 W3 O1 B: d  E7 g
  (6)设定管教约束
0 t  m+ l# H4 @7 O2 L5 z! Y  如果为XILINX FPGA ,在UCF文件中 NET “sys_clk” LOC = 管脚名称
) ^: D* h( @& C7 ~, e" n  如果为ALTERA FPGA ,在QSF文件中,添加 set_location_assignment 管脚名称 -to sys_clk
! q5 V; K! b5 I  其他管脚,可依次类推。1 m% l7 J9 Q9 m( c; c. W
  (7)编译,布局、布线,生成配置文件。' G4 b3 h0 U! N) Y5 b
  XILINX 生成BIT文件。7 U/ e+ m3 i' M6 [+ `5 M& E& m9 m
  ALTERA 生成SOF文件
$ J( l+ L% K% }3 {  h  (8)连接JTAG,下载相应的配置文件。6 d# H3 Q0 ~+ E! r3 {
  (9)观察是否闪灯(肉眼可见)。; M' N: Q6 Z8 G

, s. _! I' g) O. h& g7 A! Z/ c  关于闪灯的解释如下:# N8 y0 R$ e$ n8 ?- b; ?) @) Y7 B; @
  assign led = led_cnt[M:N]; led_cnt 为32bit的信号,需要几个闪灯,则根据输入时钟的频率和肉眼能够分辨的时间(100ms)。如输出时钟为25Mhz。则闪灯看见的位置能够分批到10hz。需分频2.5M= 32‘h2625A0,因此,则需要输出至少为led_cnt[21]位,才能看到闪灯。2 X0 n+ ?  f- a, V" ?8 Y7 u4 ~8 R# N

3 k' `  n2 p$ t, K( i: c- z  虽然程序简单,但是,通过调试可以确认:
1 F9 b, g* ~. G3 o0 j. x  (1)首先可确定JTAG下载器的正确连接,能够正常下载下载文件。如不能,常见问题包括
2 S9 Z; z/ l4 d, l' V" H$ n* Z  (一)检查是否安装驱动。' P) d. f' Z7 q2 `% e& G4 t% @
  (二)下载器是否由红灯变成黄灯/绿灯。如红灯亮一般情况下,JTAG的与电路板VCC没有供电。
4 N( ]' ]! @. L+ M0 M  (三)检查JTAG连接的线序。- h: F/ v% W" F/ X$ ~' H; J% V
  (四)检查JTAG电路,检查原理图上TMS,TDI,TDO的上拉和下拉电阻是否与datasheet中一致。
( }% f  I( Y1 p" X  g  通过以上四种方式,可排除绝大部分JTAG下载的错误。
4 K( c0 R0 @2 F2 i- o+ q8 V+ n
0 K: e% \: Q! u  (2)可以判断晶振是否起振,下载后无灯闪。
" Q" C# m" g5 P1 R/ l+ c, W  (一)首先,示波器查看晶振频率,观察晶振的输出,如无输出,查看晶振的电源和地信号,如电源正常,而晶振无反应,则更换晶振。1 Z; c" A. W9 h# o' h; g  x/ g; H
  (二)如无示波器,也有替代的方法,通过嵌入式逻辑分析仪抓信号(任意信号)。如逻辑分析仪点击采样后无反应,则无时钟输入。/ `* O  m: j5 w
  这是因为逻辑分析仪也需要时钟进行逻辑值的存储。
, O! @& V  d; O- q$ n6 d  (3)如正常下载后闪灯,证明该FPGA板卡硬件设计上能够达到最低限度的FPGA调试状态。
# q2 L5 a) C, Q; t" \& v. W, c- H- I2 C
  最后,说明一下,为什么是闪灯而不是亮灯的程序,这是因为,首先闪灯可以判断外部晶振工作正常,并且由于LED等通常为上拉,也就是说逻辑值0表示灯亮,而也不排除某硬件工程师非要下拉。逻辑1表示亮。因此采用闪灯更加方便。
( `3 a0 h8 d4 j7 }* _
$ D, [9 \& b1 ~, |3 U- Z4 }! ?  问题:为什么LED灯值为什么要上拉?
7 A7 a: h+ F  J# t9 ]. m
# o6 r$ |. h- I  g* s/ q6 A! c7 C  这是因为:LED上拉后,需要灯亮时电流由外部电源提供,而下拉,灯亮时电流由芯片的CMOS电路驱动。这种在设计中应避免。
0 u3 w6 c3 Z, O! c4 j* k. }5 T2 I( ]) z7 ]
6 G, e3 r% w$ Y/ t+ `8 ?9 u# V
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-31 04:04 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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