-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtoplevel.py
executable file
·42 lines (33 loc) · 1.13 KB
/
toplevel.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from myhdl import *
from ula_modules import *
@block
def toplevel(LEDR, SW, KEY, HEX0, HEX1, HEX2, HEX3, HEX4, HEX5, CLOCK_50, RESET_N):
sw_s = [SW(i) for i in range(10)]
key_s = [KEY(i) for i in range(10)]
ledr_s = [Signal(bool(0)) for i in range(10)]
# ---------------------------------------- #
# ula
# ---------------------------------------- #
ic1 = adder(sw_s[0:4], sw_s[6:10], ledr_s[0:4], ledr_s[9])
# ledr_unsigned = ConcatSignal(*reversed(ledr_s))
# ic2 = bin2hex(HEX0, ledr_unsigned)
@always_comb
def comb():
for i in range(len(ledr_s)):
LEDR[i].next = ledr_s[i]
return instances()
LEDR = Signal(intbv(0)[10:])
SW = Signal(intbv(0)[10:])
KEY = Signal(intbv(0)[4:])
HEX0 = Signal(intbv(1)[7:])
HEX1 = Signal(intbv(1)[7:])
HEX2 = Signal(intbv(1)[7:])
HEX3 = Signal(intbv(1)[7:])
HEX4 = Signal(intbv(1)[7:])
HEX5 = Signal(intbv(1)[7:])
CLOCK_50 = Signal(bool())
RESET_N = ResetSignal(0, active=0, isasync=True)
top = toplevel(LEDR, SW, KEY, HEX0, HEX1, HEX2, HEX3, HEX4, HEX5, CLOCK_50, RESET_N)
top.convert(hdl="VHDL")