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

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

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

用AI來(lái)寫(xiě)Verilog代碼能行嗎

jf_78858299 ? 來(lái)源:傅里葉的貓 ? 作者:張大俠 ? 2023-05-05 16:02 ? 次閱讀

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

簡(jiǎn)單說(shuō),它是一個(gè)模型,一個(gè)語(yǔ)言模型!

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

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

圖片

image-20221208210153673

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

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

,時(shí)長(zhǎng)00:23

[ ]

圖片

image-20221208210533770

在代碼后面甚至還有解釋?zhuān)?/p>

圖片

image-20221208210631379

完整代碼如下:

// UART Receiver Module
module uart_rx(
  input clk,
  input rx,
  output reg rx_done,
  output reg [7:0] rx_data
);

// FSM states
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;

// Initialize outputs
always @* begin
  rx_done = 0;
  rx_data = 0;
end

// State transition logic
always @(posedge clk) begin
  state <= next_state;
end

// State transition function
always @* begin
  case (state)
    IDLE: begin
      if (rx) next_state = START;
      else next_state = IDLE;
    end
    START: begin
      if (rx) next_state = DATA;
      else next_state = IDLE;
    end
    DATA: begin
      if (bit_count == 0) next_state = STOP;
      else if (rx) next_state = DATA;
      else next_state = IDLE;
    end
    STOP: begin
      if (rx) next_state = IDLE;
      else next_state = STOP;
    end
  endcase
end

// Output logic
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

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

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

圖片

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

圖片

完整代碼很長(zhǎng),我也并沒(méi)有驗(yàn)過(guò),但大概看下來(lái),功能基本都有。

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

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

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

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

可能現(xiàn)在它的功能還并不是很完善,但作為工程師,看到這么強(qiáng)大的功能,不禁有些感慨,我們的核心競(jìng)爭(zhēng)力是什么?如果真的有一天,AI可以幫我們寫(xiě)代碼了,我們?cè)撊プ鍪裁矗?/p>

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

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(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)注

    28

    文章

    1335

    瀏覽量

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

    關(guān)注

    87

    文章

    29368

    瀏覽量

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

    關(guān)注

    30

    文章

    4695

    瀏覽量

    68080
  • ChatGPT
    +關(guān)注

    關(guān)注

    28

    文章

    1525

    瀏覽量

    7249
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    普通運(yùn)放+晶體管實(shí)現(xiàn)100V,4M的信號(hào)輸出能行嗎?

    請(qǐng)問(wèn)普通運(yùn)放+晶體管實(shí)現(xiàn)100V,4M的信號(hào)輸出能行嗎
    發(fā)表于 09-04 06:17

    CC2530與5V供電超聲波測(cè)距,能行嗎?

    我想用CC2530與5V供電的超聲波模塊相連來(lái)測(cè)距,能行嗎?2530芯片不會(huì)燒掉吧?
    發(fā)表于 03-15 16:46

    在家里自學(xué)單片機(jī)硬件設(shè)計(jì)能行嗎?

    本帖最后由 dsl7410 于 2016-9-18 21:00 編輯 沒(méi)有工具可以把設(shè)計(jì)好的PCB圖做成實(shí)體的PCB,能行嗎
    發(fā)表于 09-18 20:22

    28069時(shí)鐘內(nèi)部的晶振能行嗎

    在使用到DSP的CAN時(shí),有些文檔提到,最好使用外接精確的晶振,最好不要使用內(nèi)部晶振,在28069上存在這個(gè)問(wèn)題嗎,如果使用28069的can模塊,內(nèi)部的晶振能行嗎
    發(fā)表于 11-27 14:44

    LH560A“你能行嗎?祝你成功”語(yǔ)言集成電路圖

    LH560A“你能行嗎?祝你成功”語(yǔ)言集成電路圖
    發(fā)表于 03-31 17:06 ?1159次閱讀
    LH560A“你<b class='flag-5'>能行嗎</b>?祝你成功”語(yǔ)言集成電路圖

    verilog_代碼資料

    verilog_代碼資料,非常實(shí)用的代碼示例。
    發(fā)表于 02-18 15:00 ?37次下載

    verilog代碼規(guī)范

    verilog代碼規(guī)范,學(xué)會(huì)寫(xiě)代碼還不行,我們需要更加的規(guī)范。
    發(fā)表于 03-25 14:43 ?24次下載

    8051 verilog代碼

    8051 verilog代碼分享,有需要的下來(lái)看看。
    發(fā)表于 05-24 09:45 ?0次下載

    Verilog 入門(mén)的實(shí)例代碼

    Verilog 入門(mén)的實(shí)例代碼,有需要的下來(lái)看看
    發(fā)表于 05-24 10:03 ?20次下載

    verilog_代碼

    verilog_代碼分享,有需要的朋友下來(lái)看看。
    發(fā)表于 05-24 10:03 ?12次下載

    Python國(guó)產(chǎn)庫(kù)推薦之musicpy:讓你代碼來(lái)寫(xiě)音樂(lè)

    你想過(guò)代碼來(lái)寫(xiě)音樂(lè)嗎?這里給大家介紹一個(gè)國(guó)人寫(xiě)的庫(kù) musicpy,讓你簡(jiǎn)潔的語(yǔ)法通過(guò)樂(lè)理邏輯寫(xiě)出優(yōu)美的音樂(lè)。 這個(gè)庫(kù)可以讓你非常簡(jiǎn)潔
    的頭像 發(fā)表于 12-16 11:26 ?1585次閱讀

    什么樣的Verilog代碼風(fēng)格是好的風(fēng)格?

    寫(xiě)代碼是給別人和多年后的自己看的。 關(guān)于Verilog代碼設(shè)計(jì)的一些風(fēng)格和方法之前也寫(xiě)過(guò)一些Verilog有什么奇技淫巧?
    的頭像 發(fā)表于 10-24 15:23 ?1437次閱讀

    如何用AI來(lái)寫(xiě)Verilog代碼

    可能現(xiàn)在它的功能還并不是很完善,但作為工程師,看到這么強(qiáng)大的功能,不禁有些感慨,我們的核心競(jìng)爭(zhēng)力是什么?如果真的有一天,AI可以幫我們寫(xiě)代碼了,我們?cè)撊プ鍪裁矗?/div>
    的頭像 發(fā)表于 12-09 09:45 ?1593次閱讀

    Verilog邊沿檢測(cè)的基本原理和代碼實(shí)現(xiàn)

    本文將從Verilog和邊沿檢測(cè)的基本概念入手,介紹Verilog邊沿檢測(cè)的原理和應(yīng)用代碼示例。
    的頭像 發(fā)表于 05-12 17:05 ?3469次閱讀
    <b class='flag-5'>Verilog</b>邊沿檢測(cè)的基本原理和<b class='flag-5'>代碼</b>實(shí)現(xiàn)

    如何在VScode中用AI補(bǔ)全V/SV代碼呢?

    昨天群里小伙伴說(shuō)在VScode中用AI寫(xiě)verilog效果很好。小編以前編輯代碼都是gvim。抱著學(xué)習(xí)的心態(tài),我在linux下嘗試了下V
    的頭像 發(fā)表于 08-03 10:24 ?3122次閱讀
    如何在VScode中用<b class='flag-5'>AI</b>補(bǔ)全V/SV<b class='flag-5'>代碼</b>呢?