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

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

3天内不再提示

从有限状态机图片直接生成SV代码

sanyue7758 来源: EETOP 2023-10-30 11:07 次阅读

在当今快节奏的世界中,半导体设计的创新是一项永恒的需求。对更快、更准确、更创新的解决方案的需求为探索生成式人工智能(#GenerativeAI)在半导体设计开发领域的潜力铺平了道路。能做到吗?当然可以!在本系列文章中,我们将深入探讨令人兴奋的实验,展示生成式人工智能如何彻底改变半导体设计。

实例 1 - 从 FSM 图到 SV 代码

第一个实验通过将有限状态机 (FSM) 图转换为 SystemVerilog (SV) 代码,展示了生成式人工智能的非凡能力。

在本例中,谷歌的生成式人工智能模型--BARD 被用来生成一个自动售货机 FSM 的 SystemVerilog 实现。

状态机图片:

cc8b23ee-76cf-11ee-939d-92fbcf53809c.jpg

cc9667cc-76cf-11ee-939d-92fbcf53809c.png

代码如下:

// Vending machine FSM
// Disclaimer: This code is not tested for correctness


module vending_machine (
  input clk,
  input reset,
  input coin_inserted,
  input product_selected,
  input product_dispensed,


  output reg dispense_product,
  output reg return_coin
);


  // Define the states
  localparam [2:0] IDLE = 3'b000;
  localparam [2:0] COIN_INSERTED = 3'b001;
  localparam [2:0] PRODUCT_SELECTED = 3'b010;
  localparam [2:0] PRODUCT_DISPENSED = 3'b011;
  localparam [2:0] OUT_OF_STOCK = 3'b100;


  // Define the registers
  reg [2:0] current_state;


  // Transition logic
  always @(posedge clk or posedge reset) begin
    if (reset) begin
      current_state <= IDLE;
    end else begin
      case (current_state)
        IDLE: begin
          if (coin_inserted) begin
            current_state <= COIN_INSERTED;
          end else begin
            current_state <= IDLE;
          end
        end
        COIN_INSERTED: begin
          if (product_selected) begin
            current_state <= PRODUCT_SELECTED;
          end else begin
            current_state <= COIN_INSERTED;
          end
        end
        PRODUCT_SELECTED: begin
          if (product_dispensed) begin
            current_state <= PRODUCT_DISPENSED;
          end else if (out_of_stock) begin
            current_state <= OUT_OF_STOCK;
          end else begin
            current_state <= PRODUCT_SELECTED;
          end
        end
        PRODUCT_DISPENSED: begin
          current_state <= IDLE;
        end
        OUT_OF_STOCK: begin
          current_state <= IDLE;
        end
      endcase
    end
  end


  // Output logic
  always @(posedge clk) begin
    case (current_state)
      PRODUCT_DISPENSED: begin
        dispense_product <= 1'b1;
      end
      default: begin
        dispense_product <= 1'b0;
      end
    endcase
  end


  always @(posedge clk) begin
    case (current_state)
      OUT_OF_STOCK: begin
        return_coin <= 1'b1;
      end
      default: begin
        return_coin <= 1'b0;
      end
    endcase
  end


endmodule

有限状态机在芯片设计中得到广泛应用,以下是生成式人工智能如何发挥关键作用:

提高生产力:有了生成式人工智能,创建和更新图表变得轻而易举。设计人员现在可以专注于高级概念,让人工智能来做基础工作。这不仅加快了开发过程,还能在需要更改设计时迅速进行迭代。

更高的准确性:FSM 已经成为硬件设计的标准化工具。生成式人工智能模型经过大量数据集的训练,能够熟练地将这些图表转换为准确的 SV 代码。减少了人为错误,提高了代码质量。

提高创新能力:生成式人工智能的速度和准确性为快速探索新的设计理念打开了大门。设计人员可以利用各种 FSM 图表进行头脑风暴和实验,从而推动创新。这种灵活性使每一代半导体器件都能更快地集成先进功能。 虽然生成式人工智能前景广阔,但必须谨慎行事。生成的代码不一定总是完美的。在将人工智能生成的代码部署到生产环境之前,设计人员必须对其进行审查和严格测试。彻底的验证过程对于确保最终半导体设计的可靠性和功能性至关重要。

审核编辑:汤梓红

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

    关注

    334

    文章

    26996

    浏览量

    216157
  • AI
    AI
    +关注

    关注

    87

    文章

    30097

    浏览量

    268366
  • 人工智能
    +关注

    关注

    1791

    文章

    46838

    浏览量

    237507
  • 有限状态机
    +关注

    关注

    0

    文章

    52

    浏览量

    10316

原文标题:用生成式AI设计芯片,实例1:从有限状态机图片直接生成SV代码

文章出处:【微信号:处芯积律,微信公众号:处芯积律】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    FPGA有限状态机

    FPGA有限状态机
    发表于 09-08 08:45

    有限状态机有什么类型?

    在实际的应用中,根据有限状态机是否使用输入信号,设计人员经常将其分为Moore型有限状态机和Mealy型有限状态机两种类型。
    发表于 04-06 09:00

    什么是有限状态机

    在嵌入式,机器人领域,由于多的复杂逻辑状态,我们编写程序的时候不得不考虑很多种情况,容易造成功能间的冲突。有限状态机(finite-state machine),简称状态机,是一种表示有限
    发表于 12-20 06:51

    状态机代码生成工具

    状态机代码生成工具状态机代码生成工具状态机
    发表于 11-19 15:12 9次下载

    有限状态机_FSM_的实现

    本文主要介绍了IP模块的有限状态机的实现。
    发表于 03-22 15:42 0次下载

    有限状态机的建模与优化设计

    本文提出一种优秀 、高效的 Verilog HDL 描述方式来进行有限状态机设计 介绍了 有限状态机的建模原则 并通过一个可综合的实例 验证了 该方法设计的有限状态机在面积和功耗上的优势。
    发表于 03-22 15:19 1次下载

    VHDL有限状态机设计-ST

    EDA的有限状态机,广义而言是指只要涉及触发器的电路,无论电路大小都可以归结为状态机有限状态机设计在学习EDA时是很重要的一章。
    发表于 06-08 16:46 3次下载

    初学者对有限状态机(FSM)的设计的认识

    有限状态机(FSM)是一种常见的电路,由时序电路和组合电路组成。设计有限状态机的第一步是确定采用Moore状态机还是采用Mealy状态机
    发表于 02-11 13:51 4270次阅读
    初学者对<b class='flag-5'>有限状态机</b>(FSM)的设计的认识

    如何使用FPGA实现序列检测有限状态机

    有限状态机是绝大部分控制电路的核心结构, 是表示有限状态以及在这些状态之间转移和动作等行为的数学模型。有限状态机是指输出取决于过去输入部分
    发表于 11-04 17:17 12次下载
    如何使用FPGA实现序列检测<b class='flag-5'>有限状态机</b>

    有限状态机设计是HDL Designer Series的关键应用

    ,导致状态机性能不佳。 关键要素用户对工具可用于生成HDL设计工具的成功应用充满信心可预测的高性能有限状态机HDL代码
    发表于 04-08 10:05 6次下载

    基于事件驱动的有限状态机介绍

      一、介绍 EFSM(event finite state machine,事件驱动型有限状态机),是一个基于事件驱动的有限状态机,主要应用于嵌入式设备的软件系统中。 EFSM的设计原则是:简单
    的头像 发表于 11-16 15:29 2311次阅读

    如何以面向对象的思想设计有限状态机

    有限状态机又称有限状态自动机,简称状态机,是表示有限状态以及在这些
    发表于 02-07 11:23 4次下载
    如何以面向对象的思想设计<b class='flag-5'>有限状态机</b>

    基于事件驱动的有限状态机介绍

    EFSM(event finite state machine,事件驱动型有限状态机),是一个基于事件驱动的有限状态机,主要应用于嵌入式设备的软件系统中。
    的头像 发表于 02-11 10:17 1022次阅读

    一个基于事件驱动的有限状态机

    EFSM(event finite state machine,事件驱动型有限状态机),是一个基于事件驱动的有限状态机,主要应用于嵌入式设备的软件系统中。 EFSM的设计原则是:简单!EFSM的使用者只需要关心:
    的头像 发表于 08-30 09:28 816次阅读
    一个基于事件驱动的<b class='flag-5'>有限状态机</b>

    有限状态机分割设计

    有限状态机分割设计,其实质就是一个状态机分割成多个状态机
    的头像 发表于 10-09 10:47 609次阅读