我有一个基于verilog的测试平台,使用DPI连接到'C源代码。现在使用DPI我打算编写我的整个固件。要做到这一点,我需要3件事
我检查了大多数cadence文档,发现没有有用的提示。 我还在cadence用户社区注册,但似乎在他们批准我的注册之前我不能提出问题。
如果有人意识到这一点,请感谢他们的帮助。
答案 0 :(得分:3)
实际上我认为是这样的。
//--From RTL ---
export "DPI" task reg_read;
task reg_read;
input int nAddr;
output int nVal;
// -- read implementation --
endtask
// -- From C code
extern void reg_read (int nAddr, int *pVal);
void test_read (void)
{
int nRegVal;
// Dummy checking !!
reg_read (0x100, &nRegVal);
}
// -- Again in RTL --
import "DPI" context task test_read ();
这适用于我使用ncverilog。
答案 1 :(得分:2)
很酷......我实际上写了一篇关于这个主题的文章。 link
该文件实际上是在DPI中导出寄存器读取和写入,然后添加一个TCL解释器,以便您可以使用TCL来控制您的SIM卡。这是实验室工作人员所喜爱的,因为他们的所有工具都已经在Tcl中。
您可以按照说明将整个DPI中从C到SV的函数调用集成,然后在TCL内容发挥作用时停止。