加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 交流問題(一)
    • 交流問題(二)
    • 交流問題(三)
    • 交流問題(四)
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

寫 Verilog 如何做到心中有電路?

09/10 16:25
992
閱讀需 8 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

大俠好,歡迎來到FPGA技術(shù)江湖,江湖偌大,相見即是緣分。大俠可以關(guān)注FPGA技術(shù)江湖,在“闖蕩江湖”、"行俠仗義"欄里獲取其他感興趣的資源,或者一起煮酒言歡。“煮酒言歡”進入IC技術(shù)圈,這里有近100個IC技術(shù)公眾號。

今天給大俠帶來在FPAG技術(shù)交流群里平時討論的問題答疑合集(十三),以后還會多推出本系列,話不多說,上貨。

FPGA技術(shù)交流群目前已有十多個群,QQ和微信均覆蓋,有需要的大俠可以進群,一起交流學(xué)習,共同進步。

歡迎加入FPGA技術(shù)微信交流群14群!

交流問題(一)

Q:寫 Verilog 如何做到心中有電路?老師說沒電路就不要寫代碼,但我寫個乘法器在綜合前都想不出它電路啥樣,全加器還行。

A:要在寫 Verilog 代碼時做到心中有電路,可以嘗試以下方法:

1. 深入學(xué)習數(shù)字電路基礎(chǔ)知識:包括各種邏輯門組合邏輯電路、時序邏輯電路的原理和結(jié)構(gòu),理解它們的工作方式和功能。

2. 分解復(fù)雜電路:對于像乘法器這樣的復(fù)雜電路,將其分解為更小的、可理解的模塊。例如,先理解加法器、移位器等基本單元,再逐步構(gòu)建乘法器的概念。

3. 手動繪制電路草圖:在開始編寫代碼之前,嘗試在紙上畫出電路的大致結(jié)構(gòu)和連接方式,這有助于形成直觀的印象。

4. 分析已有電路實例:研究現(xiàn)有的成功電路設(shè)計案例,包括其 Verilog 代碼和對應(yīng)的電路原理圖,從中學(xué)習和借鑒。

5. 模擬和仿真:使用工具進行電路的模擬和仿真,觀察信號的變化和電路的行為,這能增強對電路實際工作情況的理解。

6. 反復(fù)練習和總結(jié):通過不斷編寫不同類型的電路代碼,并總結(jié)經(jīng)驗,逐漸培養(yǎng)對電路的直覺和理解。

總之,心中有電路需要時間和實踐的積累,不斷強化對數(shù)字電路的理解和認識。

交流問題(二)

Q:如何通俗地講清 I2C、SPI、USB、UART、RS232 到底是什么東西?通俗,通俗,通俗。百度上的術(shù)語一大堆,到頭來把我繞的糊里糊涂,我知道您什么都懂,能解釋的讓外行人也理解嗎。

A:I2C 就像是一個有兩個管理員的小隊伍。這兩個管理員一個負責發(fā)命令(主設(shè)備),一個負責聽命令和回答(從設(shè)備)。他們通過兩根線來交流,一根線傳數(shù)據(jù),一根線控制節(jié)奏,能讓很多小設(shè)備(比如傳感器存儲器)和大設(shè)備(比如電腦的主板)方便地說話。

SPI 呢,就像是一個小團隊,有一個帶頭的(主設(shè)備)和幾個跟著的(從設(shè)備)。他們交流靠好幾根線,一根專門發(fā)命令,一根專門收回答,還有專門用來控制什么時候說話的線,這樣說話速度快,但線用得多。

USB 可以想象成一個多功能的管道,能把各種各樣的東西(比如鼠標、鍵盤、優(yōu)盤)連到電腦上。它很聰明,能自動認出連上來的是什么,而且還能同時干好多不同的活兒,比如一邊傳文件一邊用鼠標。

UART 就像是兩個人打電話,一個人說,另一個人聽,說完一輪再反過來。他們就用一根線傳要說的話,一根線控制啥時候說。

RS232 也是兩個人交流,不過它要求比較嚴格,比如說話聲音大?。妷海┑霉潭ǎ艺f話的速度不能太快。它經(jīng)常用在一些老一點的設(shè)備之間交流,像早期的打印機和電腦之間。

