利用 ChatGPT-4o 自动化 RTL 设计流程

简介

这个 idea 是我在痛苦的 debugging 的过程中突发奇想,能不能直接利用 ChatGPT-4o 模型自动生成对应功能的 RTL 文件,自动编译生成 wave 文件。于是,我通过测试一个简单的 full adder 电路设计,发现这个流程是完全可以跑通的,因此记录如下。

操作步骤

第一步

ChatGPT-4o 对话框输入以下内容: You should be a Linux terminal, the version is CentOS Linux 7, and Icarus Verilog is installed. I'll type the command and you'll reply with what the terminal should display. I want you to only echo terminal output within a unique block of code, and nothing else. Don't write explanations. Do not type commands unless I instruct you to do. When I need to tell you something in English, I put the text in side curly braces {like this}. My first command is pwd.

返回内容一般为:

第二步

ChatGPT-4o 对话框输入以下内容: mkdir verification; cd verification

第三步

ChatGPT-4o 对话框输入以下内容,确认已经安装 Icarus Verilog: iverilog --version

返回内容一般为:

第四步

ChatGPT-4o 对话框输入以下内容,生成所描述的"adder.v"文件: {In the cuurent folder, create a file named "adder.v". The content of this file is to implement a full adder in verilog HDL language. This full adder has three inputs and two outputs. The three inputs are two data inputs with a bit width of 4 bits, and a carry input from the lower bit. The two outputs are the data result with a bit width of 4 bits and a carry result.}

返回内容一般为,这步可能具体代码不同,但实现功能应一致:

ini 复制代码
module full_adder(
    input [3:0] A,
    input [3:0] B,
    input Cin,
    output [3:0] Sum,
    output Cout
);

    wire [4:0] temp_result;

    // Perform addition including the carry input
    assign temp_result = A + B + Cin;

    // Assign the sum and carry outputs
    assign Sum = temp_result[3:0];
    assign Cout = temp_result[4];

endmodule

第五步

ChatGPT-4o 对话框输入以下内容,生成所描述的"top_adder.v"文件: {In the current folder, create a file called "top_addr.v". The content of this file is to use the verilog HDL language to implement a top layer to verify the full adder just generated above. In this testbench, it is necessary to instantiate the design of the full adder. The testbench needs to contain the statement to generate the vcd wave file.}

返回内容为:

ini 复制代码
`timescale 1ns/1ps

module top_addr;

    reg [3:0] A;
    reg [3:0] B;
    reg Cin;
    wire [3:0] Sum;
    wire Cout;

    // Instantiate the full_adder module
    full_adder uut (
        .A(A),
        .B(B),
        .Cin(Cin),
        .Sum(Sum),
        .Cout(Cout)
    );

    initial begin
        $dumpfile("waveform.vcd"); // Generate VCD file
        $dumpvars(0, top_addr);

        // Test cases
        A = 4'b0001; B = 4'b0010; Cin = 1'b0; #10;
        A = 4'b0101; B = 4'b0110; Cin = 1'b1; #10;
        A = 4'b1111; B = 4'b0001; Cin = 1'b0; #10;
        A = 4'b1001; B = 4'b1001; Cin = 1'b1; #10;

        $finish;
    end

endmodule

第六步

ChatGPT-4o 对话框输入以下内容,生成所描述的"Makefile"文件: {Under the current folder, create a file named "Makefile", where the commands include compile. The compile command will use iverilog to compile the "adder.v" file and the "top_adder.v" file you wrote, and generate a wave file named "wave".}

返回内容为:

makefile 复制代码
compile:
	iverilog -o wave adder.v top_addr.v

第七步

ChatGPT-4o 对话框输入以下内容:make compile

返回内容为:

第八步

ChatGPT-4o 对话框输入以下内容:vvp -n wave -lxt2

返回内容为:

第九步

ChatGPT-4o 对话框输入以下内容:{download waveform.vcd for me}

由于 ChatGPT 是对话形式的界面,目前还没测试直接生成波形图,所以把波形文件下载了下来。

返回内容为:

最后在自己的系统里,利用 GtkWave 成功生成了波形图,yeah !!

注意

第一,安装的软件不能是 VCS,Verdi 这类闭源软件,所以我选择了 Icarus Verilog;第二,我这里没让 ChatGPT 写太复杂的 verilog HDL 代码,可能相对复杂的代码需要 debug 一下,这也可以交给 ChatGPT 做(我猜的),后面真正的全自动流程化 RTL 设计还要再打磨一下,但至少这次把流程跑通了,yeah !!!

相关推荐
文心快码 Baidu Comate9 分钟前
Comate Spec模式实测:让AI编程更精准可靠
人工智能·ai编程·文心快码·ai编程助手
疾风sxp9 分钟前
nl2sql技术实现自动sql生成
人工智能·word2vec
阿星AI工作室12 分钟前
让gemini3做的网页拥有支付功能,访客变付费用户!附提示词
人工智能
LaughingZhu24 分钟前
Product Hunt 每日热榜 | 2025-12-10
人工智能·经验分享·深度学习·神经网络·产品运营
老蒋新思维27 分钟前
创客匠人 2025 万人峰会核心:AI 驱动知识产品变现革新
大数据·人工智能·网络协议·tcp/ip·创始人ip·创客匠人·知识变现
音沐mu.28 分钟前
【34】犬类品种数据集(有v5/v8模型)/YOLO犬类品种检测
人工智能·yolo·目标检测·犬类品种数据集·犬类品种检测
Want59529 分钟前
Vibe Coding实战案例:利用Qoder打造个人知识库AI助手,并上线魔搭创空间
人工智能·aigc
多则惑少则明35 分钟前
AI测试、大模型测试(七)Java主流大模型框架技术
人工智能·ai测试·ai大模型测试
xinyu_Jina36 分钟前
人像精灵 AI 智能相馆:特征解耦与条件生成对抗网络(cGANs)在人像重构中的应用
人工智能·生成对抗网络·重构
木卫二号Coding39 分钟前
第五十七篇-ComfyUI+V100-32G+安装SD1.5
人工智能