衡阳派盒市场营销有限公司

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

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

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

ChatGPT在后端設(shè)計中有什么應(yīng)用?

jf_tpHP8OJR ? 來源:集成電路設(shè)計及EDA教程 ? 2023-03-07 09:23 ? 次閱讀

ChatGPT在后端設(shè)計中有什么應(yīng)用?ChatGPT懂后端EDA工具么?

本以為ChatGPT對于IC后端設(shè)計幫助應(yīng)該不大,畢竟它非常依賴EDA工具,它對于EDA工具這種非常專業(yè)的、非常Custom的東西了解和訓(xùn)練的數(shù)據(jù)應(yīng)該不多,所以可能幫不上什么忙。

所以我在基本后端知識、EDA工具的使用方面問了ChatGPT,我們看一下它的回復(fù),整體的結(jié)果還是有點(diǎn)超出我的想象的。

1、后端中的一些知識

42538534-bc7d-11ed-bfe3-dac502259ad0.png

從中可以看出工具給的回復(fù)還是有一些參考性的,從中我們能找到一些想要的結(jié)果。

2、ChatGPT對于EDA工具以及Flow的理解

從下面的回復(fù)中可以看出ChatGPT對于DC做綜合的流程還是有一個大概的了解的,且說的內(nèi)容也都是大體正確的,某些命令可能有些問題(比如讀入時序約束文件一般用read_sdc而非read_file,設(shè)置周期也是在sdc里面創(chuàng)建clock或者generate clock,而非set_clock_period),其他的大問題基本上沒啥。

問:麻煩寫一個用Synopsys公司的design compiler軟件做邏輯綜合的教程

ChatGPT的回答:

好的,下面是一個使用Synopsys公司的Design Compiler軟件進(jìn)行邏輯綜合的簡單教程。

步驟1:準(zhǔn)備設(shè)計文件和約束文件

在使用Design Compiler進(jìn)行邏輯綜合之前,必須準(zhǔn)備好設(shè)計文件和約束文件。設(shè)計文件通常是Verilog或VHDL代碼,而約束文件包含時序和其他綜合約束。確保這些文件在同一個目錄下,并且已經(jīng)準(zhǔn)備好進(jìn)行綜合。

步驟2:啟動Design Compiler

打開終端窗口,輸入dc_shell命令啟動Design Compiler。dc_shell是Design Compiler的主要交互式控制臺。在dc_shell控制臺中,可以輸入各種命令,例如編譯、優(yōu)化、綜合等。

步驟3:設(shè)置工作目錄和綜合庫

在Design Compiler中,必須指定工作目錄和綜合庫。工作目錄是當(dāng)前正在使用的目錄。使用cd命令更改工作目錄。綜合庫包含所有必要的庫文件,例如模擬模型、物理庫和邏輯庫。使用以下命令將綜合庫添加到Design Compiler中:

set target_library

其中,library_name是綜合庫名稱。可以使用list_libraries命令列出所有可用的庫。例如,使用以下命令列出所有庫:

list_libraries

步驟4:讀取設(shè)計文件和約束文件

使用以下命令在Design Compiler中讀取設(shè)計文件和約束文件:

read_file

read_file

其中,design_file_name是設(shè)計文件的名稱,constraint_file_name是約束文件的名稱。如果文件位于當(dāng)前工作目錄中,則不需要輸入完整路徑。

步驟5:綜合設(shè)計

使用以下命令對設(shè)計進(jìn)行邏輯綜合:

compile -map_effort high -area_effort high

其中,top_module_name是頂層模塊的名稱。map_effort和area_effort參數(shù)控制綜合的時間和面積的優(yōu)化程度。通常,將它們設(shè)置為“high”可以獲得最佳的綜合結(jié)果。

步驟6:分析綜合結(jié)果

使用以下命令分析綜合結(jié)果:

report_area

report_timing

report_power

這些命令將分別顯示面積、時序和功耗報告。在綜合完成后,應(yīng)該始終檢查這些報告,以確保綜合結(jié)果符合要求。

步驟7:保存綜合結(jié)果

使用以下命令將綜合結(jié)果保存為Verilog網(wǎng)表文件:

write_verilog

其中,netlist_file_name是要保存的網(wǎng)表文件名。

這是一個簡單的使用Synopsys公司的Design Compiler軟件進(jìn)行邏輯綜合的教程。請注意,這只是一個基本的示例,并請注意,這只是一個基本的示例,并且Design Compiler擁有許多功能和選項(xiàng),可以根據(jù)需要進(jìn)行自定義和調(diào)整。在實(shí)際使用中,您可能需要更深入地了解Design Compiler的功能和選項(xiàng),并調(diào)整綜合設(shè)置以獲得最佳結(jié)果。