交流問題(三)

Q:為什么學(xué)了模數(shù)電還是看不懂較復(fù)雜的電路圖?大三,電子技術(shù)實習需要做音頻功率放大器,給了原理圖,但是做原理圖分析時,不明白為什么要選這樣大小的電阻。

A:學(xué)習了模數(shù)電之后仍然看不懂較復(fù)雜的電路圖,特別是在分析元件參數(shù)選擇時感到困惑是比較常見的情況,可能有以下幾個原因:

1. 理論與實踐結(jié)合不足:模數(shù)電的學(xué)習更多側(cè)重于理論知識和基本原理,而實際的電路圖中涉及到眾多的工程考慮和實際應(yīng)用需求。對于實際電路中電阻等元件參數(shù)的選擇,需要綜合考慮性能、成本、穩(wěn)定性等多方面因素,這需要更多的實踐經(jīng)驗和對具體應(yīng)用場景的了解。

2. 缺乏對特定電路功能的深入理解:對于音頻功率放大器這類特定的電路,需要深入了解其工作原理、性能指標以及各種設(shè)計要求。如果對這些方面的理解不夠深入,就難以明白為什么選擇特定大小的電阻來滿足電路的功能和性能。

3. 對電路元件特性的掌握不夠全面:電阻的選擇不僅僅取決于阻值,還與功率、精度、溫度系數(shù)等特性有關(guān)。如果對這些特性的了解不夠全面,就難以準確判斷為什么在特定的電路中選擇了特定的電阻。

4. 缺少對電路設(shè)計原則和經(jīng)驗的積累:電路設(shè)計往往遵循一定的原則和經(jīng)驗,這些在書本知識中可能沒有詳細闡述。例如,在音頻功率放大器中,為了實現(xiàn)特定的增益、帶寬、失真度等指標,需要根據(jù)經(jīng)驗選擇合適的電阻值。

要解決這個問題,可以多參考相關(guān)的電路設(shè)計資料和實例,向有經(jīng)驗的人請教,同時自己多進行電路設(shè)計和分析的實踐,逐步積累經(jīng)驗,提高對復(fù)雜電路圖的理解和分析能力。

交流問題(四)

Q:FPGA布線布局卡死一直布不到,在寫verilog代碼應(yīng)該怎么規(guī)范寫以減輕布線壓力?我寫了一個工程,但是布線布局一部卡住布不下去,想進一步規(guī)范verilog代碼以成功布線,有哪些建議嗎?

A:以下是一些在編寫 Verilog 代碼時可以遵循的規(guī)范和建議,以減輕 FPGA 布線壓力,僅供參考:

1. 模塊劃分:將復(fù)雜的設(shè)計合理地劃分為多個功能獨立的模塊,提高代碼的可讀性和可維護性,也有助于布線工具更好地處理。

2. 時鐘管理:盡量減少時鐘的數(shù)量,避免使用過多的異步時鐘。對于多個時鐘域的設(shè)計,要正確處理跨時鐘域的數(shù)據(jù)傳輸。

3. 資源復(fù)用:對于相同功能的邏輯,盡量復(fù)用資源,減少硬件資源的消耗。

4. 編碼風格:采用合適的編碼風格,例如使用 case 語句而不是多個 if-else 嵌套,以減少邏輯的復(fù)雜性。

5. 減少扇出:控制信號的扇出數(shù)量,避免單個信號驅(qū)動過多的邏輯。

6. 流水線設(shè)計:在適當?shù)牡胤揭肓魉€,可以提高系統(tǒng)的工作頻率,減輕布線壓力。

7. 同步設(shè)計:確保整個設(shè)計是同步的,避免出現(xiàn)異步邏輯。

8. 約束設(shè)置:為設(shè)計添加準確和合理的約束,如時鐘頻率、時序要求等,幫助布線工具更好地理解設(shè)計意圖。

今天先整理四個問題答疑,后續(xù)還會持續(xù)推出本系列。

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

任何技術(shù)的學(xué)習就好比一個江湖,對于每一位俠客都需要不斷的歷練,從初入江湖的小白到歸隱山林的隱世高人,需要不斷的自我感悟自己修煉,讓我們一起仗劍闖FPGA乃至更大的江湖。