### [Cadence数模混合仿真怎么搭?建digital cell写Verilog再加config文件](https://www.zxzic.com/article/10948.html) **Published:** 2026-10-27T08:00:00 **Author:** 智行者IC社区 **Excerpt:** 模数混合电路纯SPICE或纯Verilog都搞不定。Virtuoso里建digital cell写Verilo… 模数混合电路既要跑数字时序又要跑模拟仿真,纯SPICE或者纯Verilog都搞不定。Virtuoso里用digital cell加config文件,把数字模块和模拟电路连起来跑。 ### 建digital cell 先在Virtuoso里新建一个cell,作为数字模块的接口层。把数字IO口全部列出来,不用写具体逻辑,只要端口定义。这个cell相当于数字电路的外壳。 ![Virtuoso建digital cell定义数字接口](https://cdn.zxzic.com/public/uploads/gallery/original/2026/10/12/202610121791806603_processed.webp) 然后写Verilog行为模型。在digital cell下面建一个view,用Verilog描述数字逻辑。简单的组合逻辑直接assign就行,时序逻辑写always块。这个Verilog模型会被ncsim加载跑。 ### 写config文件 config文件是用来告诉仿真器:模拟部分用什么网表,数字部分用哪个Verilog。新建一个config view,里面把电路层次结构列清楚,模拟模块用spectre网表,数字模块指向Verilog模型。 ![config文件配置数模混合仿真层次](https://cdn.zxzic.com/public/uploads/gallery/original/2026/10/08/202610081791495000_processed.webp) 配置完之后启动AMS仿真,spectre跑模拟,ncsim跑数字,两边在接口点交换数据。这样整个混合电路就能一起仿真了。 ### 踩坑记录 第一个坑:数字模型和模拟接口的电平对不上。Verilog里默认0/1,模拟电路里是0V/1.8V。config里要设好电平转换,不然数字部分读不到模拟输出。 第二个坑:仿真时间步长不匹配。模拟步长ps级,数字步长ns级。AMS接口会自动插值,但跑慢了就调时间。别两个都设ps,那仿真要跑到天荒地老。 第三个坑:忘了保存Verilog编译。改完Verilog模型没重新编译,仿真还是老逻辑。每次改完数字代码记得run ncsim编译一次。 **Tags:** AMS, Cadence, EDA工具, Verilog, Virtuoso, 混合仿真 **Categories:** Allegro使用 ---