blob: 6aad95fe2d49090c6c42948c78839bd7f873cfdb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
import sys
from typing import Callable
from amaranth import Elaboratable
from amaranth.back import verilog, cxxrtl
def cmd(hdl, tb:Callable):
if len(sys.argv) <= 1:
exit()
if sys.argv[1] == "sim":
tb(sys.argv[0].replace('.py', '.vcd'))
exit()
if sys.argv[1] == "v":
out = verilog.convert(hdl, ports=hdl.ports)
with open(sys.argv[0].replace('.py', '.v'), 'w') as f:
f.write(out)
elif sys.argv[1] == "cc":
out = cxxrtl.convert(hdl, ports=hdl.ports)
with open(sys.argv[0].replace('.py', '.cc'), 'w') as f:
f.write(out)
|