最近ChatGPT大火,成功破圈,到底是什么?怎么使用?
簡(jiǎn)單說(shuō),它是一個(gè)模型,一個(gè)語(yǔ)言模型!
它是以對(duì)話方式與人進(jìn)行交互的AI語(yǔ)言模型!
但它能做的事情太多了,可以用它來(lái)寫一封請(qǐng)假郵件:
image-20221208210153673
還有人用它來(lái)學(xué)英語(yǔ)、向它提各種問(wèn)題,甚至可以用它來(lái)寫程序,很多軟件工程師都嘗試過(guò)用它來(lái)寫Python、Java等編程語(yǔ)言,這里我們就不再嘗試了。
作為FPGA工程師,我們肯定想讓它幫我們寫Verilog!看看效果怎么樣?
,時(shí)長(zhǎng)00:23
[ ]
image-20221208210533770
在代碼后面甚至還有解釋:
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ò)的。
于是又嘗試讓它寫一個(gè)信號(hào)處理方向的:FIR抽取濾波器。
再寫個(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)我第一次讓它寫以太網(wǎng)協(xié)議棧時(shí),它提示太難了,寫不出來(lái)。
把對(duì)話復(fù)位后,再讓它寫,它就會(huì)寫一個(gè)大概的module,里面只有些接口,后面又復(fù)位對(duì)話后再重新讓它寫了,寫出來(lái)的程序就更多了。
說(shuō)明它的學(xué)習(xí)能力一直在增長(zhǎng)。
可能現(xiàn)在它的功能還并不是很完善,但作為工程師,看到這么強(qiáng)大的功能,不禁有些感慨,我們的核心競(jìng)爭(zhēng)力是什么?如果真的有一天,AI可以幫我們寫代碼了,我們?cè)撊プ鍪裁矗?/p>
(抖個(gè)機(jī)靈:是不是到時(shí)候只需要驗(yàn)證工程師了?)
最后補(bǔ)充一點(diǎn),這個(gè)網(wǎng)站的注冊(cè)是需要一個(gè)國(guó)外的手機(jī)號(hào),可能很多人弄不到,所以,如果你有什么有趣的功能想嘗試,可以跟我聯(lián)系,我來(lái)幫你試。
-
Verilog
+關(guān)注
關(guān)注
28文章
1351瀏覽量
110141 -
AI
+關(guān)注
關(guān)注
87文章
31027瀏覽量
269363 -
代碼
+關(guān)注
關(guān)注
30文章
4797瀏覽量
68707 -
ChatGPT
+關(guān)注
關(guān)注
29文章
1563瀏覽量
7787
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論