Skip to content

Commit 68c0c59

Browse files
committed
tests: follow RFC #27.
1 parent 6f59eec commit 68c0c59

File tree

5 files changed

+97
-137
lines changed

5 files changed

+97
-137
lines changed

tests/test_csr_bus.py

Lines changed: 30 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -240,57 +240,47 @@ def sim_test():
240240

241241
yield bus.addr.eq(0)
242242
yield bus.r_stb.eq(1)
243-
yield
244-
yield bus.r_stb.eq(0)
243+
yield Tick()
245244
self.assertEqual((yield elem_4_r.r_stb), 1)
246245
self.assertEqual((yield elem_16_rw.r_stb), 0)
247-
yield
248246
self.assertEqual((yield bus.r_data), 0xa)
249247

250248
yield bus.addr.eq(2)
251-
yield bus.r_stb.eq(1)
252-
yield
253-
yield bus.r_stb.eq(0)
249+
yield Tick()
254250
self.assertEqual((yield elem_4_r.r_stb), 0)
255251
self.assertEqual((yield elem_16_rw.r_stb), 1)
256-
yield
257-
yield bus.addr.eq(3) # pipeline a read
258252
self.assertEqual((yield bus.r_data), 0xa5)
259253

260-
yield bus.r_stb.eq(1)
261-
yield
262-
yield bus.r_stb.eq(0)
254+
yield bus.addr.eq(3) # pipeline a read
255+
yield Tick()
263256
self.assertEqual((yield elem_4_r.r_stb), 0)
264257
self.assertEqual((yield elem_16_rw.r_stb), 0)
265-
yield
266258
self.assertEqual((yield bus.r_data), 0x5a)
259+
yield bus.r_stb.eq(0)
260+
yield Delay()
267261

268262
yield bus.addr.eq(1)
269263
yield bus.w_data.eq(0x3d)
270264
yield bus.w_stb.eq(1)
271-
yield
272-
yield bus.w_stb.eq(0)
273-
yield bus.addr.eq(2) # change address
274-
yield
265+
yield Tick()
275266
self.assertEqual((yield elem_8_w.w_stb), 1)
276267
self.assertEqual((yield elem_8_w.w_data), 0x3d)
277268
self.assertEqual((yield elem_16_rw.w_stb), 0)
278-
yield
269+
270+
yield bus.w_stb.eq(0)
271+
yield bus.addr.eq(2) # change address
272+
yield Tick()
279273
self.assertEqual((yield elem_8_w.w_stb), 0)
280274

281275
yield bus.addr.eq(2)
282276
yield bus.w_data.eq(0x55)
283277
yield bus.w_stb.eq(1)
284-
yield
278+
yield Tick()
285279
self.assertEqual((yield elem_8_w.w_stb), 0)
286280
self.assertEqual((yield elem_16_rw.w_stb), 0)
287281
yield bus.addr.eq(3) # pipeline a write
288282
yield bus.w_data.eq(0xaa)
289-
yield
290-
self.assertEqual((yield elem_8_w.w_stb), 0)
291-
self.assertEqual((yield elem_16_rw.w_stb), 0)
292-
yield bus.w_stb.eq(0)
293-
yield
283+
yield Tick()
294284
self.assertEqual((yield elem_8_w.w_stb), 0)
295285
self.assertEqual((yield elem_16_rw.w_stb), 1)
296286
self.assertEqual((yield elem_16_rw.w_data), 0xaa55)
@@ -299,23 +289,21 @@ def sim_test():
299289
yield bus.r_stb.eq(1)
300290
yield bus.w_data.eq(0x66)
301291
yield bus.w_stb.eq(1)
302-
yield
292+
yield Tick()
303293
self.assertEqual((yield elem_16_rw.r_stb), 1)
304294
self.assertEqual((yield elem_16_rw.w_stb), 0)
305-
yield
295+
self.assertEqual((yield bus.r_data), 0xa5)
306296
yield bus.addr.eq(3) # pipeline a read and a write
307297
yield bus.w_data.eq(0xbb)
308-
self.assertEqual((yield bus.r_data), 0xa5)
309-
yield
310-
yield Delay()
298+
yield Tick()
311299
self.assertEqual((yield bus.r_data), 0x5a)
312300
self.assertEqual((yield elem_16_rw.r_stb), 0)
313301
self.assertEqual((yield elem_16_rw.w_stb), 1)
314302
self.assertEqual((yield elem_16_rw.w_data), 0xbb66)
315303

316304
sim = Simulator(dut)
317305
sim.add_clock(1e-6)
318-
sim.add_sync_process(sim_test)
306+
sim.add_testbench(sim_test)
319307
with sim.write_vcd(vcd_file=open("test.vcd", "w")):
320308
sim.run()
321309

