日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

關(guān)于代碼與硬件電路的對(duì)應(yīng)關(guān)系

GReq_mcu168 ? 來(lái)源:玩轉(zhuǎn)單片機(jī) ? 作者:玩轉(zhuǎn)單片機(jī) ? 2020-12-09 15:59 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1.Verilog HDL描述

可綜合電路Verilog HDL語(yǔ)言是對(duì)已知硬件電路的文本描述。所以編寫前:

對(duì)所需實(shí)現(xiàn)的硬件電路“胸有成竹”; 牢記可綜合Verilog HDL與電路結(jié)構(gòu)一一對(duì)應(yīng)的關(guān)系; 確認(rèn)電路指標(biāo)是什么:性能?面積? 硬件思維方式,代碼不再是一行行的代碼而是一塊一塊的硬件模塊;

達(dá)到以上幾點(diǎn),就可以寫出行云流水般的高質(zhì)量代碼。關(guān)于代碼與硬件電路的對(duì)應(yīng)關(guān)系,參見(jiàn)如下圖片,引用自Synopsys官方文檔和幾本參考書:

13d66892-33d7-11eb-a64d-12bb97331649.jpg

1410cf0a-33d7-11eb-a64d-12bb97331649.jpg

14408e66-33d7-11eb-a64d-12bb97331649.jpg

148acad0-33d7-11eb-a64d-12bb97331649.jpg

14d4a506-33d7-11eb-a64d-12bb97331649.jpg

150bb0d2-33d7-11eb-a64d-12bb97331649.jpg

1547a88a-33d7-11eb-a64d-12bb97331649.jpg

156b8188-33d7-11eb-a64d-12bb97331649.jpg

2、自動(dòng)化生成代碼如果一定要有奇淫技巧的話,那么代碼自動(dòng)化生成技術(shù)就一定可以配得上這個(gè)稱號(hào)。

近十年來(lái),數(shù)字集成電路規(guī)模和復(fù)雜度飛速提高。這給數(shù)字集成電路工程師帶來(lái)了不僅是腦力上的勞動(dòng)的增加,更多是體力重復(fù)性工作的增多。傳統(tǒng)的手工代碼的編寫存在很多弊端。

首先對(duì)于模塊的代碼工程師,要面對(duì)許多設(shè)計(jì)文件。而這些文件之間可能相互不一致,給代碼的編寫帶來(lái)了很多的困擾。

其次,代碼工程師需要將這些文件中的很多設(shè)計(jì)信息體現(xiàn)在代碼中,其中一些信息是重復(fù)性的謄寫。這不僅帶來(lái)了很多枯燥復(fù)雜的工作量而且人工參與過(guò)多也容易引入很多粗心帶來(lái)的錯(cuò)誤。

再次,由于各個(gè)模塊連接信號(hào)之多導(dǎo)致信號(hào)文件的手寫工作量很大。每個(gè)信號(hào)文件小則幾千行大則上萬(wàn)行信息。而且一旦有信號(hào)連接的變動(dòng)需要相應(yīng)修改多個(gè)模塊的信號(hào)文件。

最后,如果設(shè)計(jì)文件改動(dòng)相應(yīng)的設(shè)計(jì)文件很容易出現(xiàn)哪幾處忘記改動(dòng)的問(wèn)題。

而Perl腳本語(yǔ)言又有著強(qiáng)大的處理文本的能力。將腳本語(yǔ)言應(yīng)用于數(shù)字電路設(shè)計(jì)中,作為設(shè)計(jì)文檔和EDA工具的黏合劑,能夠大大增加設(shè)計(jì)的速度。

