在复杂的芯片设计领域,确保设计的准确性和可靠性至关重要。随着我们的芯片变得越来越复杂,寻找错误的过程(识别和纠正设计中的错误)变得更加重要。生成式人工智能有潜力通过增强我们的错误追踪能力来彻底改变芯片设计行业。如何?让我们实验一下!
实验 4:寻找 bug
为了证明生成式 AI 在芯片设计中的功效,我使用 OpenAI 的 GPT-4 进行了实验。我们为系统提供了设计规范(源自 https://mathcircle.berkeley.edu/sites/default/files/archivedocs/2010_2011/contest/1011contestpdf/comp8.pdf)以及设计的实现。目标?看看 GenAI 是否可以识别任何错误。
设计规格: 在 5 × 5 的棋盘上,国王按照以下规则走棋: 1. 它一次可以水平、垂直或对角移动一格。 2. 它在整个路线上最多可以向 8 个允许方向中的每一个方向移动 3 次。
以下是 GenAI 模型的输出:
1. Bug:用 cur_y_pos 覆盖 cur_x_pos 否则开始 cur_x_pos <= nxt_y_pos; cur_y_pos <= nxt_y_pos; 结尾 该部分会导致王当前的x位置(cur_x_pos)始终取nxt_y_pos的值,这是不正确的。 反例: 输入场景:假设国王位于位置 (2,2),并且 move_request 的方向为 3'b010(向上)。 设计过渡: 预期:cur_x_pos 保持为 2,cur_y_pos 变为 3。 实际:cur_x_pos 和 cur_y_pos 都变为 3。 结果: 预期结果:King 移至 (2,3)。 实际结果:King 移动到 (3,3)。
2. Bug:cur_moves_count[]初始化为零 if (重置) cur_moves_count[dir] <= 3'd0; 重置时所有方向的移动计数都初始化为零。然而,检查最大移动的条件使用 < 3'd3,这意味着国王在出现错误之前可以在每个方向移动 4 次。 反例: 输入场景:假设国王位于位置 (0,0),并且提供了四个连续的 move_requests,方向 = 3'b000(右)。 设计过渡: 预期:向右移动 3 次后,第 4 次移动应该会触发错误。 实际:King 向右移动四次,没有触发错误。 结果: 预期结果:King 移动到 (3,0),然后触发错误。 实际结果:King 移动到 (4,0),没有错误。
3. Bug:缺乏边界检查 尽管该代码包含对棋盘上国王移动的边界检查,但它没有考虑到 3 位值的加法或减法可能导致翻转错误的可能性。例如,如果 cur_x_pos 为 3'd7(根据当前设计,这不应发生,但可能是由于外部影响或其他设计问题),由于位翻转,减去 1 可能会导致 0 而不是预期的 6 。 反例: 这可能是一个理论上的错误,因为当前的设计不允许发生这种情况。然而,为了稳健的设计,必须考虑这一点。 建议:可以改进边界检查,并且可以添加额外的健全性检查,以确保国王的位置永远不会超出有效范围。
有趣的观察
- 错误识别: GenAI 模型通过适当的反例(包括场景、转换以及实际与预期结果分析)查明了设计规范与其实现之间的具体差异。这确实是一个需要纠正的真正错误。
- 假阴性: 与任何工具一样,生成式人工智能也并非万无一失。它确实突出了一个问题,经过仔细检查,结果证明不是一个错误。这提醒我们,虽然人工智能可以成为有价值的助手,但人类的专业知识和判断力在验证过程中仍然至关重要。
- 增强问题: 除了寻找错误之外,GenAI 模型还提出了一项增强功能——改进设计的建议,不一定要修复错误,而是进一步优化设计。这种意想不到的好处表明人工智能不仅可以帮助发现错误,还可以提出创新建议。
明天的风景 – GenAI 支持的 HDL 代码编辑器/分析器!
这个实验的意义是深远的。通过将生成式 AI 工具集成到我们的 HDL 代码开发流程中,我们可以:
- 加速错误查找过程: 自动化错误检测的初始阶段可以减少调试长仿真波形所花费的工时。
- 降低验证成本: 由于留给验证工具/工程师发现的错误更少,验证结束可以更快地实现,从长远来看可以节省成本。
在结论
随着半导体行业的不断发展,利用生成式人工智能等工具可以给我们带来优势,确保我们的设计不仅没有错误,而且还突破了可能的界限。副驾驶和插件在整个行业得到广泛采用只是时间问题。
另请参阅:
用于芯片设计的生成式 AI – 第 1 条(Code My FSM)
通过以下方式分享此帖子:
- :具有
- :是
- :不是
- $UP
- 1
- 4日
- 7
- 8
- a
- 根据
- 账号管理
- 实现
- 横过
- 实际
- 添加
- 添加
- 额外
- 采用
- 后
- AI
- 所有类型
- 让
- 靠
- 还
- 尽管
- 时刻
- an
- 分析
- 和
- 任何
- 保健
- 排列
- 刊文
- AS
- 助理
- 承担
- At
- 自动化
- 基于
- BE
- 成为
- 成为
- before
- 开始
- 得益
- 伯克利
- 之间
- 超越
- 位
- 都
- 边界
- 问题
- 寻虫
- 虫子
- 但是
- by
- CAN
- 能力
- 案件
- 原因
- 查
- 支票
- 棋
- 碎屑
- 接近
- 关闭
- 码
- 对照
- 复杂
- 流程条件
- 进行
- 连续
- 考虑
- 包含
- 继续
- 价格
- 节约成本
- 可以
- 创建信息图
- 危急
- 关键
- 电流
- 定义
- 演示
- 演示
- 设计
- 设计
- 详细
- 检测
- 研发支持
- DID
- 方向
- 方向
- 差异
- 不
- 向下
- 两
- 每
- 边缘
- 功效
- 其他
- 结束
- 加强
- 确保
- 保证
- 整个
- 错误
- 故障
- 必要
- 醚(ETH)
- 甚至
- 发展
- 超过
- 预期
- 实验
- 专门知识
- 外部
- 少
- 找到最适合您的地方
- 寻找
- 流
- 以下
- 针对
- 四
- 止
- 实用
- 进一步
- Gain增益
- 生成的
- 生成式人工智能
- 真正
- 给
- 目标
- GOES
- 发生
- 帮助
- 近期亮点
- 举行
- 创新中心
- 但是
- HTTPS
- 人
- 狩猎
- 狩猎
- i
- 鉴定
- 鉴定
- if
- 履行
- 启示
- 改善
- 改善
- in
- 包含
- 表明
- 行业中的应用:
- 初始
- 创新
- 输入
- 例
- 整合
- 成
- 问题
- 问题
- IT
- 它的
- 只是
- 国王
- 缺乏
- 景观
- 领导
- 左
- 让
- 借力
- 喜欢
- 极限
- 长
- 问题
- 最大宽度
- 最多
- 意
- 可能
- 错误
- 模型
- 模块
- 更多
- 最先进的
- 移动
- 运动
- 移动
- my
- 一定
- 打印车票
- 负
- 决不要
- of
- on
- 一
- 仅由
- 追求项目的积极优化
- or
- 其他名称
- 我们的
- 输出
- 成果
- 产量
- 学校以外
- 最重要的
- 为
- 柏拉图
- 柏拉图数据智能
- 柏拉图数据
- 位置
- 可能性
- 可能
- 帖子
- 潜力
- 供电
- 当下
- 过程
- 深刻的
- 正确
- 建议
- 提供
- 推动
- 凸
- 范围
- 宁
- 阅读
- 推荐
- 减少
- 注册
- 可靠性
- 留
- 遗迹
- 提醒
- 请求
- 导致
- 革命化
- 右
- 健壮
- 路线
- 定位、竞价/采购和分析/优化数字媒体采购,但算法只不过是解决问题的操作和规则。
- 运行
- s
- 储
- 脚本
- 部分
- 看到
- 半导体
- 服务
- 应该
- 硅
- 模拟
- 极致
- 采购
- 具体的
- 规范
- 花费
- 广场
- 实习
- 这样
- 系统
- T
- 采取
- 比
- 这
- 然后
- 理论
- Free Introduction
- 三
- 次
- 时
- 至
- 工具
- 工具
- 过渡
- 转换
- 触发
- 引发
- 触发
- 转身
- 意外
- 上
- 直立
- us
- 使用
- 有效
- 验证
- 有价值
- 折扣值
- 价值观
- 企业验证
- 与
- 垂直
- 通过
- vs
- 是
- we
- ,尤其是
- 这
- 而
- 宽
- 将
- 也完全不需要
- 世界
- X
- 和风网
- 零