色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何將算法“翻譯”成Verilog?

ruikundianzi ? 來源:IP與SoC設計 ? 作者:IP與SoC設計 ? 2022-11-03 15:38 ? 次閱讀

我是一名數字前端IP設計工程師,方向為通信芯片IP設計,我的主要工作就是“翻譯”算法代碼。

經典的ASIC開發流程主要有:

以算法設計為主導

算法C代碼手工轉換為RTL

RTL與算法C代碼生成的測試向量對比進行驗證

依賴FPGA做大量實時、現場測試

適合通信信號處理,音視頻處理或圖像處理等產品

我的工作主要就是將算法C代碼手工轉換為RTL,尤其是通信芯片的設計,算法主要是將浮點運算近似成定點運算,定點的精度決定了系統的性能,所以一種開發模式就是,用C平臺生成的case數據和RTL仿真的數據進行對比,保證定點化后的仿真性能。

所以對于單個計算模塊的開發來說,可以說就是體力活了,算法的計算過程已經擺在那里,單就是純翻譯。

然而再復雜的算法,在設計工程師的眼里,也就是一堆數學公式,算法設計者也應該盡量做簡單的算法實現,比如除法,求冪次方、開平方等復雜運算到了設計工程師這里都已經轉化成了簡單的乘法和加法運算。更復雜的就是累加、累乘(我所能接觸到的)。

做芯片第一應該關注的是芯片的PPA(Performance, Power, Area),如何設計的出更高性能的電路,占用更少的資源/面積,更低的功耗。這才是我們的專業知識。

通過學習算法代碼和文檔以及協議,了解算法的計算意圖。然后進行數據通路的分析,整體的數據流走向。哪些需要計算的數據可以用寄存器存儲,哪些數據需要用RAM存儲。模塊的劃分可拆解,哪些計算單元是功能類似的,可以做成一個小IP,乘法器同時使用的最大數量,是否能在整個大模塊中分時復用。

算法的設計中沒有時序的概念,也沒有計算時間的長短。需要設計工程師去整理整個模塊的計算流水,流水線排的時間長,需要的計算邏輯就越少,反之,面積越大。面積與速度互換思想,貫穿始終?,F成乘法器的數量有限,是否能加上幾個乘法器而獲得模塊整體運算速度提高30%的收益,都需要去折中(Trade off)考慮。

排好計算流水,控制通路,一般都使用狀態機去做,當然,狀態機怎么設計算法可不會教你。整個模塊與更高層模塊的交互,接口控制時序需要討論確定。數據通路可能還需要用到RAM/Regfile去緩存中間數據的結果,RAM/Regfile的讀寫地址控制也是常見設計。數據通路的運算,是主要消耗資源的部分,所以一個好的詳細設計方案非常重要,同樣的設計,別人可以用比你小30%的面積和少30%的時間來實現。這可能就是設計工程師真正的價值體現之處。

對于通信算法中,矩陣運算也是比較常見的,復雜矩陣的運算是最耗費資源的,矩陣運算的拆解也需要很多技巧,比如矩陣的乘法是A的第一行乘以B的第一列,累加得到第一個元素,這部分的運算電路可以復用流水起來做。一個矩陣需要拆解合并成數個小矩陣,想要保持并行,用寄存器存儲,就會消耗的資源多。存在RAM中就是串行流水做會消耗的時間長,所以這都需要在模塊架構設計階段去計算處理時間和評估消耗資源、折中是否采?。═rade off)。

這種大型矩陣運算動輒幾百上千bit的寄存器輸出,連線選擇運算,可能會造成后端congestion問題,所以方案設計的重要性又體現出來了。組合邏輯的運算,如果路徑過長,時序會出現問題,插寄存器的位置也非常重要,消耗的寄存器的數量也是不同的,甚至可以通過手動retimming,找個寄存器把打拍的位置換一下,消耗的資源還是相同的。

