0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用AI来写Verilog代码能行吗

jf_78858299 来源:傅里叶的猫 作者:张大侠 2023-05-05 16:02 次阅读

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

简单说,它是一个模型,一个语言模型!

它是以对话方式与人进行交互的AI语言模型!

但它能做的事情太多了,可以用它来写一封请假邮件:

图片

image-20221208210153673

还有人用它来学英语、向它提各种问题,甚至可以用它来写程序,很多软件工程师都尝试过用它来写PythonJava编程语言,这里我们就不再尝试了。

作为FPGA工程师,我们肯定想让它帮我们写Verilog!看看效果怎么样?

,时长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

虽然没有验证这个功能是否正确,但这个代码的逻辑看起来应该是没有错的。

于是又尝试让它写一个信号处理方向的:FIR抽取滤波器

图片

再写个稍微复杂一点但仍然是标准的协议:apb转axi-lite的bridge。

图片

完整代码很长,我也并没有验过,但大概看下来,功能基本都有。

对于过于复杂的,就无能为力了,比如:以太网协议栈。

但有个更有意思的现象,当我第一次让它写以太网协议栈时,它提示太难了,写不出来。

把对话复位后,再让它写,它就会写一个大概的module,里面只有些接口,后面又复位对话后再重新让它写了,写出来的程序就更多了。

说明它的学习能力一直在增长。

可能现在它的功能还并不是很完善,但作为工程师,看到这么强大的功能,不禁有些感慨,我们的核心竞争力是什么?如果真的有一天,AI可以帮我们写代码了,我们该去做什么?

(抖个机灵:是不是到时候只需要验证工程师了?)

最后补充一点,这个网站的注册是需要一个国外的手机号,可能很多人弄不到,所以,如果你有什么有趣的功能想尝试,可以跟我联系,我来帮你试。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Verilog
    +关注

    关注

    28

    文章

    1351

    浏览量

    110090
  • AI
    AI
    +关注

    关注

    87

    文章

    30844

    浏览量

    269001
  • 代码
    +关注

    关注

    30

    文章

    4786

    浏览量

    68568
  • ChatGPT
    +关注

    关注

    29

    文章

    1560

    浏览量

    7631
收藏 人收藏

    评论

    相关推荐

    普通运放+晶体管实现100V,4M的信号输出能行吗

    请问普通运放+晶体管实现100V,4M的信号输出能行吗
    发表于 09-04 06:17

    CC2530与5V供电超声波测距,能行吗

    我想用CC2530与5V供电的超声波模块相连来测距,能行吗?2530芯片不会烧掉吧?
    发表于 03-15 16:46

    在家里自学单片机硬件设计能行吗

    本帖最后由 dsl7410 于 2016-9-18 21:00 编辑 没有工具可以把设计好的PCB图做成实体的PCB,能行吗
    发表于 09-18 20:22

    28069时钟内部的晶振能行吗

    在使用到DSP的CAN时,有些文档提到,最好使用外接精确的晶振,最好不要使用内部晶振,在28069上存在这个问题吗,如果使用28069的can模块,内部的晶振能行吗
    发表于 11-27 14:44

    LH560A“你能行吗?祝你成功”语言集成电路图

    LH560A“你能行吗?祝你成功”语言集成电路图
    发表于 03-31 17:06 1190次阅读
    LH560A“你<b class='flag-5'>能行吗</b>?祝你成功”语言集成电路图

    verilog_代码资料

    verilog_代码资料,非常实用的代码示例。
    发表于 02-18 15:00 37次下载

    verilog代码规范

    verilog代码规范,学会写代码还不行,我们需要更加的规范。
    发表于 03-25 14:43 24次下载

    8051 verilog代码

    8051 verilog代码分享,有需要的下来看看。
    发表于 05-24 09:45 0次下载

    Verilog 入门的实例代码

    Verilog 入门的实例代码,有需要的下来看看
    发表于 05-24 10:03 20次下载

    verilog_代码

    verilog_代码分享,有需要的朋友下来看看。
    发表于 05-24 10:03 12次下载

    Python国产库推荐之musicpy:让你代码来写音乐

    你想过代码来写音乐吗?这里给大家介绍一个国人写的库 musicpy,让你简洁的语法通过乐理逻辑写出优美的音乐。 这个库可以让你非常简洁
    的头像 发表于 12-16 11:26 1684次阅读

    什么样的Verilog代码风格是好的风格?

    代码是给别人和多年后的自己看的。 关于Verilog代码设计的一些风格和方法之前也写过一些Verilog有什么奇技淫巧?
    的头像 发表于 10-24 15:23 1532次阅读

    如何用AI来写Verilog代码

    可能现在它的功能还并不是很完善,但作为工程师,看到这么强大的功能,不禁有些感慨,我们的核心竞争力是什么?如果真的有一天,AI可以帮我们写代码了,我们该去做什么?
    的头像 发表于 12-09 09:45 1871次阅读

    如何在VScode中用AI补全V/SV代码呢?

    昨天群里小伙伴说在VScode中用AIverilog效果很好。小编以前编辑代码都是gvim。抱着学习的心态,我在linux下尝试了下V
    的头像 发表于 08-03 10:24 3420次阅读
    如何在VScode中用<b class='flag-5'>AI</b>补全V/SV<b class='flag-5'>代码</b>呢?

    如何自动生成verilog代码

    介绍几种自动生成verilog代码的方法。
    的头像 发表于 11-05 11:45 308次阅读
    如何自动生成<b class='flag-5'>verilog</b><b class='flag-5'>代码</b>