Compare commits
4 Commits
49f52fdcc0
...
a946eb2e99
| Author | SHA1 | Date | |
|---|---|---|---|
| a946eb2e99 | |||
| 5d5cef8803 | |||
| aeb8a3f52c | |||
| 5a19e817b1 |
@ -22,7 +22,7 @@ def runDesign(topDef: str, arch: str, lib: str, std: str):
|
|||||||
wavePath = os.path.join(os.getcwd(), "wave")
|
wavePath = os.path.join(os.getcwd(), "wave")
|
||||||
command = [ ## may add -v for verbose
|
command = [ ## may add -v for verbose
|
||||||
"ghdl", "-r", f"{topDef}", f"{arch}",
|
"ghdl", "-r", f"{topDef}", f"{arch}",
|
||||||
f"--wave={os.path.join(libPath, topDef)}-{arch}.ghw" ##, "--read-wave-opt=<See"
|
f"--wave=../wave/{topDef}-{arch}.ghw" ##, "--read-wave-opt=<See"
|
||||||
]
|
]
|
||||||
subprocess.run(command, cwd=libPath)
|
subprocess.run(command, cwd=libPath)
|
||||||
command = [
|
command = [
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
import typer
|
import typer
|
||||||
import elab
|
import elab as elaborate
|
||||||
import build_env
|
import build_env
|
||||||
from typing_extensions import Annotated
|
from typing_extensions import Annotated
|
||||||
|
|
||||||
@ -28,7 +28,7 @@ def elab(
|
|||||||
std: Annotated[str, typer.Option(help="Which VHDL standard to use. 87, 93, 93c, 00, 02 or 08", autocompletion=complete_vhdl_ver)] = "93c"
|
std: Annotated[str, typer.Option(help="Which VHDL standard to use. 87, 93, 93c, 00, 02 or 08", autocompletion=complete_vhdl_ver)] = "93c"
|
||||||
):
|
):
|
||||||
print(f"Elaborating {topdef} with arch {arch} in library {library}. VHDL {std}")
|
print(f"Elaborating {topdef} with arch {arch} in library {library}. VHDL {std}")
|
||||||
return elab.elabDesign(topdef, arch, library, std)
|
return elaborate.elabDesign(topdef, arch, library, std)
|
||||||
|
|
||||||
@software.command(help="Simulates elaborated design in GHDL and views waves in gtkwave. Automatically runs `gantry elab` on the same top def and arch.")
|
@software.command(help="Simulates elaborated design in GHDL and views waves in gtkwave. Automatically runs `gantry elab` on the same top def and arch.")
|
||||||
def run(
|
def run(
|
||||||
@ -38,7 +38,7 @@ def run(
|
|||||||
std: Annotated[str, typer.Option(help="Which VHDL standard to use. 87, 93, 93c, 00, 02 or 08", autocompletion=complete_vhdl_ver)] = "93c"
|
std: Annotated[str, typer.Option(help="Which VHDL standard to use. 87, 93, 93c, 00, 02 or 08", autocompletion=complete_vhdl_ver)] = "93c"
|
||||||
):
|
):
|
||||||
print(f"Running (and synthesizing if needed) {topdef} with arch {arch} in library {library}. VHDL {std}")
|
print(f"Running (and synthesizing if needed) {topdef} with arch {arch} in library {library}. VHDL {std}")
|
||||||
return elab.runDesign(topdef, arch, library, std)
|
return elaborate.runDesign(topdef, arch, library, std)
|
||||||
|
|
||||||
@hardware.command()
|
@hardware.command()
|
||||||
def build():
|
def build():
|
||||||
|
|||||||
22
src/io_type_pkg.vhd
Normal file
22
src/io_type_pkg.vhd
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
library IEEE;
|
||||||
|
use IEEE.MATH_REAL.all;
|
||||||
|
|
||||||
|
package io_types is
|
||||||
|
|
||||||
|
type interface_def_t is record
|
||||||
|
name: string (1 to 20);
|
||||||
|
payload_width, control_width: natural;
|
||||||
|
end record interface_def_t;
|
||||||
|
|
||||||
|
type interface_arr_t is array (natural range <>) of interface_def_t;
|
||||||
|
|
||||||
|
constant interface_arr : interface_arr_t := (
|
||||||
|
0 => ("SoCBridge x ", 8, 2),
|
||||||
|
1 => ("SoCBridge x ", 8, 2),
|
||||||
|
2 => ("SoCBridge x ", 8, 2),
|
||||||
|
3 => ("SoCBridge x ", 8, 2),
|
||||||
|
4 => ("SoCBridge x ", 8, 2),
|
||||||
|
5 => ("SoCBridge x ", 8, 2)
|
||||||
|
);
|
||||||
|
|
||||||
|
end package io_types;
|
||||||
25
src/test.vhd
Normal file
25
src/test.vhd
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
library IEEE;
|
||||||
|
library work;
|
||||||
|
use work.io_types.all;
|
||||||
|
|
||||||
|
entity test is
|
||||||
|
port (
|
||||||
|
t : in interface_arr_t(0 to interface_arr'length - 1)
|
||||||
|
);
|
||||||
|
end entity test;
|
||||||
|
|
||||||
|
architecture rtl of test is
|
||||||
|
|
||||||
|
begin
|
||||||
|
|
||||||
|
proc_name: process
|
||||||
|
begin
|
||||||
|
|
||||||
|
for x in 0 to (interface_arr'length - 1) loop
|
||||||
|
report interface_arr(x).name ;
|
||||||
|
end loop;
|
||||||
|
wait;
|
||||||
|
end process proc_name;
|
||||||
|
|
||||||
|
|
||||||
|
end architecture rtl;
|
||||||
Loading…
x
Reference in New Issue
Block a user