對于芯片的功耗前端能做的就是,去加一些時鐘門控,模塊不用時候可以關掉,組合邏輯計算單元不用的時候避免翻轉,乘法器的使能信號的控制,避免無效翻轉,數據通路寄存器帶著使能打拍,工具也會自動插時鐘門控,這些就和算法沒關系了。

至于算法,當然不同領域的相關知識不同,雖然設計方法是完全類似的,但是在一個領域深扎,成為這個領域的專業的人,可以更好的理解算法到硬件的實現。

IP設計工程師經常調侃自己是算法“翻譯官”,雖然也沒什么問題,但是自嘲歸自嘲,如果感興趣的話,還是應該去想著如何更好的做好自己的設計,做好芯片。即使是“翻譯官”也是一個十分有價值的“翻譯官”。

審核編輯 :李倩

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 算法
    +關注

    關注

    23

    文章

    4615

    瀏覽量

    92972
  • Verilog
    +關注

    關注

    28

    文章

    1351

    瀏覽量

    110129

原文標題:如何將算法“翻譯”成Verilog?

文章出處:【微信號:IP與SoC設計,微信公眾號:IP與SoC設計】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Verilog 測試平臺設計方法 Verilog FPGA開發指南

    Verilog測試平臺設計方法是Verilog FPGA開發中的重要環節,它用于驗證Verilog設計的正確性和性能。以下是一個詳細的Verilog測試平臺設計方法及
    的頭像 發表于 12-17 09:50 ?230次閱讀

    LLMWorld上線代碼翻譯新工具——問丫·碼語翻譯俠,快來體驗!

    應用案例 aicode.llmworld.net 案例一 閱讀復雜算法,將計算機語言翻譯成自然語言和偽代碼,快速幫助用戶理解算法實現邏輯。 Input(C++): 正弦波信號進行傅里葉變換,并輸出其頻域結果的C++
    的頭像 發表于 12-09 11:11 ?283次閱讀
    LLMWorld上線代碼<b class='flag-5'>翻譯</b>新工具——問丫·碼語<b class='flag-5'>翻譯</b>俠,快來體驗!

    如何將LVDS/OLDI橋接到HDMI/DVI

    電子發燒友網站提供《如何將LVDS/OLDI橋接到HDMI/DVI.pdf》資料免費下載
    發表于 09-27 09:35 ?1次下載
    <b class='flag-5'>如何將</b>LVDS/OLDI橋接到HDMI/DVI

    如何將BQ35100配置為EOS模式

    電子發燒友網站提供《如何將BQ35100配置為EOS模式.pdf》資料免費下載
    發表于 09-11 10:03 ?0次下載
    <b class='flag-5'>如何將</b>BQ35100配置為EOS模式

    如何將LMH34400評估模塊設置電流輸入模式?

    LMH34400 評估模塊手冊里注明默認電壓輸入模式,如何設置電流輸入模式沒有說明,煩請說明下如何將LMH34400 評估模塊設置電流輸入模式,謝謝。
    發表于 08-01 07:35

    如何將GPIO修改為QSPI SLSO?

    我們使用的是 TC49x,我能否 GPIO 用作 SLSO(SLSO 不是專用的),如果可以,請告訴我們如何將 GPIO 修改為 QSPI SLSO。 我正在使用 QSPI1,需要使用 P31.6 作為 SLSO ,請提供指導。
    發表于 07-22 06:25

    verilog function函數的用法

    Verilog 中被廣泛用于對電路進行模塊化設計,以簡化和組織代碼。 本文詳細介紹 Verilog 函數的用法,并探討函數在硬件設計中的重要性和實際應用場景。 一. Verilog
    的頭像 發表于 02-22 15:49 ?5772次閱讀

    如何將互感器輸出的正弦波信號轉化為比例的直流電壓信號?

    我想用互感器和單片機測交流電路的電流,不知道如何將互感器輸出的正弦波信號轉化為比例的直流電壓信號,請各位高手指點一二,非常感謝!
    發表于 02-22 07:08

    TC275 GTM如何將TIM配置讀取引腳電平狀態模式?

    如何將TIM配置讀取引腳電平狀態模式
    發表于 02-19 06:32

    在hightec中如何將源代封裝,并編譯鏈接.a的庫函數?

    在hightec中如何將源代封裝,并編譯鏈接.a的庫函數
    發表于 02-18 08:10

    如何將LED連接到Arduino板并使其閃爍

     在本快速入門指南中,您將學習如何將 LED 連接到 Arduino 板并使其閃爍。
    的頭像 發表于 02-11 10:53 ?2257次閱讀
    <b class='flag-5'>如何將</b>LED連接到Arduino板并使其閃爍

    如何將按鈕連接到Arduino板

    在本快速入門指南中,您將學習如何將按鈕連接到Arduino板,并根據按鈕是否被按下來讀取HIGH或LOW。您將使用電路板上隨附的發光二極管 (LED)通過按鈕打開和關閉,以便驗證按鈕按下代碼是否正常工作。
    的頭像 發表于 02-11 10:52 ?3910次閱讀
    <b class='flag-5'>如何將</b>按鈕連接到Arduino板

    如何將增量旋轉編碼器與Arduino連接

    在本教程中,您將學習如何將增量旋轉編碼器與Arduino連接,以讀取旋鈕的運動。這對于在機器人和其他應用程序中創建用戶界面或讀取機械位置非常有用。
    的頭像 發表于 02-11 10:00 ?1455次閱讀
    <b class='flag-5'>如何將</b>增量旋轉編碼器與Arduino連接

    如何將Klayout Cell動態導入Lumerical Multiphysics

    在本例中,演示了如何將KLayout Library Cell動態導入 Lumerical 以執行設計掃描和表征。該功能支持動態導入到Lumerical FDTD、MODE以及Multiphysics的所有工具,包括CHARGE、HEAT、FEEM、MQW、DGTD。
    的頭像 發表于 01-22 14:27 ?662次閱讀
    <b class='flag-5'>如何將</b>Klayout Cell動態導入Lumerical Multiphysics

    請問如何將M482的X32_IN X32_OUT設定GPIO_OUTPUT?

    請問如何將M482的X32_IN X32_OUT設定GPIO_OUTPUT?
    發表于 01-16 06:40
    主站蜘蛛池模板: 午夜噜噜噜私人影院在线播放| 中文字幕人成乱码熟女APP| 欧美91精品久久久久网免费| 56prom在线精品国产| 捏揉舔水插按摩师| 俄罗斯美幼| 亚洲精品婷婷无码成人A片在线| 久久精品黄AA片一区二区三区| 91精品一区二区三区在线观看| 人人舔人人爱| 国产在线精彩亚洲久久| 一二三四在线观看高清电视剧| 男人j进女人j一进一出| 成人在线观看免费视频| 天天影视网网色色欲| 久久精品黄色| 成人毛片手机版免费看| 性虎成人网| 欧美男女爱爱| 国产老肥熟xxxx| 18禁裸乳无遮挡免费网站 | 天天躁日日躁狠狠躁AV麻豆| 好大好硬好湿再深一点网站| 992交通广播| 小莹的性荡生活| 蜜桃成人在线| 国产热久久精| qvod 韩国| 亚洲一卡二卡三卡四卡无卡麻豆| 暖暖直播免费观看韩国| 加勒比一本之道高清视频在线观看| 717影院理论午夜伦不卡久久| 午夜福利免费院| 欧美最猛性xxxxx亚洲精品| 精品亚洲大全| 小小水蜜桃视频高清在线观看免费 | 亚洲欧美一区二区三区导航| 欧美 亚洲综合在线一区| 国产在线精品亚洲视频在线| XXX国产麻豆HD真实乱| 在线观看国产区|