以下是一些有用的Design Compiler命令和選項(xiàng):

set_input_delay:設(shè)置輸入延遲

set_output_delay:設(shè)置輸出延遲

set_clock_period:設(shè)置時鐘周期

set_max_area:設(shè)置最大面積限制

set_max_fanout:設(shè)置最大負(fù)載限制

set_max_delay:設(shè)置最大延遲限制

set_dont_touch:設(shè)置不綜合的信號或模塊

此外,Design Compiler還提供了許多優(yōu)化選項(xiàng),例如綜合策略、綜合限制和優(yōu)化級別等。根據(jù)實(shí)際需求進(jìn)行適當(dāng)調(diào)整可以獲得更好的綜合結(jié)果。

最后,請注意Design Compiler是一款商業(yè)軟件,需要購買許可證才能使用。此外,Design Compiler還有許多其他工具和插件,例如PrimeTime和Formality等,可以進(jìn)行時序分析和形式驗(yàn)證等操作。如果需要使用這些工具,請參閱Synopsys公司的官方文檔以獲取更多信息

3、后端工具內(nèi)的tcl腳本的編寫

426d7d5e-bc7d-11ed-bfe3-dac502259ad0.png428c90fe-bc7d-11ed-bfe3-dac502259ad0.png

ChatGPT給出的腳本:

# 定義一個字典變量用于存儲reference及其對應(yīng)的instance個數(shù)
set ref_count_dict {}


# 獲取設(shè)計中所有cell的實(shí)例
set all_cells [get_cells -hier *]


# 遍歷所有cell實(shí)例
foreach cell $all_cells {
  # 獲取cell的reference名稱
  set ref_name [get_attribute REF_NAME $cell]
  # 如果該reference名稱不存在于字典變量中,初始化為0
  if {![info exists ref_count_dict($ref_name)]} {
    set ref_count_dict($ref_name) 0
  }
  # 對應(yīng)reference名稱的instance個數(shù)加1
  set ref_count_dict($ref_name) [expr $ref_count_dict($ref_name) + 1]
}


# 按照instance個數(shù)從大到小排序輸出
puts "Reference	Count"
foreach {ref_name count} [lsort -integer -decreasing [array get ref_count_dict]] {
  puts "$ref_name	$count"
}

從中能看出幾個問題:

1、ChatGPT混用了字典和array,下面用的是array get,前面卻說的是字典dict。

2、另外在get_cells的時候需要把hier的Cell給濾掉,工具沒有濾掉。

3、對于get_cells得到的結(jié)果,應(yīng)該用foreach_in_collection去循環(huán)而非foreach。

4、對于工具native的命令,ChatGPT可能會用錯,get_attr $cell ref_name才是正確的用法

5、在用lsort對ref list按照個數(shù)排序時,它沒有指定-stride和-index

下面是ChatGPT給出的tcl腳本和我修改后的版本的對比:

42bc2102-bc7d-11ed-bfe3-dac502259ad0.png

下面是我修改后的腳本:

# 不用定義字典,用array即可,且也不用定義,直接用
           


# 獲取設(shè)計中所有cell的實(shí)例
set all_cells [get_cells -hier * -filter "is_hierarchical==false"]


# 遍歷所有cell實(shí)例
foreach_in_collection cell $all_cells {
  # 獲取cell的reference名稱
  set ref_name [get_attribute $cell ref_name]
  # 如果該reference名稱不存在于字典變量中,初始化為0
  if {![info exists ref_count_dict($ref_name)]} {
    set ref_count_dict($ref_name) 0
  }
  # 對應(yīng)reference名稱的instance個數(shù)加1
  set ref_count_dict($ref_name) [expr $ref_count_dict($ref_name) + 1]
}


# 按照instance個數(shù)從大到小排序輸出
puts "Reference	Count"
foreach {ref_name count} [lsort -stride 2 -index 1 -integer -decreasing [array get ref_count_dict]] {
  puts "$ref_name	$count"
}

我修改之后的腳本的執(zhí)行結(jié)果:

42d5fe10-bc7d-11ed-bfe3-dac502259ad0.png

4、總結(jié)與展望

后邊我又試了其他幾個腳本編程的Case,ChatGPT給出的結(jié)果當(dāng)然會有各種各樣的問題,畢竟關(guān)于工具native的命令ChatGPT沒有那么多Training的樣本,但是它給出的結(jié)果還是有點(diǎn)出乎我的以外的,具有一定的參考性的,整體的思路還是比較正確的。