具體方法為:使用腳本語(yǔ)言從設(shè)計(jì)文檔中提取有用的信息來(lái)生成想要的Verilog HDL代碼,從而大大減少了IC設(shè)計(jì)者的工作量,并提高了代碼的質(zhì)量。其好處有: (1)很好的設(shè)計(jì)一致性:保證了設(shè)計(jì)概念一旦變動(dòng)即設(shè)計(jì)文檔稍加修改,對(duì)應(yīng)的Verilog HDL代碼就會(huì)相應(yīng)的改變,不需要工程師手動(dòng)改變代碼。 (2)兼容性強(qiáng):該自動(dòng)生成代碼工具中設(shè)置了一個(gè)配置文件,供設(shè)計(jì)工程師的配置修改。對(duì)于不同的項(xiàng)目,通過(guò)修改配置該文件可以直接是代碼相應(yīng)變化,有一定的靈活性。此外,該自動(dòng)生成代碼工具已經(jīng)應(yīng)用于兩個(gè)以上項(xiàng)目中,實(shí)踐證明有很好的兼容性。 (3)代碼維護(hù)方便:對(duì)于設(shè)計(jì)代碼的更新或升級(jí),只需要重新運(yùn)行下該工具即可,不需要一點(diǎn)點(diǎn)該寫代碼。 (4)使用簡(jiǎn)單:將很多腳本集成在一起,使用工具時(shí)只需要運(yùn)行一條命令即可。本文將舉一個(gè)Perl語(yǔ)言在代碼自動(dòng)生成中的應(yīng)用實(shí)例,下圖為一SoC芯片中全芯片的時(shí)鐘控制電路框圖:

15975362-33d7-11eb-a64d-12bb97331649.jpg

時(shí)鐘控制模塊實(shí)現(xiàn)配置PLL參數(shù)、選擇輸出時(shí)鐘源、時(shí)鐘分頻、時(shí)鐘門控、bank切換、輸出時(shí)鐘等功能。3G、4G是系統(tǒng)通訊單元,向時(shí)鐘控制單元申請(qǐng)時(shí)鐘。PLLs是時(shí)鐘源,是時(shí)鐘控制單元的輸入。 時(shí)鐘控制單元有七大主要模塊,分別為時(shí)鐘源控制模塊、bank切換模塊、分頻模塊、時(shí)鐘門控模塊、多路選擇器模塊、寄存器、3G4G時(shí)鐘握手模塊。時(shí)鐘源控制模塊控制時(shí)鐘源的大小、開關(guān)。bank切換模塊使時(shí)鐘控制單元能正常工作在不同的電壓下。

時(shí)鐘控制單元的的工作機(jī)理如下:首先,外部模塊向時(shí)鐘控制單元請(qǐng)求時(shí)鐘,并修改并寫寄存器狀態(tài);時(shí)鐘源控制單元根據(jù)寄存器中的內(nèi)容配置時(shí)鐘源Plls,并提供了所有的時(shí)鐘源。然后,分頻器完成這些時(shí)鐘源預(yù)分頻的操作,并將其作為多路選擇器的時(shí)鐘源。而多路選擇器則從輸入的時(shí)鐘源中選擇輸出主時(shí)鐘。 主時(shí)鐘通過(guò)分頻模塊產(chǎn)生所有的分頻使能信號(hào),這個(gè)過(guò)程中,需根據(jù)寄存器所配置的分頻數(shù)來(lái)輸出不同的頻率的時(shí)鐘。同時(shí),根據(jù)系統(tǒng)的實(shí)時(shí)需求,通過(guò)由SPCU控制的bank選擇器完成門控時(shí)鐘的實(shí)現(xiàn),降低系統(tǒng)的功耗。

以上是時(shí)鐘控制模塊的功能分析,那么如何通過(guò)代碼自動(dòng)生成技術(shù)來(lái)實(shí)現(xiàn)呢? (1)首先,我們把這些模塊梳理下,形成一個(gè)自頂向下的層次結(jié)構(gòu),如下圖。如圖中所示,頂層模塊完成對(duì)底層模塊的連接,底層模塊實(shí)現(xiàn)時(shí)鐘控制單元的功能。

