File tree Expand file tree Collapse file tree 3 files changed +40
-16
lines changed Expand file tree Collapse file tree 3 files changed +40
-16
lines changed Original file line number Diff line number Diff line change 1
1
from myhdl import *
2
2
from myhdl .conversion import analyze
3
3
4
- def dff (q , d , clk ):
5
-
4
+ def dff (t ,q , d , clk ):
6
5
@always (clk .posedge )
7
- def logic ():
8
- q .next = d
9
-
10
- return logic
6
+ def toggle ():
7
+ q .next = not q
8
+ def store ():
9
+ q .next = d
10
+ if t == 1 :
11
+ return logic
12
+ else return store
11
13
12
14
13
15
from random import randrange
14
16
15
- def test_dff ():
16
-
17
- q , d , clk = [Signal (bool (0 )) for i in range (3 )]
18
-
19
- dff_inst = dff (q , d , clk )
20
-
17
+ def test_dff ():
18
+ q , d = [[Signal (bool (0 )) for i in range (3 )] for i in range (2 )]
19
+ clk = [Signal (bool (0 )) for i in range (3 )]
20
+ counter = [dff (q , d , clk ) for i in range (2 )]
21
21
@always (delay (10 ))
22
22
def clkgen ():
23
23
clk .next = not clk
24
-
25
24
@always (clk .negedge )
26
25
def stimulus ():
27
26
d .next = randrange (2 )
28
-
29
27
return dff_inst , clkgen , stimulus
30
28
31
29
def simulate (timesteps ):
@@ -34,8 +32,8 @@ def simulate(timesteps):
34
32
sim = Simulation (tb )
35
33
sim .run (timesteps )
36
34
37
- simulate ( 2000 )
38
-
35
+ s = Simulation ( test_dff () )
36
+ s . run ( 2000 )
39
37
def convert ():
40
38
q , d , clk = [Signal (bool (0 )) for i in range (3 )]
41
39
toVerilog (dff , q , d , clk )
Original file line number Diff line number Diff line change
1
+ from myhdl import *
2
+
3
+
4
+ def tff (t ,q , d , clk ):
5
+ @always (clk .posedge )
6
+ def toggle ():
7
+ q .next = not q
8
+ def store ():
9
+ q .next = d
10
+ if t == 1 :
11
+ return logic
12
+ else :
13
+ return store
Original file line number Diff line number Diff line change
1
+ from myhdl import *
2
+
3
+
4
+ def tff (t ,q , d , clk ):
5
+ @always (clk .posedge )
6
+ def toggle ():
7
+ q .next = not q
8
+ def store ():
9
+ q .next = d
10
+ if t == 1 :
11
+ return logic
12
+ else :
13
+ return store
You can’t perform that action at this time.
0 commit comments