1. 什么叫NC?
NC 是Native Complied-code 的简称. Cadence 采用该技术可以绕过先编译为C代码的障碍, 直接编译为特定机器的可执行代码.
采用该技术, 可以减少编译时间, 减少执行时间以及降低内存的占用率
2. INCA是什么?
INCA是Interleave Native Complied-code Architecture的简称. 具体来说, INCA是允许不同的代码( 行为级和RTL级代码) 进行
仿真, 或者是说不同的HDL语言可以同时进行仿真, 如VHDL和Verilog协同仿真, 当然还有数字和模拟电路, 事件驱动和周期驱动的协同仿真.
3. NC 是如何实现INCA的呢?

4. NC运行时, 中间数据是存储在一个固定的空间中, 这个空间就称作为库(Library),结构如下:

以Library.Cell: View 这三类结构管理中间文件,其中, 库是相关仿真模块的集合, 单元是特定的仿真模块, 视图是特定仿真模块的一种表现形式.
每个库均有一个独一无二的逻辑名称 和 存储目录. 当前设计的工作库称为work库, 该worklib内有扩展名为pak的文件, 该文件中存储中间数据, 可以用ncls命令查看.
5. 有关cds.lib, hdl.var, setup.loc
cds.lib -----> 该文件定义了逻辑库名称和物理存储位置的映射关系;
hdl.var -----> 定义了工具的一些变量
setup.loc -----> 搜索时的路径顺序
以上三个变量可以不用手工定义, 若不定义, 那么NC会建立缺省值
6. 运行仿真器可分为三个基本步骤:
a.
ncvlog (编译)
执行语法和静态语义检查
编译为verilog语法树状结构(VST)
b. ncelab(扩展和链接)
按照配置建立层次结构
建立信号连接
创建签名(SIG)
启动代码产生器
创建可执行代码(COD)
建立0时间的snapshot(SSS)
c. ncsim ( 仿真)
执行可执行代码
具体过程如下图: