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

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

3天内不再提示

如何用AI来写Verilog代码?

傅里叶的猫 来源:傅里叶的猫 作者:傅里叶的猫 2022-12-09 09:45 次阅读

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

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

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

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

ca08b8de-7761-11ed-8abf-dac502259ad0.pngimage-20221208210153673

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

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

ca214c5a-7761-11ed-8abf-dac502259ad0.pngimage-20221208210533770

在代码后面甚至还有解释:

ca3e4c42-7761-11ed-8abf-dac502259ad0.pngimage-20221208210631379

完整代码如下:

//UARTReceiverModule
moduleuart_rx(
inputclk,
inputrx,
outputregrx_done,
outputreg[7:0]rx_data
);

//FSMstates
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;

//Initializeoutputs
always@*begin
rx_done=0;
rx_data=0;
end

//Statetransitionlogic
always@(posedgeclk)begin
state<= next_state;
end

//Statetransitionfunction
always@*begin
case(state)
IDLE:begin
if(rx)next_state=START;
elsenext_state=IDLE;
end
START:begin
if(rx)next_state=DATA;
elsenext_state=IDLE;
end
DATA:begin
if(bit_count==0)next_state=STOP;
elseif(rx)next_state=DATA;
elsenext_state=IDLE;
end
STOP:begin
if(rx)next_state=IDLE;
elsenext_state=STOP;
end
endcase
end

//Outputlogic
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抽取滤波器

ca5a0af4-7761-11ed-8abf-dac502259ad0.png

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

ca7b0cd6-7761-11ed-8abf-dac502259ad0.png

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

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

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

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

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

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

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

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


审核编辑 :李倩


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

    关注

    28

    文章

    1351

    浏览量

    110091
  • AI
    AI
    +关注

    关注

    87

    文章

    30851

    浏览量

    269018
  • 语言模型
    +关注

    关注

    0

    文章

    523

    浏览量

    10277

原文标题:如何用AI来写Verilog代码?

文章出处:【微信号:傅里叶的猫,微信公众号:傅里叶的猫】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Verilog 与 ASIC 设计的关系 Verilog 代码优化技巧

    Verilog与ASIC设计的关系 Verilog作为一种硬件描述语言(HDL),在ASIC设计中扮演着至关重要的角色。ASIC(Application Specific Integrated
    的头像 发表于 12-17 09:52 107次阅读

    Verilog与VHDL的比较 Verilog HDL编程技巧

    Verilog 与 VHDL 比较 1. 语法和风格 VerilogVerilog 的语法更接近于 C 语言,对于有 C 语言背景的工程师来说,学习曲线较平缓。它支持结构化编程,代码
    的头像 发表于 12-17 09:44 141次阅读

    如何自动生成verilog代码

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

    Verilog硬件描述语言参考手册

    一. 关于 IEEE 1364 标准二. Verilog简介三. 语法总结四. 编写Verilog HDL源代码的标准五. 设计流程
    发表于 11-04 10:12 0次下载

    Verilog语法中运算符的用法

    verilog语法中使用以下两个运算符可以简化我们的位选择代码
    的头像 发表于 10-25 15:17 715次阅读
    <b class='flag-5'>Verilog</b>语法中运算符的用法

    如何利用Verilog-A开发器件模型

    何用Verilog-A来开发器件模型在建模领域将尤为重要。今天就来以简单的例子来介绍如何开发一个Verilog-A Model。
    的头像 发表于 10-18 14:16 461次阅读
    如何利用<b class='flag-5'>Verilog</b>-A开发器件模型

    怎么样提高verilog代码编写水平?

    ,共同进步。 欢迎加入FPGA技术微信交流群14群! 交流问题(一) Q:怎么样提高verilog代码编写水平?Cpu 从事DFT工作。目前仅限于写一些简单模块。自学的话如何提高verilog编写水平
    发表于 09-25 20:05

    FPGA Verilog HDL代码如何debug?

    ,共同进步。 欢迎加入FPGA技术微信交流群14群! 交流问题(一) Q:Verilog代码如何debug?最近学习fpga,写了不少verilog,开始思考如何debug的问题!c语言是顺序执行,而
    发表于 09-24 19:16

    探讨AI编写代码技术,以及提高代码质量的关键:静态代码分析工具Perforce Helix QAC &amp; Klocwork

    令软件开发人员夜不能寐的事情比比皆是。如今,他们最关心的问题不再是如何用自己喜欢的语言(C、C++、Erlang、Java 等)表达最新的算法,而是人工智能(AI)。 本文中,我们将介绍AI编写
    的头像 发表于 06-05 14:10 402次阅读

    何用代码在运行的时候设置程序防止被读出?

    何用代码在运行的时候设置程序防止被读出
    发表于 06-03 07:24

    扎心灵魂小拷问:有了AI编写代码之后,软件工程师会被AI取代吗?

    软件开发者们有很多让他们焦虑的事情。他们最担心的不再是如何用他们最喜欢的编程语言(C、C++、Erlang、Java等)表达最新的算法。相反,这种担忧正逐渐被人工智能(AI)所取代。 在这里,我们将探讨AI编写
    的头像 发表于 05-24 19:17 650次阅读
    扎心灵魂小拷问:有了<b class='flag-5'>AI</b>编写<b class='flag-5'>代码</b>之后,软件工程师会被<b class='flag-5'>AI</b>取代吗?

    verilog调用模块端口对应方式

    Verilog中的模块端口对应方式,并提供示例代码和详细解释,以帮助读者更好地理解和应用。 首先,我们来了解一下Verilog中的模块和模块端口。一个Verilog模块被定义为包含一组
    的头像 发表于 02-23 10:20 1768次阅读

    verilog function函数的用法

    Verilog 是一种硬件描述语言 (HDL),主要用于描述数字电子电路的行为和结构。在 Verilog 中,函数 (Function) 是一种用于执行特定任务并返回一个值的可重用代码块。函数在
    的头像 发表于 02-22 15:49 5667次阅读

    【国产FPGA+OMAPL138开发板体验】(原创)5.FPGA的AI加速源代码

    FPGA架构的优化。以下是我写的一个简化版的代码,用来展示FPGA如何加速AI计算中的某个简单操作(比如矩阵乘法)。 // Verilog代码,用于FPGA上的
    发表于 02-12 16:18

    怎么用emac实现Verilog自动连线呢?

    我们在编写一些比较复杂的Verilog代码时,通常需要进行大量的手动连线工作,这种工作十分容易出错,并且在代码模块的嵌套层级较多时,更改里层的一个代码
    的头像 发表于 01-24 10:03 1367次阅读