如何看懂別人寫的verilog 程式碼?知乎使用者2015-06-24 10:17:49

程式碼不多,沒驗證過,沒有詳細設計文件,還不如自己重寫。

程式碼太多,沒驗證過,沒有詳細設計文件,還不如自己重寫。

如何看懂別人寫的verilog 程式碼?知乎使用者2015-06-24 15:54:03

最近也在改別人屎一樣的FPGA專案,沒文件沒測試資料沒板子,這個真是欲哭無淚…

就說下自己寫的時候的一些經驗吧:1。先畫好時序圖,狀態機轉移圖,這些完成了編碼工作就簡單多了,避免為了湊時序而寫程式碼,不清楚實際意義。2。沒有特別要求的話,狀態機的次態生成一般用組合邏輯,這樣次態到現態的轉換是一個週期。3。除非幾個訊號的生成方式類似,一般一個always時序塊裡就寫一個訊號,並且記得給初值或者復位值,這樣看著電路含義很清楚。4。寫流水線的時候,如果想要能隨時暫停恢復,輸出訊號要用暫存器鎖存一下。5。子模組能用locaparam就不用parameter,能用parameter就不用define,寫define把名字起的複雜一點。6。如果相連的模組時鐘頻率不同,要仔細考慮控制訊號的有效時長。。。

就想到這些了,最後祝題主寫出簡潔優雅的程式碼,造福後人。

如何看懂別人寫的verilog 程式碼?林名2015-07-09 08:27:03

垃圾程式碼不建議要。但是如果非要的話。

1。規整格式

2。偽碼替換

3。畫資料流和控制流關係圖,標註頻寬位寬以及延時關係,標記時鐘域復位域,模組從屬關係。

4。寫激勵模擬,改掉語法錯誤

5。對照偽碼和資料流理清設計思路(如果師兄還在這個很簡單)

6。根據模擬修改錯誤並驗證

7。根據理解重寫程式碼或者直接交差。

雖然說對大多數情況而言,由於過多的並行執行,看懂一個程式碼比較困難,因此大部分人寧願重寫。但是實際中往往不可避免的要看懂並改寫別人程式碼,特別是新接觸一個複雜設計時,看懂舊程式碼,改寫比完全重寫調通還是要簡單很多。

如何看懂別人寫的verilog 程式碼?趙謙2015-07-09 09:47:47

補充下模擬也很重要,從輸入一點點跟進去,結合設計圖、Verilog程式碼,一個個模組測試、看波形、改正,是個細活。

PS:不要批評人白送的程式碼,能給你參考就不錯了。

如何看懂別人寫的verilog 程式碼?WangXuan2020-03-07 15:23:47

作為多年的 SystemVerilog 熟手,表示這類問題很頭疼,因為RTL程式碼與軟體程式碼不一樣,是牽一髮而動全身的,所以要看懂別人寫出的程式碼,哪怕是100行的一個module,都需要花一些功夫的。

與別人合作寫 Verilog ,一定要確保對方願意封裝到 module 級,並且提供翔實的module介面文件,裡面要有時序圖等必要的資訊,就像晶片datasheet那樣。如果沒有介面文件,有testbench或example design也行。如果對方懶得給這些東西,那我寧願替他重寫

所以你該怎麼辦呢?趕緊讓師兄給你出文檔啊。如果師兄懶得弄,那就自己好好去練Verilog,然後試著去看懂,這個沒有捷徑的,只有多看多練才行。不過話說回來,等你熟到能看懂他的程式碼時,說不定發現還不如自己寫一個來的快。