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

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

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

如何用AI來寫Verilog代碼?

傅里葉的貓 ? 來源:傅里葉的貓 ? 作者:傅里葉的貓 ? 2022-12-09 09:45 ? 次閱讀

最近ChatGPT大火,成功破圈,到底是什么?怎么使用?

簡單說,它是一個(gè)模型,一個(gè)語言模型!

它是以對(duì)話方式與人進(jìn)行交互的AI語言模型!

但它能做的事情太多了,可以用它來寫一封請(qǐng)假郵件:

ca08b8de-7761-11ed-8abf-dac502259ad0.pngimage-20221208210153673

還有人用它來學(xué)英語、向它提各種問題,甚至可以用它來寫程序,很多軟件工程師都嘗試過用它來寫Python、Java編程語言,這里我們就不再嘗試了。

作為FPGA工程師,我們肯定想讓它幫我們寫Verilog!看看效果怎么樣?

ca214c5a-7761-11ed-8abf-dac502259ad0.pngimage-20221208210533770

在代碼后面甚至還有解釋:

ca3e4c42-7761-11ed-8abf-dac502259ad0.pngimage-20221208210631379

完整代碼如下:

//UARTReceiverModule
moduleuart_rx(
inputclk,
inputrx,
outputregrx_done,
outputreg[7:0]rx_data
);

//FSMstates
localparam[1:0]
IDLE=2'b00,
START=2'b01,
DATA=2'b10,
STOP=2'b11;

reg[1:0]state,next_state;
reg[3:0]bit_count;
reg[7:0]rx_shift_reg;

//Initializeoutputs
always@*begin
rx_done=0;
rx_data=0;
end

//Statetransitionlogic
always@(posedgeclk)begin
state<=?next_state;
end

//Statetransitionfunction
always@*begin
case(state)
IDLE:begin
if(rx)next_state=START;
elsenext_state=IDLE;
end
START:begin
if(rx)next_state=DATA;
elsenext_state=IDLE;
end
DATA:begin
if(bit_count==0)next_state=STOP;
elseif(rx)next_state=DATA;
elsenext_state=IDLE;
end
STOP:begin
if(rx)next_state=IDLE;
elsenext_state=STOP;
end
endcase
end

//Outputlogic
always@*begin
case(state)
IDLE:begin
bit_count=4;
rx_shift_reg=0;
end
START:begin
bit_count=3;
end
DATA:begin
bit_count=bit_count-1;
rx_shift_reg={rx_shift_reg[6:0],rx};
end
STOP:begin
rx_done=1;
rx_data=rx_shift_reg;
end
endcase
end

endmodule

雖然沒有驗(yàn)證這個(gè)功能是否正確,但這個(gè)代碼的邏輯看起來應(yīng)該是沒有錯(cuò)的。

于是又嘗試讓它寫一個(gè)信號(hào)處理方向的:FIR抽取濾波器。

ca5a0af4-7761-11ed-8abf-dac502259ad0.png

再寫個(gè)稍微復(fù)雜一點(diǎn)但仍然是標(biāo)準(zhǔn)的協(xié)議:apb轉(zhuǎn)axi-lite的bridge。

ca7b0cd6-7761-11ed-8abf-dac502259ad0.png

完整代碼很長,我也并沒有驗(yàn)過,但大概看下來,功能基本都有。

對(duì)于過于復(fù)雜的,就無能為力了,比如:以太網(wǎng)協(xié)議棧。

但有個(gè)更有意思的現(xiàn)象,當(dāng)我第一次讓它寫以太網(wǎng)協(xié)議棧時(shí),它提示太難了,寫不出來。

把對(duì)話復(fù)位后,再讓它寫,它就會(huì)寫一個(gè)大概的module,里面只有些接口,后面又復(fù)位對(duì)話后再重新讓它寫了,寫出來的程序就更多了。

說明它的學(xué)習(xí)能力一直在增長。

可能現(xiàn)在它的功能還并不是很完善,但作為工程師,看到這么強(qiáng)大的功能,不禁有些感慨,我們的核心競爭力是什么?如果真的有一天,AI可以幫我們寫代碼了,我們該去做什么?

(抖個(gè)機(jī)靈:是不是到時(shí)候只需要驗(yàn)證工程師了?)

最后補(bǔ)充一點(diǎn),這個(gè)網(wǎng)站的注冊是需要一個(gè)國外的手機(jī)號(hào),可能很多人弄不到,所以,如果你有什么有趣的功能想嘗試,可以跟我聯(lián)系,我來幫你試。


審核編輯 :李倩


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

    關(guān)注

    28

    文章

    1351

    瀏覽量

    110243
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    31429

    瀏覽量

    269827
  • 語言模型
    +關(guān)注

    關(guān)注

    0

    文章

    536

    瀏覽量

    10311

原文標(biāo)題:如何用AI來寫Verilog代碼?