15d57d22-33d7-11eb-a64d-12bb97331649.jpg

針對(duì)代碼自動(dòng)生成問(wèn)題,對(duì)于頂層模塊來(lái)說(shuō),承擔(dān)的功能是自動(dòng)地將底層數(shù)十個(gè)模塊連接起來(lái)。對(duì)于底層模塊來(lái)說(shuō),需要根據(jù)不同的功能定制需求,來(lái)自動(dòng)化地生成所有功能性的代碼,然后被頂層調(diào)用和連接。這樣的話,就存在兩個(gè)問(wèn)題:[1]自動(dòng)生成頂層模塊?[2]自動(dòng)生成底層模塊?

(2)頂層模塊:通常來(lái)說(shuō),對(duì)于一個(gè)復(fù)雜的SoC芯片,會(huì)有萬(wàn)數(shù)量級(jí)的信號(hào)需要進(jìn)行匹配和連接。而能夠自動(dòng)生成的信號(hào)文件中的信號(hào)連接有兩個(gè)特點(diǎn):一是信號(hào)命令規(guī)律性強(qiáng)二是信號(hào)的連接關(guān)系可以從設(shè)計(jì)文件中體現(xiàn)。滿足了這兩點(diǎn),便可以實(shí)現(xiàn)信號(hào)文件的自動(dòng)化。

(3)底層模塊此處即可體現(xiàn)Perl腳本強(qiáng)大的數(shù)據(jù)處理功能,針對(duì)該問(wèn)題,將腳本劃分為三類:提取腳本、生成腳本和集成腳本三種。提取腳本用來(lái)從輸入文件中提取有用的設(shè)計(jì)信息到存儲(chǔ)單元中;生成腳本從存儲(chǔ)單元獲得有用信息來(lái)生成各個(gè)功能模塊的代碼;集成腳本將所有的腳本集成在一個(gè)腳本里,方便統(tǒng)一化使用。以下是代碼生成的腳本流程圖:

15f08298-33d7-11eb-a64d-12bb97331649.jpg

如圖所示,輸入的文件都是excel和文本形式,Perl腳本首先讀取技術(shù)文檔,從中解析出時(shí)鐘模塊所需的連接、頻率、時(shí)鐘域等信息,基于此信息建立一個(gè)數(shù)據(jù)庫(kù)。然后,根據(jù)實(shí)際芯片的具體需求,即配置文件,生成相應(yīng)的自動(dòng)化控制模式和需求。 最終,依據(jù)配置文件和數(shù)據(jù)庫(kù),完成所有所需verilog代碼的生成。需要注意的是,并不是所有的代碼都可以自動(dòng)生成,有些結(jié)構(gòu)特殊的電路,只能通過(guò)手工編寫來(lái)完成。所以,自動(dòng)編寫通常完成較為規(guī)整的、有規(guī)律性的代碼,手工書寫作為補(bǔ)充。這樣即可保證得到高質(zhì)量的代碼。


責(zé)任編輯:lq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Verilog
    +關(guān)注

    關(guān)注

    31

    文章

    1374

    瀏覽量

    114756
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4979

    瀏覽量

    74453
  • 硬件電路
    +關(guān)注

    關(guān)注

    39

    文章

    268

    瀏覽量

    30380

原文標(biāo)題:如何寫出高質(zhì)量Verilog HDL代碼?這一做法值得推薦

