Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
查看: 13193|回復: 15
打印 上一主題 下一主題

[問題求助] FPGA程式不穩定問題

[複製鏈接]
跳轉到指定樓層
1#
發表於 2009-1-16 11:41:43 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
公司使用FPGA的寫法皆來自電子部門主管,使用Verilog。但我在使用上發現使用該主管的程式架構寫法上有問題。會有部分模組不是很正常。
$ c4 ^4 {' X4 O% g0 `尤其是Bus讀寫的管理界面,它會有讀入,寫出及三態三種模式,整個為純組合邏輯。# J5 M' {- B, F
我主張在FPGA中不要使用整個大模組為純組合邏輯,因為每次都有點問題。
8 B. `. S, O+ M! g$ D* N( `後來轉任軟體,最近一次除錯又發現寫入FPGA值有問題。- o  Z3 x& h+ A
但我無法明確告知是那個純組合邏輯模組產生出來的問題,而且已有幾個產品都有點類似的問題。* c. v- C. I: g' R5 @5 \
在FPGA中寫一個大模組為純組合邏輯為何會有不穩定現象?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2009-1-16 14:51:13 | 只看該作者
不知道您們是否有設定timing constrain,不只有設定clock 的頻率,還要有input/output delay,
6 }' V$ _+ k$ ~' ?0 h因為FPGA的net/cell delay都遠比ASIC大,所以如果沒有設定好constrain,有可能每次的結果都不是您預期的。
3#
發表於 2009-1-16 17:11:34 | 只看該作者
Bus 讀取先要確認是FPGA 本身造成,或是PCB layout 造成的, 先用FPGA 廠商所提供的Tools 測量內部信號,是否為正常?如為正常可能要往FPGA 內部之delay 或是PCB layout 去找問題! - k9 Z4 m. D( D: B6 [: B
# c) |1 Z+ g8 G9 b0 J6 p! I

8 B5 u: T  [+ l6 K3 M1 [7 M  T, KeASIC : FPGA and ASIC cost down solution 部落格 http://tw.myblog.yahoo.com/easic007/
4#
 樓主| 發表於 2009-1-19 18:43:29 | 只看該作者
timing constrain有設,但因最佳化是另一套軟體做的。所以我認為問題出在這�。
# P% o, N0 v: d5 ~; W, ~0 v7 w不過確實每次都有點不一樣的結果。但相同的輸入條件,會有一樣的錯誤輸出,但大部分狀況都是正常。: [3 X2 Q/ |5 q% x( H
. P, D8 @2 T1 I, j9 R
至於layout上的問題,我想是沒有,因為速度還沒到100MHz。而且是板子固定,改FPGA程式的狀況。外部CPU送的指令相同。0 J2 B. b& }; j' ]# X  |0 Y0 x* r

2 z; G* l9 I& b7 X問題目前比較大的是跨部門溝通,我目前在軟體部,問題FPGA程式在電子部。有時很想自己拿來改。
5#
發表於 2009-1-22 13:17:01 | 只看該作者
最佳化是另一個軟體做的??* |5 x2 r1 }, t' G) i" h$ ]/ `6 s2 y
您是指synthesis 和 P&R是不一樣的軟體嗎?) B, B! |6 A/ w& T
還有您說,相同的輸入條件,會有一樣的錯誤輸出,這是指您要的功能不正常嗎?
6#
 樓主| 發表於 2009-1-23 09:40:51 | 只看該作者
P&R是同一套。synthesis是另一家的軟體。
2 O4 K9 f# {; n! x但以邏輯推出來的結果,其輸出大部分正常。因為除錯,所以會複製出錯狀況,很固定,一樣的條件,一樣的錯誤輸出。動程式碼後,有可能變成另一個模組出問題。, p* C, v9 ^: k4 e0 A, D
本以為是我寫過大的程式,所以我使用路徑中加暫存器來穩定,這招有用,但電子部的人不認同。0 P0 ~: m3 P$ W6 M- @9 J6 Q
後來在學校另外遇到一位研究生,也有類似的問題,使用我的方法也是有效。. M( `+ q# ]: }- t8 E& n
有時主管級的面子比事實重要,證明了他的錯,還是不理你,看一眼就不理了,仍是堅持他做了一個月以上的模擬是不會出錯的。要我把開機所有時間的信號記錄他才能模擬。我可以重覆產生錯誤狀況,這點就是不能用,奇怪。
7#
發表於 2009-3-5 11:17:13 | 只看該作者

建議修改設計

combinational logic難免會出現glitch雜訊( r  z$ P2 q/ F+ s) r
愈複雜的電路當然可能產生的glitch機會愈大, 在debug時常常並不容易找出來4 a3 f6 E2 }; X- E! ~
. Y% E% E- e$ Q% L# \
你的建議也是個解決方法之一, 這類的問題不建議求助tool解決, 因為很容造成不穩定或留下隱藏的bug, 可以的話還是從設計下手吧
8#
 樓主| 發表於 2009-6-3 09:42:04 | 只看該作者
經過這次的經驗,我覺得在設計時要加入測試方法。就是在實際上產生數據丟入。用類似亂數的資料送入。這樣一秒就可以測上萬個樣本。用模擬一個月能模擬數百的樣本就不錯了。
9#
發表於 2009-6-4 13:19:31 | 只看該作者
另外考慮過coding style了嗎?( ~8 g/ D. i( D
原始設計者跑的模擬是post layout simulation嗎?1 G: o2 }) }$ \, D
(至少要有gate level simulation)
3 p# H& f2 k; d( c" E5 _否則不同的tool的模擬結果也只能參考用
10#
發表於 2009-7-20 16:02:44 | 只看該作者
這個問題我也常發生,可能我對這個還不熟,每次遇到都難以解決,都是調整一點東西再試試看...
11#
發表於 2009-8-14 09:27:41 | 只看該作者
不知道你的純組合邏輯的最長path 是有多長呢, 如果妳的FPGA runtime的時脈在30MHz以下甚至到20MHz, 其實timing constrain 應該都可以達到要求, 如果有要出chip的話, 要chip 的verilog版本和fpga的verilog版本不一樣是不可行的, fpga 是用來驗證chip的, 這兩個的verilog版本不一樣的話, 那在fpga 驗證對的東西, 如何保證在chip是對的呢! 我覺得有時候值會有錯應該和前面有人提到第一個是的 timing 的問題, 這個問題只要看看fpag tool的timing report就可以, 第二個我有碰過fpga memory 以及register在開機後並沒有初始化, 所以會是一些奇怪的值, 奇怪的讓邏輯一開始或是bus的內部就隱藏了問題, 只是如果沒有碰到適當的pattern, 也許問題不會發生, 這個問題就不好找了
12#
 樓主| 發表於 2009-9-2 14:55:09 | 只看該作者
System Clock為54Mhz,60Mhz,66Mhz。0 u5 k$ E" O$ @2 d$ d! J& J
另外我引入data flow寫法,和一般的if描述不同。0 n! L$ L. x, Q
我個人習慣使用?:方式來寫。對於輸出,只有一組,這樣我可以知道可能的路徑有那些。
; f8 K0 I5 i7 \8 l* E. Y4 l7 O) D2 I例如:: _4 R  P' B& D
a=>(x)?b:c;* K$ E! _. s/ l* J' T- ]1 p
電子部之前規定寫為if...else。
2 v" }$ p/ @6 I3 d- D: H寫成if...else遇到路徑太長,就不好改。因為到底套了幾層if反而不好找。而合成器對於我認為不必要防護的輸入信號做了互斥,增加路徑長度。# c6 k# ]2 [8 q; i8 G
data flow的寫法就好加。當然我這樣寫結果就是被趕出電子部,原因是"沒人看得懂"。
13#
發表於 2012-5-6 23:52:16 | 只看該作者
如果都采用同步电路设计的话 一般这种问题会少一点 另外有片外存储器读写的话 时序约束需要注意下
14#
發表於 2015-9-23 21:41:13 | 只看該作者
那個我目前遇到一個有點類似的問題,就是常常FPGA不會照著我寫的VHDL下去跑,像是訊號設定為X"66",結果變成其他的5 p" F8 S$ p8 K' i2 |
這是我哪方面的設計出問題?
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

首頁|手機版|Chip123 科技應用創新平台 |新契機國際商機整合股份有限公司

GMT+8, 2024-11-16 07:44 AM , Processed in 0.168010 second(s), 17 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表