srdl2sv/srdl2sv/components/templates/addrmap.yaml

71 lines
1.3 KiB
YAML

---
module_declaration:
rtl: |-
module {name}
<<INDENT>>
{import_package_list}
<<UNINDENT>>
(
<<INDENT>>
// Clock & Resets
input reg_clk,
input bus_clk,
input bus_rst_n,
{resets}
// Bus I/O
// TODO
// Inputs
{inputs}
// Outputs
{outputs}
<<UNINDENT>>
);
import_package:
rtl: |-
import {name}_pkg::*;
reset_port:
rtl:
input {name},
input_port:
rtl:
input {signal_type:{signal_width}} {name:{name_width}}{unpacked_dim},
output_port:
rtl:
output {signal_type:{signal_width}} {name:{name_width}}{unpacked_dim},
signal_declaration: |-
{type:{signal_width}} {name:{name_width}}{unpacked_dim};
package_declaration:
rtl: |-
package {name}_pkg;
{pkg_content}
endpackage
enum_declaration:
rtl: |-
typedef enum logic [{width}:0] {{
{enum_var_list}
}} {name};
enum_var_list_item:
rtl: |-
{name:{max_name_width}} = {width}'d{value}
read_mux:
rtl: |-
// Read multiplexer
always_comb
begin
case(addr)
{list_of_cases}
endcase
end
default_mux_case:
rtl: |-
default: sw_rd_bus = 0;
list_of_mux_cases:
rtl: |-
32'd{}: sw_rd_bus = {};