利用 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 !!!

相关推荐
_张一凡28 分钟前
【多模态模型学习】从零手撕一个Vision Transformer(ViT)模型实战篇
人工智能·深度学习·transformer
Westward-sun.36 分钟前
OpenCV 实战:银行卡号识别系统(基于模板匹配)
人工智能·opencv·计算机视觉
网安INF1 小时前
【论文阅读】-《TtBA: Two-third Bridge Approach for Decision-Based Adversarial Attack》
论文阅读·人工智能·神经网络·对抗攻击
努力也学不会java1 小时前
【缓存算法】一篇文章带你彻底搞懂面试高频题LRU/LFU
java·数据结构·人工智能·算法·缓存·面试
BPM6662 小时前
2026流程管理软件选型指南:从Workflow、BPM到AI流程平台(架构+实战)
人工智能·架构
金融小师妹2 小时前
基于多模态宏观建模与历史序列对齐:原油能源供给冲击的“类1970年代”演化路径与全球应对机制再评估
大数据·人工智能·能源
JamesYoung79712 小时前
OpenClaw小龙虾如何系统性节省Token,有没有可落地的方案?
人工智能
播播资源2 小时前
OpenAI2026 年 3 月 18 日最新 gpt-5.4-nano模型:AI 智能体的“神经末梢”,以极低成本驱动高频任务
大数据·人工智能·gpt
Sendingab2 小时前
2026 年 AI 数字人口播新趋势:智能体 Agent 将如何重构短视频内容生产与营销
人工智能·重构·音视频