提交 c6cc5cc9 编写于 作者: 饶先宏's avatar 饶先宏

202108131735

上级 db8f3b8a
......@@ -83,6 +83,32 @@ static const char *verilogmoduleModuleInfo()
return "0.3.0-20210428.0952 Verilog moudle";
}
typedef struct _sModuleID {
const char* name;
int type;
}ModuleID;
static ModuleID* moduleidCreate(const char* name, int type)
{
ModuleID* id;
id = (ModuleID *)malloc(sizeof(ModuleID));
if (id == NULL)
return NULL;
id->name = STRDUP(name);
id->type = type;
return id;
}
static void moduleidDestroy(ModuleID* id)
{
if (id == NULL)
return;
if (id->name != NULL)
free(id->name);
free(id);
}
static int verilogmoduleCreate(const PARAMITEM * pParams, int paramcount, HOBJECT * pObject)
{
sVerilogModule * pobj;
......@@ -97,6 +123,8 @@ static int verilogmoduleCreate(const PARAMITEM * pParams, int paramcount, HOBJEC
VERILOGNODE_VARINIT(pobj, CLSID_VERILOG_MODULE_DECLARATION);
INTERFACE_INIT(IVerilogNode, pobj, verilogmodule, verilognode);
pointerarrayInit(&pobj->data.idlist);
pobj->data.attributes = dlistCreate();
pobj->data.module_parameters = dlistCreate();
pobj->data.module_ports = dlistCreate();
......@@ -135,6 +163,8 @@ static void verilogmoduleDestroy(HOBJECT object)
sVerilogModule * pobj;
pobj = (sVerilogModule *)objectThis(object);
pointerarrayDestroy(&pobj->data.idlist, moduleidDestroy);
objectRelease(pobj->data.attributes);
objectRelease(pobj->data.module_parameters);
objectRelease(pobj->data.module_ports);
......@@ -637,6 +667,7 @@ static int verilogmodule_verilognode_gencode(HOBJECT object, FILE * pFile, HOBJE
}
{
/*4.always块中赋值语句的左值,如果不是端口则,生成一个ID */
}
fprintf(pFile, "END_IDLIST\n");
......
......@@ -46,6 +46,8 @@ extern "C" {
#include "guid.h"
#include "pointerarray.h"
DEFINE_GUID(IID_VERILOG_ROOT, 0xa1fbe4b5, 0xbfb6, 0x41e2, 0xb2, 0xf, 0x5c, 0x14, 0xd1, 0xdf, 0x7c, 0x20);
DEFINE_GUID(IID_VERILOG_NODE, 0x88ec245f, 0xff4c, 0x4d5a, 0xb3, 0xe, 0x59, 0x70, 0x85, 0x42, 0x14, 0x20);
......@@ -478,6 +480,7 @@ typedef struct _s_verilog_Module {
IConstStringVar* cell_clsid;
IConstStringVar* cell_softlibrary;
PointerArray idlist;
IDListVar* attributes;
IDListVar* module_parameters;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册