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

从零开始调试  

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 Diabloa 于 2018-12-1 09:26 编辑 % o0 z$ g; \: E: \3 M4 k
% ]. G; Y2 ~5 q8 M' w0 V+ k
       从零开始调试  
, K/ m4 `# G! O2 B% t4 Q0 K
       对于新手来说,如何上手调试FPGA是关键的一步。
; v% @7 h/ S$ |  对于每一个新设计的FPGA板卡,也需要从零开始调试。$ v  n. |4 \; p
  那么如何开始调试?: l+ J) {( c& R- l

: t! S' D% {3 Q/ x5 S/ |  下面介绍一种简易的调试方法。
; A5 ^8 i: d/ e, {# ^- y  (1) 至少设定一个输入时钟 input sys_clk;
* L* G! q) ^) N3 I1 k2 w# T' V" R  (2) 设定输出 output [N-1:0] led;
% z# c1 a0 b* [& F% o  (3)设定32位计数器 reg [31:0] led_cnt;/ C1 I% t- j+ i( a# s  n) G* f, W
  (4) 时钟驱动计数器开始工作; E4 r; ^! r& R. R* V
  always@(posedge sys_clk)
. K0 |' ~5 `9 U5 a) X2 g9 A  led_cnt <= led_cnt + 1/ o: L& {4 Y( x; N; S
  (5)输出led信号。
- t/ p6 m/ g$ I. U$ e! F/ v  assign led = led_cnt[M:N];. ?/ `% Z: r( h  L, `4 A) M
  程序完成。
0 k! D2 n2 j  K, G2 s2 c( X  (6)设定管教约束
8 s7 i8 q2 `) S8 [  i; Q0 i  如果为XILINX FPGA ,在UCF文件中 NET “sys_clk” LOC = 管脚名称
. c, e) T: ?+ I  如果为ALTERA FPGA ,在QSF文件中,添加 set_location_assignment 管脚名称 -to sys_clk
2 Q) ]  ~; f  Y: s  其他管脚,可依次类推。! g8 `; e. v5 u/ D% U9 n
  (7)编译,布局、布线,生成配置文件。5 J% t% u" Z) V
  XILINX 生成BIT文件。
/ ~( R- w" Y: i3 p9 s4 P  ALTERA 生成SOF文件. W, t- v& ?( O  @" V2 P
  (8)连接JTAG,下载相应的配置文件。( }4 n% O3 }! Q5 e* o, ^% E% l* W
  (9)观察是否闪灯(肉眼可见)。
  s# `! W; ~# t& q  L) ~
" k; ~  I. r9 {8 O% b# m  关于闪灯的解释如下:' Q% k; N/ |# p6 K3 m
  assign led = led_cnt[M:N]; led_cnt 为32bit的信号,需要几个闪灯,则根据输入时钟的频率和肉眼能够分辨的时间(100ms)。如输出时钟为25Mhz。则闪灯看见的位置能够分批到10hz。需分频2.5M= 32‘h2625A0,因此,则需要输出至少为led_cnt[21]位,才能看到闪灯。3 H) E: b9 l% M  z9 o9 }

& t. ~: |/ p' h, e- b  虽然程序简单,但是,通过调试可以确认:( _' t) v9 S3 v3 w
  (1)首先可确定JTAG下载器的正确连接,能够正常下载下载文件。如不能,常见问题包括- J- r$ @* `0 f4 @- V
  (一)检查是否安装驱动。% \, [. u6 ~- l7 S4 [& a+ y+ n6 g
  (二)下载器是否由红灯变成黄灯/绿灯。如红灯亮一般情况下,JTAG的与电路板VCC没有供电。5 O* T, u5 B2 }% H; }
  (三)检查JTAG连接的线序。
) e/ ^1 b4 F; ]5 a: k3 _' q  (四)检查JTAG电路,检查原理图上TMS,TDI,TDO的上拉和下拉电阻是否与datasheet中一致。
$ ~5 X; ?5 s6 R5 s% h  通过以上四种方式,可排除绝大部分JTAG下载的错误。& f; x& \$ [' {/ W- q

! h& J, J: L: Z. a' S  (2)可以判断晶振是否起振,下载后无灯闪。
+ v6 ^! |$ c9 F' I5 B- c4 Y2 G  (一)首先,示波器查看晶振频率,观察晶振的输出,如无输出,查看晶振的电源和地信号,如电源正常,而晶振无反应,则更换晶振。4 f* w3 O( P; E; n( K
  (二)如无示波器,也有替代的方法,通过嵌入式逻辑分析仪抓信号(任意信号)。如逻辑分析仪点击采样后无反应,则无时钟输入。
: m' W; i. ?/ L/ E  这是因为逻辑分析仪也需要时钟进行逻辑值的存储。1 }+ Y2 x' R9 g' o  L
  (3)如正常下载后闪灯,证明该FPGA板卡硬件设计上能够达到最低限度的FPGA调试状态。5 r$ X) R6 k$ K+ k9 N; A. x+ b
7 ?9 D8 \+ Y; e, I+ X
  最后,说明一下,为什么是闪灯而不是亮灯的程序,这是因为,首先闪灯可以判断外部晶振工作正常,并且由于LED等通常为上拉,也就是说逻辑值0表示灯亮,而也不排除某硬件工程师非要下拉。逻辑1表示亮。因此采用闪灯更加方便。: X4 k8 d* D8 W- D* ?1 B  R

2 |+ T- T* W8 A$ w2 p. g/ |( V  问题:为什么LED灯值为什么要上拉?
0 }: B4 {2 r) O3 Q& f: s* f5 l/ v9 T- @9 k4 _  N
  这是因为:LED上拉后,需要灯亮时电流由外部电源提供,而下拉,灯亮时电流由芯片的CMOS电路驱动。这种在设计中应避免。
; }2 [+ M' d& e9 a
6 w$ y3 o, I5 z; X1 C5 `9 E6 z: [; Z, \, X, _- b9 Q6 \
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-26 08:34 , Processed in 0.125000 second(s), 24 queries , Gzip On.

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

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

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