@@ -359,28 +347,25 @@ def sim_test():
359347
yield bus.w_stb.eq(1)
360348
yield bus.addr.eq(0)
361349
yield bus.w_data.eq(0x55)
362-
yield
350+
yield Tick()
363351
self.assertEqual((yield elem_20_rw.w_stb), 0)
364352
yield bus.addr.eq(1)
365353
yield bus.w_data.eq(0xaa)
366-
yield
354+
yield Tick()
367355
self.assertEqual((yield elem_20_rw.w_stb), 0)
368356
yield bus.addr.eq(2)
369357
yield bus.w_data.eq(0x33)
370-
yield
358+
yield Tick()
371359
self.assertEqual((yield elem_20_rw.w_stb), 0)
372360
yield bus.addr.eq(3)
373361
yield bus.w_data.eq(0xdd)
374-
yield
375-
self.assertEqual((yield elem_20_rw.w_stb), 0)
376-
yield bus.w_stb.eq(0)
377-
yield
362+
yield Tick()
378363
self.assertEqual((yield elem_20_rw.w_stb), 1)
379364
self.assertEqual((yield elem_20_rw.w_data), 0x3aa55)
380365

381366
sim = Simulator(dut)
382367
sim.add_clock(1e-6)
383-
sim.add_sync_process(sim_test)
368+
sim.add_testbench(sim_test)
384369
with sim.write_vcd(vcd_file=open("test.vcd", "w")):
385370
sim.run()
386371

@@ -447,35 +432,35 @@ def sim_test():
447432
yield bus.addr.eq(elem_1_addr)
448433
yield bus.w_stb.eq(1)
449434
yield bus.w_data.eq(0x55)
450-
yield
435+
yield Tick()
451436
yield bus.w_stb.eq(0)
452-
yield
437+
yield Tick()
453438
self.assertEqual((yield elem_1.w_data), 0x55)
454439

455440
yield bus.addr.eq(elem_2_addr)
456441
yield bus.w_stb.eq(1)
457442
yield bus.w_data.eq(0xaa)
458-
yield
443+
yield Tick()
459444
yield bus.w_stb.eq(0)
460-
yield
445+
yield Tick()
461446
self.assertEqual((yield elem_2.w_data), 0xaa)
462447

463448
yield elem_1.r_data.eq(0x55)
464449
yield elem_2.r_data.eq(0xaa)
465450

466451
yield bus.addr.eq(elem_1_addr)
467452
yield bus.r_stb.eq(1)
468-
yield
453+
yield Tick()
469454
yield bus.addr.eq(elem_2_addr)
470-
yield
455+
yield Delay()
471456
self.assertEqual((yield bus.r_data), 0x55)
472-
yield
457+
yield Tick()
473458
self.assertEqual((yield bus.r_data), 0xaa)
474459

475460
m = Module()
476461
m.submodules += self.dut, mux_1, mux_2
477462
sim = Simulator(m)
478463
sim.add_clock(1e-6)
479-
sim.add_sync_process(sim_test)
464+
sim.add_testbench(sim_test)
480465
with sim.write_vcd(vcd_file=open("test.vcd", "w")):
481466
sim.run()

tests/test_csr_event.py

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
def simulation_test(dut, process):
1212
sim = Simulator(dut)
1313
sim.add_clock(1e-6)
14-
sim.add_sync_process(process)
14+
sim.add_testbench(process)
1515
with sim.write_vcd(vcd_file=open("test.vcd", "w")):
1616
sim.run()
1717

@@ -84,44 +84,42 @@ def process():
8484

8585
yield dut.bus.addr.eq(addr_enable)
8686
yield dut.bus.r_stb.eq(1)
87-
yield
88-
yield dut.bus.r_stb.eq(0)
89-
yield
87+
yield Tick()
9088
self.assertEqual((yield dut.bus.r_data), 0b0)
91-
yield
89+
yield dut.bus.r_stb.eq(0)
90+
yield Delay()
9291

9392
yield dut.bus.addr.eq(addr_enable)
9493
yield dut.bus.w_stb.eq(1)
9594
yield dut.bus.w_data.eq(0b1)
96-
yield
95+
yield Tick()
9796
yield dut.bus.w_stb.eq(0)
98-
yield; yield Delay()
99-
97+
yield Tick()
10098
self.assertEqual((yield dut.src.i), 1)
99+
101100
yield sub.i.eq(0)
102101
yield Delay()
103102
self.assertEqual((yield sub.trg), 0)
104103

105104
yield dut.bus.addr.eq(addr_pending)
106105
yield dut.bus.r_stb.eq(1)
107-
yield
108-
yield dut.bus.r_stb.eq(0)
109-
yield
106+
yield Tick()
110107
self.assertEqual((yield dut.bus.r_data), 0b1)
111-
yield
108+
yield dut.bus.r_stb.eq(0)
109+
yield Delay()
112110

113111
yield dut.bus.addr.eq(addr_pending)
114112
yield dut.bus.w_stb.eq(1)
115113
yield dut.bus.w_data.eq(0b1)
116-
yield
114+
yield Tick()
117115
yield dut.bus.w_stb.eq(0)
118-
yield
116+
yield Tick()
119117

120118
yield dut.bus.addr.eq(addr_pending)
121119
yield dut.bus.r_stb.eq(1)
122-
yield
123-
yield dut.bus.r_stb.eq(0)
124-
yield
120+
yield Tick()
125121
self.assertEqual((yield dut.bus.r_data), 0b0)
122+
yield dut.bus.r_stb.eq(0)
123+
yield Delay()
126124

127125
simulation_test(dut, process)

0 commit comments

Comments
 (0)