Skip to content

Commit 8f9fcc7

Browse files
authored
Merge pull request #3239 from verilog-to-routing/fixing_primitives_for_slang
Switching to Non-Blocking Assigns in Single/Dual Port Ram Primitives
2 parents 7743e68 + f34cce0 commit 8f9fcc7

File tree

2 files changed

+12
-12
lines changed

2 files changed

+12
-12
lines changed

parmys/third_party/vtr_flow/primitives.v

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -266,9 +266,9 @@ module single_port_ram #(
266266

267267
always@(posedge clk) begin
268268
if(we) begin
269-
Mem[addr] = data;
269+
Mem[addr] <= data;
270270
end
271-
out = Mem[addr]; //New data read-during write behaviour (blocking assignments)
271+
out <= Mem[addr]; //Old data read-first behaviour (non-blocking assignments)
272272
end
273273

274274
endmodule // single_port_RAM
@@ -314,16 +314,16 @@ module dual_port_ram #(
314314

315315
always@(posedge clk) begin //Port 1
316316
if(we1) begin
317-
Mem[addr1] = data1;
317+
Mem[addr1] <= data1;
318318
end
319-
out1 = Mem[addr1]; //New data read-during write behaviour (blocking assignments)
319+
out1 <= Mem[addr1]; //Old data read-first behaviour (non-blocking assignments)
320320
end
321321

322322
always@(posedge clk) begin //Port 2
323323
if(we2) begin
324-
Mem[addr2] = data2;
324+
Mem[addr2] <= data2;
325325
end
326-
out2 = Mem[addr2]; //New data read-during write behaviour (blocking assignments)
326+
out2 <= Mem[addr2]; //Old data read-first behaviour (non-blocking assignments)
327327
end
328328

329329
endmodule // dual_port_ram

vtr_flow/primitives.v

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -266,9 +266,9 @@ module single_port_ram #(
266266

267267
always@(posedge clk) begin
268268
if(we) begin
269-
Mem[addr] = data;
269+
Mem[addr] <= data;
270270
end
271-
out = Mem[addr]; //New data read-during write behaviour (blocking assignments)
271+
out <= Mem[addr]; //Old data read-first behaviour (non-blocking assignments)
272272
end
273273

274274
endmodule // single_port_RAM
@@ -314,16 +314,16 @@ module dual_port_ram #(
314314

315315
always@(posedge clk) begin //Port 1
316316
if(we1) begin
317-
Mem[addr1] = data1;
317+
Mem[addr1] <= data1;
318318
end
319-
out1 = Mem[addr1]; //New data read-during write behaviour (blocking assignments)
319+
out1 <= Mem[addr1]; //Old data read-first behaviour (non-blocking assignments)
320320
end
321321

322322
always@(posedge clk) begin //Port 2
323323
if(we2) begin
324-
Mem[addr2] = data2;
324+
Mem[addr2] <= data2;
325325
end
326-
out2 = Mem[addr2]; //New data read-during write behaviour (blocking assignments)
326+
out2 <= Mem[addr2]; //Old data read-first behaviour (non-blocking assignments)
327327
end
328328

329329
endmodule // dual_port_ram

0 commit comments

Comments
 (0)