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

202108041801

上级 ea5e24b3
......@@ -118,6 +118,81 @@ DEFINE_FUNC(cncell_concat_gen_read_write) {
vput(wDataWrite, write);
} END_DEFINE_FUNC
DEFINE_FUNC(cncell_concat_gen_write_data) {
int index = vget(index);
vput(bDataWriteData, 0xcdcdcdcd);
if (vget(nwReset) && vget(wDataWriteEnable)) {
if (((index >= 0) && (index < pobj->c0) && vget(wDataReadValid_0))) {
VAssign(bDataWriteData, bDataReadData_0);
}
else if (((index >= pobj->c0) && (index < pobj->c1) && vget(wDataReadValid_1))) {
VAssign(bDataWriteData, bDataReadData_1);
}
else if (((index >= pobj->c1) && (index < pobj->c2) && vget(wDataReadValid_2))) {
VAssign(bDataWriteData, bDataReadData_2);
}
else if (((index >= pobj->c2) && (index < pobj->c3) && vget(wDataReadValid_3))) {
VAssign(bDataWriteData, bDataReadData_3);
}
}
} END_DEFINE_FUNC
DEFINE_FUNC(cncell_concat_gen_write) {
int index = vget(index);
vput(wDataWrite, 0);
if (vget(nwReset) && vget(wDataWriteEnable)) {
if ( ((index >= 0) && (index < pobj->c0) && vget(wDataReadValid_0))
|| ((index >= pobj->c0) && (index < pobj->c1) && vget(wDataReadValid_1))
|| ((index >= pobj->c1) && (index < pobj->c2) && vget(wDataReadValid_2))
|| ((index >= pobj->c2) && (index < pobj->c3) && vget(wDataReadValid_3))
) {
vput(wDataWrite, 1);
}
}
} END_DEFINE_FUNC
DEFINE_FUNC(cncell_concat_gen_read_0) {
int index = vget(index);
vput(wDataRead_0, 0);
if (vget(nwReset) && vget(wDataWriteEnable)) {
if (((index >= 0) && (index < pobj->c0) && vget(wDataReadValid_0))) {
vput(wDataRead_0, 1);
}
}
} END_DEFINE_FUNC
DEFINE_FUNC(cncell_concat_gen_read_1) {
int index = vget(index);
vput(wDataRead_1, 0);
if (vget(nwReset) && vget(wDataWriteEnable)) {
if (((index >= pobj->c0) && (index < pobj->c1) && vget(wDataReadValid_1))) {
vput(wDataRead_1, 1);
}
}
} END_DEFINE_FUNC
DEFINE_FUNC(cncell_concat_gen_read_2) {
int index = vget(index);
vput(wDataRead_2, 0);
if (vget(nwReset) && vget(wDataWriteEnable)) {
if (((index >= pobj->c1) && (index < pobj->c2) && vget(wDataReadValid_2))) {
vput(wDataRead_2, 1);
}
}
} END_DEFINE_FUNC
DEFINE_FUNC(cncell_concat_gen_read_3) {
int index = vget(index);
vput(wDataRead_3, 0);
if (vget(nwReset) && vget(wDataWriteEnable)) {
if (((index >= pobj->c2) && (index < pobj->c3) && vget(wDataReadValid_3))) {
vput(wDataRead_3, 1);
}
}
} END_DEFINE_FUNC
DEFINE_FUNC(cncell_concat_gen_clktick) {
int index = vget(index);
if (vget(nwReset) == 0) {
......@@ -156,25 +231,25 @@ MODULE_INIT(cnncell_concat)
PORT_IN(wClk, 1);
PORT_IN(nwReset, 1);
GPORT_OUT(wDataRead_0, 1, cncell_concat_gen_read_write);
GPORT_OUT(wDataRead_0, 1, cncell_concat_gen_read_0);
PORT_IN(wDataReadValid_0, 1);
PORT_IN(bDataReadData_0, 32);
GPORT_OUT(wDataRead_1, 1, cncell_concat_gen_read_write);
GPORT_OUT(wDataRead_1, 1, cncell_concat_gen_read_1);
PORT_IN(wDataReadValid_1, 1);
PORT_IN(bDataReadData_1, 32);
GPORT_OUT(wDataRead_2, 1, cncell_concat_gen_read_write);
GPORT_OUT(wDataRead_2, 1, cncell_concat_gen_read_2);
PORT_IN(wDataReadValid_2, 1);
PORT_IN(bDataReadData_2, 32);
GPORT_OUT(wDataRead_3, 1, cncell_concat_gen_read_write);
GPORT_OUT(wDataRead_3, 1, cncell_concat_gen_read_3);
PORT_IN(wDataReadValid_3, 1);
PORT_IN(bDataReadData_3, 32);
PORT_IN(wDataWriteEnable, 1);
GPORT_OUT(wDataWrite, 1, cncell_concat_gen_read_write);
GPORT_OUT(bDataWriteData, 32, cncell_concat_gen_read_write);
GPORT_OUT(wDataWrite, 1, cncell_concat_gen_write);
GPORT_OUT(bDataWriteData, 32, cncell_concat_gen_write_data);
REG(index, 32);
......
......@@ -82,23 +82,10 @@ DEFINE_FUNC(hdl4se_fifo_gen_bReadData) {
} END_DEFINE_FUNC
DEFINE_FUNC(hdl4se_fifo_gen_wDataValid) {
/*unsigned int readaddr = vget(readpos);
unsigned int writeaddr = vget(writepos);
vput(wDataValid, readaddr == writeaddr ? 0 : 1);*/
VAssign(wDataValid, wReadEn);
} END_DEFINE_FUNC
DEFINE_FUNC(hdl4se_fifo_gen_wWriteEnable) {
/*
unsigned int readaddr = vget(readpos);
unsigned int writeaddr = vget(writepos);
unsigned int datacount;
if (writeaddr < readaddr)
datacount = writeaddr + pobj->depth - readaddr;
else
datacount = writeaddr - readaddr;
vput(wWriteEnable, (datacount >= pobj->depth - 4) ? 0 : 1);
*/
VAssign(wWriteEnable, wWriteEn);
} END_DEFINE_FUNC
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册