Skip to content

Commit e1b8428

Browse files
committed
tests: migrate to the new amaranth.sim API.
1 parent 45ff663 commit e1b8428

File tree

8 files changed

+977
-1046
lines changed

8 files changed

+977
-1046
lines changed

tests/test_csr_action.py

Lines changed: 51 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,14 @@ def test_simple(self):
1717
def test_sim(self):
1818
dut = action.R(unsigned(4))
1919

20-
def process():
21-
yield dut.r_data.eq(0xa)
22-
yield dut.port.r_stb.eq(1)
23-
yield Delay()
24-
self.assertEqual((yield dut.port.r_data), 0xa)
25-
self.assertEqual((yield dut.r_stb), 1)
20+
async def testbench(ctx):
21+
ctx.set(dut.r_data, 0xa)
22+
ctx.set(dut.port.r_stb, 1)
23+
self.assertEqual(ctx.get(dut.port.r_data), 0xa)
24+
self.assertEqual(ctx.get(dut.r_stb), 1)
2625

2726
sim = Simulator(dut)
28-
sim.add_testbench(process)
27+
sim.add_testbench(testbench)
2928
with sim.write_vcd(vcd_file="test.vcd"):
3029
sim.run()
3130

@@ -40,15 +39,14 @@ def test_simple(self):
4039
def test_sim(self):
4140
dut = action.W(unsigned(4))
4241

43-
def process():
44-
yield dut.port.w_data.eq(0xa)
45-
yield dut.port.w_stb.eq(1)
46-
yield Delay()
47-
self.assertEqual((yield dut.w_data), 0xa)
48-
self.assertEqual((yield dut.w_stb), 1)
42+
async def testbench(ctx):
43+
ctx.set(dut.port.w_data, 0xa)
44+
ctx.set(dut.port.w_stb, 1)
45+
self.assertEqual(ctx.get(dut.w_data), 0xa)
46+
self.assertEqual(ctx.get(dut.w_stb), 1)
4947

5048
sim = Simulator(dut)
51-
sim.add_testbench(process)
49+
sim.add_testbench(testbench)
5250
with sim.write_vcd(vcd_file="test.vcd"):
5351
sim.run()
5452

@@ -70,18 +68,18 @@ def test_simple(self):
7068
def test_sim(self):
7169
dut = action.RW(unsigned(4), init=0x5)
7270

73-
def process():
74-
self.assertEqual((yield dut.port.r_data), 0x5)
75-
self.assertEqual((yield dut.data), 0x5)
76-
yield dut.port.w_stb .eq(1)
77-
yield dut.port.w_data.eq(0xa)
78-
yield Tick()
79-
self.assertEqual((yield dut.port.r_data), 0xa)
80-
self.assertEqual((yield dut.data), 0xa)
71+
async def testbench(ctx):
72+
self.assertEqual(ctx.get(dut.port.r_data), 0x5)
73+
self.assertEqual(ctx.get(dut.data), 0x5)
74+
ctx.set(dut.port.w_stb, 1)
75+
ctx.set(dut.port.w_data, 0xa)
76+
await ctx.tick()
77+
self.assertEqual(ctx.get(dut.port.r_data), 0xa)
78+
self.assertEqual(ctx.get(dut.data), 0xa)
8179

8280
sim = Simulator(dut)
8381
sim.add_clock(1e-6)
84-
sim.add_testbench(process)
82+
sim.add_testbench(testbench)
8583
with sim.write_vcd(vcd_file="test.vcd"):
8684
sim.run()
8785

@@ -105,24 +103,24 @@ def test_simple(self):
105103
def test_sim(self):
106104
dut = action.RW1C(unsigned(4), init=0xf)
107105

108-
def process():
109-
self.assertEqual((yield dut.port.r_data), 0xf)
110-
self.assertEqual((yield dut.data), 0xf)
111-
yield dut.port.w_stb .eq(1)
112-
yield dut.port.w_data.eq(0x5)
113-
yield Tick()
114-
self.assertEqual((yield dut.port.r_data), 0xa)
115-
self.assertEqual((yield dut.data), 0xa)
116-
117-
yield dut.port.w_data.eq(0x3)
118-
yield dut.set.eq(0x4)
119-
yield Tick()
120-
self.assertEqual((yield dut.port.r_data), 0xc)
121-
self.assertEqual((yield dut.data), 0xc)
106+
async def testbench(ctx):
107+
self.assertEqual(ctx.get(dut.port.r_data), 0xf)
108+
self.assertEqual(ctx.get(dut.data), 0xf)
109+
ctx.set(dut.port.w_stb, 1)
110+
ctx.set(dut.port.w_data, 0x5)
111+
await ctx.tick()
112+
self.assertEqual(ctx.get(dut.port.r_data), 0xa)
113+
self.assertEqual(ctx.get(dut.data), 0xa)
114+
115+
ctx.set(dut.port.w_data, 0x3)
116+
ctx.set(dut.set, 0x4)
117+
await ctx.tick()
118+
self.assertEqual(ctx.get(dut.port.r_data), 0xc)
119+
self.assertEqual(ctx.get(dut.data), 0xc)
122120

123121
sim = Simulator(dut)
124122
sim.add_clock(1e-6)
125-
sim.add_testbench(process)
123+
sim.add_testbench(testbench)
126124
with sim.write_vcd(vcd_file="test.vcd"):
127125
sim.run()
128126

@@ -146,24 +144,24 @@ def test_simple(self):
146144
def test_sim(self):
147145
dut = action.RW1S(unsigned(4), init=0x5)
148146

149-
def process():
150-
self.assertEqual((yield dut.port.r_data), 0x5)
151-
self.assertEqual((yield dut.data), 0x5)
152-
yield dut.port.w_stb .eq(1)
153-
yield dut.port.w_data.eq(0xa)
154-
yield Tick()
155-
self.assertEqual((yield dut.port.r_data), 0xf)
156-
self.assertEqual((yield dut.data), 0xf)
157-
158-
yield dut.port.w_data.eq(0x3)
159-
yield dut.clear.eq(0x7)
160-
yield Tick()
161-
self.assertEqual((yield dut.port.r_data), 0xb)
162-
self.assertEqual((yield dut.data), 0xb)
147+
async def testbench(ctx):
148+
self.assertEqual(ctx.get(dut.port.r_data), 0x5)
149+
self.assertEqual(ctx.get(dut.data), 0x5)
150+
ctx.set(dut.port.w_stb, 1)
151+
ctx.set(dut.port.w_data, 0xa)
152+
await ctx.tick()
153+
self.assertEqual(ctx.get(dut.port.r_data), 0xf)
154+
self.assertEqual(ctx.get(dut.data), 0xf)
155+
156+
ctx.set(dut.port.w_data, 0x3)
157+
ctx.set(dut.clear, 0x7)
158+
await ctx.tick()
159+
self.assertEqual(ctx.get(dut.port.r_data), 0xb)
160+
self.assertEqual(ctx.get(dut.data), 0xb)
163161

164162
sim = Simulator(dut)
165163
sim.add_clock(1e-6)
166-
sim.add_testbench(process)
164+
sim.add_testbench(testbench)
167165
with sim.write_vcd(vcd_file="test.vcd"):
168166
sim.run()
169167

0 commit comments

Comments
 (0)