AI在IC设计中的实践操作

EETOP 2026-06-15 12:00

简单聊聊大模型在最近IC设计过程中的几个使用场景

1. 使用AI生成标准模块脚本

使用大模型产生能够生成CRC代码的脚本crc_gen.py,脚本能够支持多种多项式,支持输入位宽可变,输出CRC结果为固定位宽。期望crc_gen.py生成的CRC代码如下图。

AI在IC设计中的实践操作图1

1.1 使用心得

调用的大模型是deepseek-v4-pro,模型分析过程大致是靠谱的,但是产生的脚本不靠谱,产生的CRC代码存在错误,需要反复调试,存在风险。

2. 使用AI读取接口信号表格产生block IO和结构体

在进行方案设计时,我们常常会将模块接口信号以及相关的定义说明填写到表格中,当完成方案评审(包含信号评审对齐)后就可以直接写代码了,此时采用大模块读取表格直接提取表格内存,产出模块接口代码和接口相关结构体定义会特别方便。

AI在IC设计中的实践操作图2

大模块生成的接口信号和结构体定义如下:

Thrift                  
// ==============================================================                  
// AA-BB 接口结构体与参数定义                  
// 生成时间:2025-12-20                  
// 适用场景:PCIe 主机请求接口,AA为发起端,BB为接收端                  
// ==============================================================                  

// --------------------------                  
// 位宽参数宏定义                  
// 可根据项目实际需求修改配置                  
// --------------------------                  
`ifndef PCIE_HOSTID_WDTH                  
`define PCIE_HOSTID_WDTH3       // PCIe HostID 位宽,默认3bit                  
`endif                  

`ifndef PCIE_FUNCID_WDTH                  
`define PCIE_FUNCID_WDTH14      // PCIe FuncID 位宽,默认14bit                  
`endif                  

`ifndef PCIE_ADDR_WDTH                  
`define PCIE_ADDR_WDTH    64      // PCIe 地址位宽,默认64bit                  
`endif                  

// --------------------------                  
// 请求信息打包结构体                  
// 对应表格中的 aa2bb_req_info 复合信号                  
// --------------------------                  
typedef struct packed {                  
    logic [`PCIE_HOSTID_WDTH-1:0]hostid;   // 请求对应的HostID                  
    logic [`PCIE_FUNCID_WDTH-1:0]funcid;   // 请求对应的FuncID                  
    logic [`PCIE_ADDR_WDTH-1:0]    addr;     // 请求目标地址                  
} aa2bb_req_info_s;

模块AA接口信号

Java                  
// ==============================================================                  
// 模块AA:PCIe 请求发起端                  
// 功能:向模块BB发送主机请求,输出请求有效信号与请求信息                  
// 生成时间:2025-12-20                  
// ==============================================================                  

`include "aa_bb_interface.svh"                  

module module_aa (                  
    // 全局时钟与复位                  
    inputwire                         clk,                  
    inputwire                         rst_n,                  

    // AA→BB 接口信号                  
    output reg                          aa2bb_req_vld,                  
    output aa2bb_req_info_s            aa2bb_req_info                  

    // 可在此处添加模块AA的其他业务接口                  
);                  


endmodule

模块BB接口信号

C++                  
// ==============================================================                  
// 模块BB:PCIe 请求接收端                  
// 功能:接收模块AA发送的主机请求,解析请求信息并执行对应操作                  
// 生成时间:2025-12-20                  
// ==============================================================                  

`include "aa_bb_interface.svh"                  

module module_bb (                  
    // 全局时钟与复位                  
    inputwire                         clk,                  
    inputwire                         rst_n,                  

    // AA→BB 接口信号                  
    inputwire                         aa2bb_req_vld,                  
    inputaa2bb_req_info_s            aa2bb_req_info                  

    // 可在此处添加模块BB的其他业务接口                  
);                  



endmodule

结构体定义

Thrift                  
// ==============================================================                  
// AA-BB 接口结构体与参数定义                  
// 生成时间:2025-12-20                  
// 适用场景:PCIe 主机请求接口,AA为发起端,BB为接收端                  
// ==============================================================                  

// --------------------------                  
// 位宽参数宏定义                  
// 可根据项目实际需求修改配置                  
// --------------------------                  
`ifndef PCIE_HOSTID_WDTH                  
`define PCIE_HOSTID_WDTH3       // PCIe HostID 位宽,默认3bit                  
`endif                  

`ifndef PCIE_FUNCID_WDTH                  
`define PCIE_FUNCID_WDTH14      // PCIe FuncID 位宽,默认14bit                  
`endif                  

`ifndef PCIE_ADDR_WDTH                  
`define PCIE_ADDR_WDTH    64      // PCIe 地址位宽,默认64bit                  
`endif                  

// --------------------------                  
// 请求信息打包结构体                  
// 对应表格中的 aa2bb_req_info 复合信号                  
// --------------------------                  
typedef struct packed {                  
    logic [`PCIE_HOSTID_WDTH-1:0]hostid;   // 请求对应的HostID                  
    logic [`PCIE_FUNCID_WDTH-1:0]funcid;   // 请求对应的FuncID                  
    logic [`PCIE_ADDR_WDTH-1:0]    addr;     // 请求目标地址                  
} aa2bb_req_info_s;

2.1 使用心得

几乎任意一个主流国产大模型都能100%完成,只要信号命名遵守项目规则,极少会出现错误。

3. 使用AI读取文档整理出细节点

可以使用大模型读取完整的PCIe协议,并且从协议中找到问题答案,并且让大模型给出参考原文用于人工校对。

案例提问:读取当前目录文档NCB-PCI_Express_Base_6.3.pdf,给出结论PF的bme信号是否控制VF的dma读写 ?

AI在IC设计中的实践操作图3

AI解答:如下

AI在IC设计中的实践操作图4

3.1 使用心得

部分大模型会胡编乱造,在我使用过程中,豆包和千问的部分版本都出现过此问题。协议原文没有的语句也会胡诌。目前我在Claude code经常调用deepseek-v4-pro,整体是挺靠谱的。最关键的一点:一定要根据协议原文校对答案。

扫码报名参会,现场签到有礼 + 抽奖福利,席位有限,先到先得!

AI在IC设计中的实践操作图5

声明:内容取材于网络,仅代表作者观点,如有内容违规问题,请联系处理。 
AI IC
more
数据中心固态断路器需求驱动,SiC JFET异军突起
ICML 2026 观点论文 | Transformer 能解决任意可计算问题?人大团队指出上限取决于上下文管理
高通杀入AI ASIC!博通迎来劲敌
一周全球公司十大要闻 | 美国禁止境外主体获取Anthropic最强AI模型;大众等欧洲车企大力推动“欧盟制造”
不光答疑提效!中科闻歌的通用决策大模型,还帮我预测了Anthropic、OpenAI谁先上市
不改工作流,多智能体系统也能继续涨性能|ICML 2026 Spotlight
Fable 5被禁,Anthropic开始退钱了!
KV Cache终于不用无脑全留了!百度&复旦用「投资回报率」重新分配缓存|ICML 2026
如何让具身智能体从经验中有效学习并持续进化|EmbodiSkill核心作者丁鑫博士「AgenticAICon 2026」预告
SiC,再起风云!
Copyright © 2025 成都区角科技有限公司
蜀ICP备2025143415号-1
  
川公网安备51015602001305号