Skip to content

Commit c93260b

Browse files
committed
fix DPIC module reset
1 parent ae321d4 commit c93260b

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

src/main/scala/utility/ChiselPerfCCT.scala

+8-2
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,10 @@ trait HasDPICUtils extends BlackBox with HasBlackBoxInline {
6363
|${ports_input.map(x => "input [63:0] " + x).mkString("", ",\n", "")}
6464
|);
6565
| always@(posedge clock) begin
66-
| if(en && !reset) begin
66+
| if (reset) begin
67+
| ${if (has_out) port_output + "<= 0" else ""};
68+
| end
69+
| else if(en) begin
6770
| ${if (has_out) port_output + "<=" else " "}$dpicFunc(${ports_input.mkString("", ", ", "")});
6871
| end
6972
| end
@@ -258,14 +261,16 @@ class InstMeta
258261
class PerfCCT
259262
{
260263
const int MaxMetas = 1500;
261-
uint64_t sn_acc = 1;
264+
uint64_t sn_acc = 10;
262265

263266
std::vector<InstMeta> metas;
267+
InstMeta invalidMeta;
264268

265269
std::stringstream ss;
266270
std::string sql_insert_cmd;
267271

268272
InstMeta* getMeta(uint64_t sn) {
273+
if (sn == 0) [[unlikely]] return &invalidMeta;
269274
return &metas[sn%MaxMetas];
270275
}
271276

@@ -339,6 +344,7 @@ class PerfCCT
339344
if (!enable_dump_lifetime) [[likely]] return;
340345

341346
auto meta = getMeta(sn);
347+
if (meta == &invalidMeta) [[unlikely]] return;
342348
meta->posTick.at(AtCommit) = global_sim_tick;
343349
ss << sql_insert_cmd;
344350
ss << meta->posTick[0];

0 commit comments

Comments
 (0)