文章出處:【微信號(hào):傅里葉的貓,微信公眾號(hào):傅里葉的貓】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Verilog 與 ASIC 設(shè)計(jì)的關(guān)系 Verilog 代碼優(yōu)化技巧

    Verilog與ASIC設(shè)計(jì)的關(guān)系 Verilog作為一種硬件描述語言(HDL),在ASIC設(shè)計(jì)中扮演著至關(guān)重要的角色。ASIC(Application Specific Integrated
    的頭像 發(fā)表于 12-17 09:52 ?227次閱讀

    Verilog與VHDL的比較 Verilog HDL編程技巧

    Verilog 與 VHDL 比較 1. 語法和風(fēng)格 VerilogVerilog 的語法更接近于 C 語言,對(duì)于有 C 語言背景的工程師來說,學(xué)習(xí)曲線較平緩。它支持結(jié)構(gòu)化編程,代碼
    的頭像 發(fā)表于 12-17 09:44 ?277次閱讀

    如何自動(dòng)生成verilog代碼

    介紹幾種自動(dòng)生成verilog代碼的方法。
    的頭像 發(fā)表于 11-05 11:45 ?407次閱讀
    如何自動(dòng)生成<b class='flag-5'>verilog</b><b class='flag-5'>代碼</b>

    Verilog硬件描述語言參考手冊

    一. 關(guān)于 IEEE 1364 標(biāo)準(zhǔn)二. Verilog簡介三. 語法總結(jié)四. 編寫Verilog HDL源代碼的標(biāo)準(zhǔn)五. 設(shè)計(jì)流程
    發(fā)表于 11-04 10:12 ?2次下載

    Verilog語法中運(yùn)算符的用法

    verilog語法中使用以下兩個(gè)運(yùn)算符可以簡化我們的位選擇代碼。
    的頭像 發(fā)表于 10-25 15:17 ?1200次閱讀
    <b class='flag-5'>Verilog</b>語法中運(yùn)算符的用法

    如何利用Verilog-A開發(fā)器件模型

    何用Verilog-A來開發(fā)器件模型在建模領(lǐng)域?qū)⒂葹橹匾=裉炀蛠硪院唵蔚睦觼斫榻B如何開發(fā)一個(gè)Verilog-A Model。
    的頭像 發(fā)表于 10-18 14:16 ?577次閱讀
    如何利用<b class='flag-5'>Verilog</b>-A開發(fā)器件模型

    怎么樣提高verilog代碼編寫水平?

    ,共同進(jìn)步。 歡迎加入FPGA技術(shù)微信交流群14群! 交流問題(一) Q:怎么樣提高verilog代碼編寫水平?Cpu 從事DFT工作。目前僅限于寫一些簡單模塊。自學(xué)的話如何提高verilog編寫水平
    發(fā)表于 09-25 20:05

    FPGA Verilog HDL代碼如何debug?

    ,共同進(jìn)步。 歡迎加入FPGA技術(shù)微信交流群14群! 交流問題(一) Q:Verilog代碼如何debug?最近學(xué)習(xí)fpga,寫了不少verilog,開始思考如何debug的問題!c語言是順序執(zhí)行,而
    發(fā)表于 09-24 19:16

    探討AI編寫代碼技術(shù),以及提高代碼質(zhì)量的關(guān)鍵:靜態(tài)代碼分析工具Perforce Helix QAC &amp; Klocwork

    令軟件開發(fā)人員夜不能寐的事情比比皆是。如今,他們最關(guān)心的問題不再是如何用自己喜歡的語言(C、C++、Erlang、Java 等)表達(dá)最新的算法,而是人工智能(AI)。 本文中,我們將介紹AI編寫
    的頭像 發(fā)表于 06-05 14:10 ?438次閱讀

    何用代碼在運(yùn)行的時(shí)候設(shè)置程序防止被讀出?

    何用代碼在運(yùn)行的時(shí)候設(shè)置程序防止被讀出
    發(fā)表于 06-03 07:24

    扎心靈魂小拷問:有了AI編寫代碼之后,軟件工程師會(huì)被AI取代嗎?

    軟件開發(fā)者們有很多讓他們焦慮的事情。他們最擔(dān)心的不再是如何用他們最喜歡的編程語言(C、C++、Erlang、Java等)表達(dá)最新的算法。相反,這種擔(dān)憂正逐漸被人工智能(AI)所取代。 在這里,我們將探討AI編寫
    的頭像 發(fā)表于 05-24 19:17 ?699次閱讀
    扎心靈魂小拷問:有了<b class='flag-5'>AI</b>編寫<b class='flag-5'>代碼</b>之后,軟件工程師會(huì)被<b class='flag-5'>AI</b>取代嗎?

    verilog調(diào)用模塊端口對(duì)應(yīng)方式

    Verilog中的模塊端口對(duì)應(yīng)方式,并提供示例代碼和詳細(xì)解釋,以幫助讀者更好地理解和應(yīng)用。 首先,我們來了解一下Verilog中的模塊和模塊端口。一個(gè)Verilog模塊被定義為包含一組
    的頭像 發(fā)表于 02-23 10:20 ?1875次閱讀

    verilog function函數(shù)的用法

    Verilog 是一種硬件描述語言 (HDL),主要用于描述數(shù)字電子電路的行為和結(jié)構(gòu)。在 Verilog 中,函數(shù) (Function) 是一種用于執(zhí)行特定任務(wù)并返回一個(gè)值的可重用代碼塊。函數(shù)在
    的頭像 發(fā)表于 02-22 15:49 ?5986次閱讀

    【國產(chǎn)FPGA+OMAPL138開發(fā)板體驗(yàn)】(原創(chuàng))5.FPGA的AI加速源代碼

    FPGA架構(gòu)的優(yōu)化。以下是我寫的一個(gè)簡化版的代碼,用來展示FPGA如何加速AI計(jì)算中的某個(gè)簡單操作(比如矩陣乘法)。 // Verilog代碼,用于FPGA上的
    發(fā)表于 02-12 16:18

    怎么用emac實(shí)現(xiàn)Verilog自動(dòng)連線呢?

    我們在編寫一些比較復(fù)雜的Verilog代碼時(shí),通常需要進(jìn)行大量的手動(dòng)連線工作,這種工作十分容易出錯(cuò),并且在代碼模塊的嵌套層級(jí)較多時(shí),更改里層的一個(gè)代碼
    的頭像 發(fā)表于 01-24 10:03 ?1459次閱讀