文章出處:【微信號(hào):mcu168,微信公眾號(hào):硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    從零開始學(xué)硬件 <2>硬件連接

    硬件除了OceanOS-CM0板外,還需要準(zhǔn)備下載器/燒錄器、調(diào)試仿真器,還有USB分線器(需自行購(gòu)買,如果你電腦的USB接口足夠可以不用分線器)。簡(jiǎn)單說(shuō)下它們的作用:下載器/燒錄器:將寫好的代碼
    發(fā)表于 03-24 01:01

    安川伺服驅(qū)動(dòng)器警報(bào)代碼說(shuō)明

    安川伺服驅(qū)動(dòng)器的警報(bào)代碼通常以 A 開頭(表示警報(bào))或 CPF 開頭(表示操作器通訊錯(cuò)誤),后面跟隨三位數(shù)字或字母組合。每個(gè)代碼對(duì)應(yīng)特定的故障原因,幫助您快速定位問(wèn)題。 為了方便您查閱,我將常見(jiàn)
    的頭像 發(fā)表于 03-13 07:35 ?2250次閱讀
    安川伺服驅(qū)動(dòng)器警報(bào)<b class='flag-5'>代碼</b>說(shuō)明

    80后硬件人 I 青春藏在焊盤里,熱愛(ài)寫在代碼

    導(dǎo)語(yǔ):技術(shù)從來(lái)不是一成不變的教條,而是一場(chǎng)漫長(zhǎng)且充滿驚喜的探索。今天,想和大家聊聊80后硬件工程師,深耕硬件多年,藏在焊盤與代碼里的時(shí)光與感悟。這些年,一直扎根在硬件領(lǐng)域,從一塊簡(jiǎn)單的
    的頭像 發(fā)表于 02-27 17:12 ?1281次閱讀
    80后<b class='flag-5'>硬件</b>人 I 青春藏在焊盤里,熱愛(ài)寫在<b class='flag-5'>代碼</b>中

    Modbus產(chǎn)品腳本編輯器“映射關(guān)系”解釋?映射關(guān)系的地址對(duì)應(yīng)關(guān)系?

    Modbus產(chǎn)品腳本編輯器“映射關(guān)系”解釋?映射關(guān)系的地址對(duì)應(yīng)關(guān)系?
    發(fā)表于 01-20 15:28

    硬件問(wèn)題造成的MCU死機(jī)的原因

    關(guān)于MCU死機(jī)問(wèn)題,近期小編在出差期間遇到多起,且原因不同。所以,今日小白借此機(jī)會(huì)講一講因硬件問(wèn)題造成的MCU死機(jī)。 MCU不良 在遇到死機(jī)問(wèn)題時(shí),已經(jīng)可以判定是硬件原因造成的前提下,大多人的選擇
    發(fā)表于 11-24 08:07

    一文搞懂?RK3588 PCIe:從硬件資源到拆分配置?+?避坑指南(含腦圖)

    與? PHY? 對(duì)應(yīng)關(guān)系 ? RK3588? 的控制器與? PHY? 綁定存在固定規(guī)則,拆分配置前需明確對(duì)應(yīng)關(guān)系: ? ? ? pcie3x4 ( 4Lane ) :僅
    的頭像 發(fā)表于 11-20 18:18 ?4955次閱讀
    一文搞懂?RK3588 PCIe:從<b class='flag-5'>硬件</b>資源到拆分配置?+?避坑指南(含腦圖)

    蜂鳥e203移植要從哪些方面入手,在bsp中哪里修改引腳對(duì)應(yīng)關(guān)系,約束文件?

    蜂鳥e203移植要從哪些方面入手,在bsp中哪里修改引腳對(duì)應(yīng)關(guān)系,約束文件,跪求大神
    發(fā)表于 11-10 07:11

    復(fù)雜的軟件算法硬件IP核的實(shí)現(xiàn)

    代碼編譯為 HDL 的過(guò)程一共分為兩步: (1)C to HASM (2)HASM to HDL 第一步 C to HASM 是將 C 語(yǔ)言描述的算法編譯為一種中間的、與實(shí)際硬件是有一定的對(duì)應(yīng)
    發(fā)表于 10-30 07:02

    代碼如何重塑硬件設(shè)計(jì),AI如何加速創(chuàng)新?

    “ ?TS Circuit 創(chuàng)始人 Sebe 與 Atopile 創(chuàng)始人 Matt 之間非常有意思的一段對(duì)話,討論了代碼如何重塑硬件設(shè)計(jì)及 AI 如何加速創(chuàng)新。非常值得完整的聽(tīng)一遍,用中文重塑了對(duì)話
    的頭像 發(fā)表于 09-06 11:19 ?966次閱讀

    硬件工程師的 “鄙視鏈” 新動(dòng)向:寫代碼的,憑啥瞧不起畫圖的?

    “ ?在海外硬件工程師的世界里,一場(chǎng)關(guān)于設(shè)計(jì)靈魂歸屬的“圣戰(zhàn)”已悄然打響。一邊是信奉“所見(jiàn)即所得”、手握鼠標(biāo)精雕細(xì)琢的“畫圖派”;另一邊,則是高舉“代碼即真理”、用鍵盤召喚電路的“寫碼
    的頭像 發(fā)表于 08-06 11:21 ?3774次閱讀
    <b class='flag-5'>硬件</b>工程師的 “鄙視鏈” 新動(dòng)向:寫<b class='flag-5'>代碼</b>的,憑啥瞧不起畫圖的?

    請(qǐng)問(wèn)cypd3125 I2C硬件地址和HPIv2 組件內(nèi)設(shè)定的slave address地址有什么關(guān)系,必須一致嗎?

    各位大俠: 請(qǐng)問(wèn)cypd3125 I2C硬件地址和HPIv2 組件內(nèi)設(shè)定的slave address地址有什么關(guān)系,必須一致嗎?我把CYPD3125 I2C 地址通過(guò)硬件設(shè)為0x40,感覺(jué)可以找到設(shè)備,但HPIv2 通信有問(wèn)題,
    發(fā)表于 06-03 08:19

    基于STM32藍(lán)牙控制小車系統(tǒng)設(shè)計(jì)(硬件+源代碼+論文)下載

    基于STM32藍(lán)牙控制小車系統(tǒng)設(shè)計(jì)(硬件+源代碼+論文)推薦下載!
    發(fā)表于 05-29 21:45

    CYUSB2014-BZXC USB端點(diǎn)編號(hào)的對(duì)應(yīng)關(guān)系是什么?

    你好客服, 我對(duì) CYUSB2014-BZXC 有疑問(wèn)。 應(yīng)用說(shuō)明(AN68829)第 6 頁(yè)解釋了線程和套接字的概念,但我不明白它們?nèi)绾闻c USB 端點(diǎn)編號(hào)相對(duì)應(yīng)。 既然 CYUSB2014 支持 32 個(gè)端點(diǎn),那么邏輯插座 0 = EP1、邏輯插座 1 = EP2 等是否正確?
    發(fā)表于 05-21 06:14

    CY7C65223-24LTXI的GPIO號(hào)和引腳號(hào)的對(duì)應(yīng)關(guān)系是什么?

    我不知道CY7C65223-24LTXI的GPIO號(hào)和引腳號(hào)的對(duì)應(yīng)關(guān)系。 配置實(shí)用程序的 GPIO 配置窗口顯示 GPIO_00 到 GPIO_10,但當(dāng)我查看數(shù)據(jù)表時(shí),我可以看到 GPIO_2、7
    發(fā)表于 05-19 06:31
    邓州市| 翁牛特旗| 隆回县| 石首市| 天全县| 澄迈县| 自贡市| 杭州市| 沁源县| 襄樊市| 屏东县| 商河县| 隆林| 凤冈县| 濮阳县| 兴和县| 噶尔县| 淳安县| 怀化市| 眉山市| 奉节县| 贵定县| 宜兰县| 平乡县| 灵石县| 大港区| 桃园县| 左贡县| 云龙县| 博客| 华宁县| 禹城市| 章丘市| 崇文区| 牙克石市| 类乌齐县| 东宁县| 安顺市| 华池县| 鸡泽县| 蒙城县|