發(fā)散一下,再過幾年,在用更多后端EDA工具的UG以及相關(guān)腳本對GPT訓(xùn)練的話,那么ChatGPT可以做的事情肯定會非常非常多,前途不可限量!!!!如果把ChatGPT嵌入到EDA工具中或者Solvnet/Cadence home上,那么對于Designer而言會有非常大的幫助。也許User只需要做一些簡單的描述,工具就能很快給出參考的腳本或者對用戶提出的問題給出參考的解決方案。






審核編輯:劉清

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

    關(guān)注

    4

    文章

    268

    瀏覽量

    31941
  • Verilog語言
    +關(guān)注

    關(guān)注

    0

    文章

    113

    瀏覽量

    8309
  • VHDL源碼
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    1199
  • ChatGPT
    +關(guān)注

    關(guān)注

    29

    文章

    1570

    瀏覽量

    8067

原文標(biāo)題:ChatGPT在后端設(shè)計中有什么應(yīng)用?ChatGPT懂后端EDA工具么?

文章出處:【微信號:集成電路設(shè)計及EDA教程,微信公眾號:集成電路設(shè)計及EDA教程】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    【國產(chǎn)FPGA+OMAPL138開發(fā)板體驗(yàn)】(原創(chuàng))6.FPGA連接ChatGPT 4

    的復(fù)雜系統(tǒng),然后將其映射到FPGA上運(yùn)行。FPGA通常與CPU、GPU等并行處理單元一起工作,通過網(wǎng)絡(luò)接口與后端服務(wù)器通信。然而,如果編寫一個FPGA配置以模擬與ChatGPT4 API通信的過程
    發(fā)表于 02-14 21:58

    在FPGA設(shè)計中是否可以應(yīng)用ChatGPT生成想要的程序呢

    當(dāng)下AI人工智能崛起,很多開發(fā)領(lǐng)域都可看到ChatGPT的身影,F(xiàn)PGA設(shè)計中,是否也可以用ChatGPT輔助設(shè)計呢?
    發(fā)表于 03-28 23:41

    OpenAI 深夜拋出王炸 “ChatGPT- 4o”, “她” 來了

    當(dāng)?shù)貢r間5月13日OpenAI推出ChatGPT-4o,代表了人工智能向前邁出的一大步。在GPT-4turbo的強(qiáng)大基礎(chǔ)上,這種迭代擁有顯著的改進(jìn)。在發(fā)布會的演示中,OpenAI展示該模型的高級
    發(fā)表于 05-27 15:43

    chatGPT幫我寫硬件代碼,是懂行的,好助手!#chatgpt #物聯(lián)網(wǎng)開發(fā) #python開發(fā)板

    ChatGPT
    蘇州煜瑛微電子科技有限公司
    發(fā)布于 :2023年02月17日 15:27:42

    ChatGPT對話語音識別

    ChatGPT
    YS YYDS
    發(fā)布于 :2023年05月30日 22:13:10

    科技大廠競逐AIGC,中國的ChatGPT在哪?

    最近,AI(人工智能)圈一股以“ChatGPT”為核心的熱潮從美國“硅谷”涌入中國。 2022年11月底,初創(chuàng)公司OpenAI發(fā)布了名為ChatGPT的對話式聊天機(jī)器人模型,一經(jīng)推出,便在網(wǎng)絡(luò)上
    發(fā)表于 03-03 14:28

    TIA電路在后端加濾波器的時候看到方波變形的情況怎么解決?

    大家好,我在TIA電路的時候,在后端加濾波器的時候看到方波變形的情況。 multisim仿真下的情況 設(shè)計的濾波器是1k為中心頻率,通帶是500hz,阻帶是10k,下圖是用TINA做的原理圖,仿真也是變形 是相位延時太高導(dǎo)致?
    發(fā)表于 11-15 08:28

    后端協(xié)同的時鐘樹設(shè)計方法

    提出一種新的高平衡、高可靠性的前端可控時鐘樹設(shè)計方法,解決時鐘樹需要在后端工具中多次反復(fù)以達(dá)到滿足性能和功耗要求的問題。闡述了從前端優(yōu)化和后端約束2個方面入手解
    發(fā)表于 04-21 09:06 ?26次下載

    后端系統(tǒng),后端系統(tǒng)是什么意思

    后端系統(tǒng),后端系統(tǒng)是什么意思 “后端系統(tǒng)”從寬泛的角度上講是指向用戶提供數(shù)據(jù)的服務(wù)器、超級服務(wù)器、群集系統(tǒng)、中程系統(tǒng)以及
    發(fā)表于 04-06 17:21 ?3692次閱讀

    數(shù)字后端基本概念介紹

    今天要介紹的數(shù)字后端基本概念是boundary cell,也被稱為endcap Cell。Endcap是一種特殊的標(biāo)準(zhǔn)單元。在后端物理設(shè)計中,除了與,非,或等一些常見的標(biāo)準(zhǔn)單元外,還有一些特殊的物理單元(physical cell),它們通常沒有邏輯電路,
    的頭像 發(fā)表于 03-16 11:10 ?2.3w次閱讀
    數(shù)字<b class='flag-5'>后端</b>基本概念介紹

    virtIO中有兩種方式控制前后端的notify

    在vring_avail和vring_used的flags字段,控制前后端的通信。vring_used中的flags用于通知driver端,當(dāng)add一個buffer的時候不用notify后端。而vring_avail中的flags用于通知qemu端,當(dāng)消費(fèi)一個buffer
    的頭像 發(fā)表于 07-06 15:18 ?4410次閱讀
    virtIO<b class='flag-5'>中有</b>兩種方式控制前<b class='flag-5'>后端</b>的notify

    學(xué)后端的學(xué)前端有必要嗎?

    你好,主要想問你一些學(xué)習(xí)方式。我想從事后端方向,但是現(xiàn)在后端懂前端已經(jīng)是很常見的了吧。所以我想有空也接觸一下前端。現(xiàn)在不知道前端應(yīng)該從哪里入手,看了星球的知識路線挺長的,感覺應(yīng)該是為前端選手量身打造
    的頭像 發(fā)表于 05-05 16:52 ?888次閱讀

    ChatGPT原理 ChatGPT模型訓(xùn)練 chatgpt注冊流程相關(guān)簡介

    ChatGPT注冊沒有外國手機(jī)號驗(yàn)證怎么辦? ChatGPT作為近期火爆網(wǎng)絡(luò)的AI項(xiàng)目,受到了前所未有的關(guān)注。我們可以與AI機(jī)器人實(shí)時聊天,獲得問題的答案。但受ChatGPT服務(wù)器及相關(guān)政策
    的頭像 發(fā)表于 12-06 16:28 ?954次閱讀
    <b class='flag-5'>ChatGPT</b>原理 <b class='flag-5'>ChatGPT</b>模型訓(xùn)練 <b class='flag-5'>chatgpt</b>注冊流程相關(guān)簡介

    模擬后端是什么意思

    模擬后端,在軟件開發(fā)和測試領(lǐng)域,通常是指使用工具或技術(shù)來模擬實(shí)際后端服務(wù)的行為。這樣做的主要目的是在項(xiàng)目開發(fā)過程中,當(dāng)后端服務(wù)還未就緒或暫時無法訪問時,前端或其他依賴后端的系統(tǒng)能夠繼續(xù)
    的頭像 發(fā)表于 03-15 15:58 ?732次閱讀
    百家乐官网百家乐官网技巧| 百家乐官网代理占成| 百家乐官网游戏开发软件| 黄金城百家乐手机版| 百家乐官网稳赢投资法| 博狗娱乐城注册| 百家乐鸿泰棋牌| 博网百家乐官网现金网| 威尼斯人娱乐注册| 易胜博百家乐输| 金沙百家乐官网现金网| 太阳城娱乐小郭| 百家乐玩法及细则| 百家乐官网对子计算方法| 红桃K百家乐的玩法技巧和规则| 百家乐官网官| 皇冠网热门小说| 闲和庄百家乐的玩法技巧和规则 | 百家乐官网新规则| 娱乐城源码| 百家乐平六亿财富网| 百家乐官网庄闲路| 邵阳县| sz新全讯网xb112| 娱乐城百家乐怎么样| 澳门百家乐官网真人斗地主 | 海王星百家乐官网技巧| 博彩娱乐网| 二八杠麻将做记号| 注册百家乐送彩金 | 属猪与属狗 做生意| 大发888官网客服| 百家乐太阳城| 威斯汀百家乐官网的玩法技巧和规则 | 威尼斯人娱乐网注册| 澳门百家乐必杀技| 金木棉百家乐官网网络破解| 威尼斯人娱乐平台注册| 圣淘沙百家乐娱乐城| 木棉百家乐官网的玩法技巧和规则| 百家乐官网合理的投注法|