Skip to content

Commit f538764

Browse files
committed
Assigned initvals to TmpRegLike signals
1 parent f58cd6f commit f538764

File tree

2 files changed

+38
-22
lines changed

2 files changed

+38
-22
lines changed

veriloggen/types/axi.py

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -500,22 +500,26 @@ def __init__(self, m, name, clk, rst, datawidth=32, addrwidth=32,
500500
self.wuser.assign(user_mode)
501501

502502
# user-side signals before skidbuffer
503-
wdata = m.TmpRegLike(self.wdata, prefix='_'.join(['', name, 'wdata', 'sb']))
504-
wstrb = m.TmpRegLike(self.wstrb, prefix='_'.join(['', name, 'wstrb', 'sb']))
505-
wlast = m.TmpRegLike(self.wlast, prefix='_'.join(['', name, 'wlast', 'sb']))
506-
wvalid = m.TmpRegLike(self.wvalid, prefix='_'.join(['', name, 'wvalid', 'sb']))
503+
wdata = m.TmpRegLike(self.wdata, initval=0,
504+
prefix='_'.join(['', name, 'wdata', 'sb']))
505+
wstrb = m.TmpRegLike(self.wstrb, initval=0,
506+
prefix='_'.join(['', name, 'wstrb', 'sb']))
507+
wlast = m.TmpRegLike(self.wlast, initval=0,
508+
prefix='_'.join(['', name, 'wlast', 'sb']))
509+
wvalid = m.TmpRegLike(self.wvalid, initval=0,
510+
prefix='_'.join(['', name, 'wvalid', 'sb']))
507511
wready = m.TmpWireLike(self.wready, prefix='_'.join(['', name, 'wready', 'sb']))
508512

509513
# skidbuffer
510514
sb = SkidBuffer(m, clk, rst,
511-
wvalid, self.wready, *[wdata, wstrb, wlast],
515+
wvalid, self.wready, *[wlast, wstrb, wdata],
512516
prefix='_'.join(['', 'sb', name, 'writedata']))
513517
wready.assign(sb.ready)
514518

515519
# AXI-side signals after skidbuffer
516-
self.wdata.assign(sb[0])
520+
self.wdata.assign(sb[2])
517521
self.wstrb.assign(sb[1])
518-
self.wlast.assign(sb[2])
522+
self.wlast.assign(sb[0])
519523
self.wvalid.assign(sb.valid)
520524

521525
# save AXI-side references
@@ -751,10 +755,10 @@ def __init__(self, m, name, clk, rst, datawidth=32, addrwidth=32,
751755

752756
# skidbuffer
753757
sb = SkidBuffer(m, clk, rst,
754-
self.rvalid, rready, *[self.rdata, self.rlast],
758+
self.rvalid, rready, *[self.rlast, self.rdata],
755759
prefix='_'.join(['', 'sb', name, 'readdata']))
756-
rdata.assign(sb[0])
757-
rlast.assign(sb[1])
760+
rdata.assign(sb[1])
761+
rlast.assign(sb[0])
758762
rvalid.assign(sb.valid)
759763

760764
# AXI-side signals after skidbuffer
@@ -897,20 +901,23 @@ def __init__(self, m, name, clk, rst, datawidth=32, addrwidth=32,
897901
self.seq = Seq(m, name + '_wdata', clk, rst)
898902

899903
# user-side signals before skidbuffer
900-
wdata = m.TmpRegLike(self.wdata, prefix='_'.join(['', name, 'wdata', 'sb']))
901-
wstrb = m.TmpRegLike(self.wstrb, prefix='_'.join(['', name, 'wstrb', 'sb']))
902-
wvalid = m.TmpRegLike(self.wvalid, prefix='_'.join(['', name, 'wvalid', 'sb']))
904+
wdata = m.TmpRegLike(self.wdata, initval=0,
905+
prefix='_'.join(['', name, 'wdata', 'sb']))
906+
wstrb = m.TmpRegLike(self.wstrb, initval=0,
907+
prefix='_'.join(['', name, 'wstrb', 'sb']))
908+
wvalid = m.TmpRegLike(self.wvalid, initval=0,
909+
prefix='_'.join(['', name, 'wvalid', 'sb']))
903910
wready = m.TmpWireLike(self.wready, prefix='_'.join(['', name, 'wready', 'sb']))
904911

905912
# skidbuffer
906913
sb = SkidBuffer(m, clk, rst,
907-
wvalid, self.wready, *[wdata, wstrb],
914+
wvalid, self.wready, *[wstrb, wdata],
908915
prefix='_'.join(['', 'sb', name, 'writedata']))
909916
wready.assign(sb.ready)
910917

911918
# AXI-side signals after skidbuffer
912-
self.wdata.assign(sb[0])
913-
self.wstrb.assign(sb[1])
919+
self.wdata.assign(sb[1])
920+
self.wstrb.assign(sb[0])
914921
self.wvalid.assign(sb.valid)
915922

916923
# save AXI-side references

veriloggen/types/skidbuffer.py

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,23 +24,32 @@ def __init__(self, m, clk, rst,
2424
self.m_ready = m_ready
2525

2626
width = 0
27+
_s_values = []
2728
for s_value in s_values:
29+
v = m.TmpWireLike(s_value, prefix=prefix + '_s_value')
30+
v.assign(s_value)
31+
_s_values.append(v)
2832
w = s_value.get_width()
2933
if w is None:
3034
w = 1
3135
width += w
3236

33-
s_data = m.TmpWire(width, prefix=prefix + '_data')
34-
s_data.assign(vtypes.Cat(*s_values))
37+
_s_data = m.TmpWire(width, prefix=prefix + '_s_data')
38+
_s_data.assign(vtypes.Cat(*_s_values))
39+
40+
_s_valid = m.TmpWire(prefix=prefix + '_s_valid')
41+
_s_valid.assign(s_valid)
42+
_m_ready = m.TmpWire(prefix=prefix + '_m_ready')
43+
_m_ready.assign(m_ready)
3544

3645
(m_data, m_valid, s_ready) = make_skidbuffer(m, clk, rst,
37-
s_data, s_valid, m_ready,
46+
_s_data, _s_valid, _m_ready,
3847
prefix=prefix)
3948

4049
self.m_values = []
4150
msb = width - 1
4251
for s_value in s_values:
43-
v = m.TmpWireLike(s_value, prefix=prefix + '_value')
52+
v = m.TmpWireLike(s_value, prefix=prefix + '_m_value')
4453
w = v.get_width()
4554
if w is None:
4655
w = 1
@@ -78,12 +87,12 @@ def make_skidbuffer(m, clk, rst,
7887
else:
7988
prefix = 'skidbuffer'
8089

81-
m_data = m.TmpRegLike(s_data, prefix=prefix + '_data')
90+
m_data = m.TmpRegLike(s_data, prefix=prefix + '_data', initval=0)
8291
m_valid = m.TmpReg(prefix=prefix + '_valid', initval=0)
8392

8493
s_ready = m.TmpWire(prefix=prefix + '_ready')
8594

86-
tmp_data = m.TmpRegLike(s_data, prefix=prefix + '_tmp_data')
95+
tmp_data = m.TmpRegLike(s_data, prefix=prefix + '_tmp_data', initval=0)
8796
tmp_valid = m.TmpReg(prefix=prefix + '_tmp_valid', initval=0)
8897

8998
next_data = m.TmpWireLike(s_data, prefix=prefix + '_next_data')

0 commit comments

Comments
 (0)