class TechModules(cdl_desc.Modules):
    name = "tech"
    c_src_dir = "cmodel"
    src_dir = "cdl"
    tb_src_dir = "tb_cdl"
    cdl_include_dirs = ["cdl"]
    export_dirs = cdl_include_dirs + [src_dir]
    modules = []
    modules += [CdlModule("tech_sync_bit")]
    modules += [CdlModule("tech_sync_flop")]
    pass
class ApbModules(cdl_desc.Modules):
    name = "apb"
    src_dir      = "cdl"
    tb_src_dir   = "tb_cdl"
    libraries = {"std":True, "apb":True}
    cdl_include_dirs = ["cdl"]
    export_dirs = cdl_include_dirs + [ src_dir ]
    modules = []
    modules += [ CdlModule("apb_target_i2c_master") ]
    modules += [ CdlModule("i2c_slave_apb_master") ]
    modules += [ CdlModule("tb_apb_target_i2c", src_dir=tb_src_dir) ]
    pass
class TimerModules(cdl_desc.Modules):
    name = "clock_timer"
    src_dir = "cdl"
    tb_src_dir = "tb_cdl"
    libraries = {"std": True}
    cdl_include_dirs = ["cdl"]
    export_dirs = cdl_include_dirs + [src_dir]
    modules = []
    modules += [CdlModule("clock_timer")]
    modules += [CdlModule("clock_timer_async")]
    modules += [CdlModule("clock_timer_as_sec_nsec")]
    pass
class I2CModules(cdl_desc.Modules):
    name = "i2c"
    src_dir      = "cdl"
    tb_src_dir   = "tb_cdl"
    libraries = {"std":True}
    cdl_include_dirs = ["cdl"]
    export_dirs = cdl_include_dirs + [ src_dir ]
    modules = []
    modules += [ CdlModule("i2c_interface") ]
    modules += [ CdlModule("i2c_master") ]
    modules += [ CdlModule("i2c_slave") ]
    pass
Ejemplo n.º 5
0
class JtagModules(cdl_desc.Modules):
    name = "jtag"
    src_dir = "cdl"
    tb_src_dir = "tb_cdl"
    libraries = {"std": True, "apb": True}
    cdl_include_dirs = ["cdl"]
    export_dirs = cdl_include_dirs + [src_dir]
    modules = []
    modules += [CdlModule("jtag_tap")]
    modules += [CdlModule("jtag_tap_apb")]
    modules += [CdlModule("apb_target_jtag")]
    modules += [CdlModule("tb_jtag_apb_timer", src_dir=tb_src_dir)]
    pass
Ejemplo n.º 6
0
class DE1Modules(cdl_desc.Modules):
    name = "de1"
    libraries = {"std":True, "apb":True, "video":True, "utils":True, "io":True, "de1":True}
    c_src_dir   = "cmodel"
    src_dir     = "cdl"
    tb_src_dir  = "tb_cdl"
    cdl_include_dirs = ["cdl"]
    export_dirs      = cdl_include_dirs + [ src_dir ]
    modules = []
    modules += [ CdlModule("bbc_micro_de1_cl") ]
    modules += [ CdlModule("bbc_micro_de1_cl_io") ]
    modules += [ CdlModule("bbc_micro_de1_cl_bbc") ]

    pass
class FramebufferModules(cdl_desc.Modules):
    name = "framebuffer"
    c_src_dir   = "cmodel"
    src_dir     = "cdl"
    tb_src_dir  = "tb_cdl"
    libraries = {"apb":True, "std":True, "utils":True}
    cdl_include_dirs = ["cdl"]
    export_dirs      = cdl_include_dirs + [ src_dir ]
    modules = []
    modules += [ FramebufferTimingCdl("framebuffer_timing") ]
    modules += [ FramebufferTeletextCdl("framebuffer_teletext") ]
    modules += [ CdlModule("framebuffer") ]
    modules += [ CdlModule("tb_framebuffer_timing", src_dir=tb_src_dir) ]
    pass
Ejemplo n.º 8
0
class SimpleModules(cdl_desc.Modules):
    name = "simple"
    src_dir = "tests/simple"
    modules = []
    modules += [CdlModule("tie_high")]
    modules += [CdlModule("tie_both")]
    modules += [CdlModule("toggle")]
    modules += [CdlModule("invert")]
    modules += [CdlModule("and")]
    modules += [CdlModule("invert_chain")]
    modules += [CdlModule("constants")]
    modules += [CdlModule("mux")]
    modules += [CdlModule("alu")]
    modules += [CdlModule("mux_array")]
    pass
Ejemplo n.º 9
0
class SubsystemModules(cdl_desc.Modules):
    """
    Instantiation of a pipeline + control, debug, coprocessors,
    and trace, with 64kB SRAM and APB master interface
    """
    name = "subsystems"
    src_dir      = "cdl"
    tb_src_dir   = "tb_cdl"
    libraries = {"std":True}
    cdl_include_dirs = ["cdl"]
    export_dirs = cdl_include_dirs + [ src_dir ]
    modules = []
    modules += [ CdlModule("reve_r_subsystem_3") ]
    modules += [ CdlModule("reve_r_subsystem_5") ]
    pass
Ejemplo n.º 10
0
class CoreModules(cdl_desc.Modules):
    """
    These are processing modules used by the pipelines
    """
    name = "core"
    src_dir      = "cdl"
    tb_src_dir   = "tb_cdl"
    libraries = {"std":True}
    cdl_include_dirs = ["cdl"]
    export_dirs = cdl_include_dirs + [ src_dir ]
    modules = []
    modules += [ CdlModule("reve_r_alu") ]
    modules += [ CdlModule("reve_r_muldiv") ]
    modules += [ CdlModule("reve_r_dmem_request") ]
    modules += [ CdlModule("reve_r_dmem_read_data") ]
    pass
Ejemplo n.º 11
0
class PipelineModules(cdl_desc.Modules):
    """
    These are pipeline instances that use the decode, csrs and core modules
    They must be controlled by pipeline_control modules
    """
    name = "pipeline"
    src_dir      = "cdl"
    tb_src_dir   = "tb_cdl"
    libraries = {"std":True}
    cdl_include_dirs = ["cdl"]
    export_dirs = cdl_include_dirs + [ src_dir ]
    modules = []
    # The following includes decode (which is based on mode configs), and has a disableable compressed and coprocessor and e mode
    modules += [ CdlModule("reve_r_pipeline_dem_w") ]
    modules += [ CdlModule("reve_r_pipeline_d_e_m_w") ]
    pass
class PrngiModules(cdl_desc.Modules):
    name = "prng"
    src_dir = "cdl/prng"
    tb_src_dir = "tb_cdl"
    libraries = {"std": True, "apb": True}
    cdl_include_dirs = ["cdl", "cdl/prng"]
    export_dirs = cdl_include_dirs + [src_dir]
    modules = []
    modules += [CdlModule("prng_whiteness_monitor")]
    modules += [CdlModule("prng_entropy_mux_4")]
    modules += [CdlModule("prng")]
    modules += [
        CdlModule("apb_target_prng", constants={"cfg_disable_whiteness": 0})
    ]
    modules += [CdlModule("tb_prng", src_dir=tb_src_dir)]
    pass
Ejemplo n.º 13
0
class Axi4sModules(cdl_desc.Modules):
    name = "axi4s"
    src_dir      = "cdl"
    tb_src_dir   = "tb_cdl"
    libraries = {"std":True, "utils":True}
    cdl_include_dirs = ["cdl"]
    export_dirs = cdl_include_dirs + [ src_dir ]
    modules = []
    modules += [ CdlModule("axi4s32_fifo_4",
                           force_includes=["axi4s.h"],
                           types={"gt_generic_valid_req":"t_axi4s32"},
                           cdl_module_name="generic_valid_ack_fifo",
                           instance_types={"fifo_status":"fifo_status_7"},
    ) ]
    modules += [ CdlModule("apb_target_axi4s") ]
    modules += [ CdlModule("tb_apb_target_axi4s", src_dir="tb_cdl") ]
    pass
Ejemplo n.º 14
0
class TraceModules(cdl_desc.Modules):
    """
    The trace modules supply a standard interface out to provide trace information.
    There is also a simple standard trace compression supported.
    """
    name = "trace"
    src_dir      = "cdl"
    tb_src_dir   = "tb_cdl"
    libraries = {"std":True}
    cdl_include_dirs = ["cdl"]
    export_dirs = cdl_include_dirs + [ src_dir ]
    modules = []
    modules += [ CdlModule("reve_r_trace") ]
    modules += [ CdlModule("reve_r_trace_pack") ]
    modules += [ CdlModule("reve_r_trace_compression") ]
    modules += [ CdlModule("reve_r_trace_decompression") ]
    pass
Ejemplo n.º 15
0
class AnalyzerModules(cdl_desc.Modules):
    name = "analyzer"
    src_dir = "cdl"
    tb_src_dir = "tb_cdl"
    libraries = {"std": True}
    cdl_include_dirs = ["cdl"]
    export_dirs = cdl_include_dirs + [src_dir]
    modules = []
    modules += [CdlModule("analyzer_mux_2")]
    modules += [
        CdlModule("analyzer_mux_8_e",
                  cdl_filename="analyzer_mux_8",
                  constants={"analyzer_config_num_targets": 2})
    ]
    modules += [CdlModule("analyzer_mux_8")]
    modules += [CdlModule("analyzer_target")]
    modules += [CdlModule("analyzer_target_stub")]
    pass
Ejemplo n.º 16
0
class DecodeModules(cdl_desc.Modules):
    """
    The instruction decode modules provide decode of RISC-V instructions (i32, i32c)
    """
    name = "decode"
    src_dir      = "cdl"
    tb_src_dir   = "tb_cdl"
    libraries = {"std":True}
    cdl_include_dirs = ["cdl"]
    export_dirs = cdl_include_dirs + [ src_dir ]
    modules = []
    # The following use reve_r_csrs_decode - so a specific instance could be selected based on config
    modules += [ CdlModule("reve_r_i32_decode") ]
    modules += [ CdlModule("reve_r_e32_decode",                   cdl_filename="reve_r_i32_decode", constants={"rv_cfg_e32_force_enable":1}) ]
    modules += [ CdlModule("reve_r_i32c_decode") ]
    modules += [ CdlModule("reve_r_e32c_decode",                  cdl_filename="reve_r_i32c_decode", constants={"rv_cfg_e32_force_enable":1}) ]
    # modules += [ CdlModule("reve_r_debug_decode") ] This has been removed; the code is in i32_decode
    pass
Ejemplo n.º 17
0
class StructModules(cdl_desc.Modules):
    name = "struct"
    src_dir = "tests/struct"
    modules = []
    modules += [
        CdlModule("generic_fifo_word",
                  cdl_filename="generic_fifo",
                  types={"gt_fifo_content": "t_fifo_content_word"})
    ]  # force_includes=["dprintf.h"]
    modules += [
        CdlModule("generic_fifo_struct",
                  cdl_filename="generic_fifo",
                  types={"gt_fifo_content": "t_fifo_content_struct"})
    ]  # force_includes=["dprintf.h"]
    modules += [
        CdlModule("generic_fifo_hierarchy",
                  cdl_filename="generic_fifo",
                  types={"gt_fifo_content": "t_fifo_content_hierarchy"})
    ]  # force_includes=["dprintf.h"]
Ejemplo n.º 18
0
class ApbTargetModules(cdl_desc.Modules):
    name = "apb_target"
    src_dir = "cdl"
    tb_src_dir = "tb_cdl"
    libraries = {"std": True, "apb": True}
    cdl_include_dirs = ["cdl"]
    export_dirs = cdl_include_dirs + [src_dir]
    modules = []
    modules += [CdlModule("apb_target_analyzer")]
    pass
class ClockingModules(cdl_desc.Modules):
    name = "clocking"
    src_dir = "cdl"
    tb_src_dir = "tb_cdl"
    libraries = {"std": True}
    cdl_include_dirs = ["cdl"]
    export_dirs = cdl_include_dirs + [src_dir]
    modules = []
    modules += [CdlModule("clocking_eye_tracking")]
    modules += [CdlModule("clocking_phase_measure")]
    modules += [CdlModule("tb_clocking", src_dir=tb_src_dir)]
    modules += [CdlModule("tb_clock_timer", src_dir=tb_src_dir)]
    # Without cwv:  Ran 12 tests in 94.743s :real 1m34.834s: user: 1m17.309s sys 0m49.748s
    # With cwv:     Ran 12 tests in 87.201s :real 1m27.292s: user: 1m7.740s sys 0m51.569s
    # modules += [ CdlSimVerilatedModule("cwv__tb_clock_timer",
    #                                    cdl_filename="tb_clock_timer",
    #                                   src_dir=tb_src_dir,
    #                                   verilog_filename="tb_clock_timer",
    #                                   # extra_verilog=["../std/srw_srams.v", "../std/mrw_srams.v"]
    #                                   ) ]
    pass
class TeletextModules(cdl_desc.Modules):
    name = "teletext"
    c_src_dir   = "cmodel"
    src_dir     = "cdl"
    tb_src_dir  = "tb_cdl"
    libraries = {"apb":True, "std":True}
    cdl_include_dirs = ["cdl"]
    export_dirs      = cdl_include_dirs + [ src_dir ]
    modules = []
    # saa5050 needs t_bbc_micro_sram_request
    # modules += [ CdlModule("saa5050") ]
    modules += [ CdlModule("teletext",constants={"flashing_on_count":10,"max_flashing_count":40}) ]
    pass
Ejemplo n.º 21
0
class VerilogModules(cdl_desc.Modules):
    modules: List[cdl_desc.Module]
    name = "verilog"
    src_dir = "tests/verilog"
    modules = []
    modules += [Verilog("srw_rams")]
    modules += [CModel("rams")]
    modules += [CdlModule("ram_burst")]
    modules += [Verilog("ram_burst_v")]
    modules += [
        CdlSimVerilatedModule("ram_burst_v",
                              cdl_filename="ram_burst",
                              registered_name="ram_burst",
                              extra_verilog=["srw_rams.v"])
    ]
class KasumiModules(cdl_desc.Modules):
    name = "kasumi"
    src_dir = "cdl/kasumi"
    tb_src_dir = "tb_cdl"
    libraries = {"std": True}
    cdl_include_dirs = ["cdl/kasumi"]
    export_dirs = cdl_include_dirs + [src_dir]
    modules = []
    modules += [CdlModule("kasumi_fi")]
    modules += [CdlModule("kasumi_fo_cycles_3")]
    modules += [CdlModule("kasumi_sbox7")]
    modules += [CdlModule("kasumi_sbox9")]
    modules += [CdlModule("kasumi_cipher_3")]
    modules += [CdlModule("tb_kasumi_cipher", src_dir=tb_src_dir)]
    pass
Ejemplo n.º 23
0
class BBCChips(cdl_desc.Modules):
    name = "bbc"
    c_src_dir    = "cmodel"
    src_dir      = "cdl"
    tb_src_dir   = "tb_cdl"
    libraries = {"std":True, "apb":True, "video":True}
    cdl_include_dirs = ["cdl"]
    export_dirs = cdl_include_dirs + [ src_dir ]
    modules = []
    modules += [ CdlModule("fdc8271") ]
    modules += [ CdlModule("acia6850") ]
    modules += [ CdlModule("via6522") ]
    modules += [ CdlModule("crtc6845") ]
    modules += [ CdlModule("saa5050") ]
    modules += [ CdlModule("cpu6502") ]
    pass
Ejemplo n.º 24
0
class CSRModules(cdl_desc.Modules):
    """
    These are CSR modules, which implement the decode of CSRs (which could be expanded by a user) and the CSRs themselves.

    The configuration of the CSR modules depends on the mode supported - for example, some CSRs do not exist in some configurations
    """
    name = "csr"
    src_dir      = "cdl"
    tb_src_dir   = "tb_cdl"
    libraries = {"std":True}
    cdl_include_dirs = ["cdl"]
    export_dirs = cdl_include_dirs + [ src_dir ]
    modules = []
    modules += [ CdlModule("reve_r_csrs") ]
    # modules += [ CdlModule("reve_r_csrs_machine_only",           cdl_filename="reve_r_csrs", constants=reve_r_machine_constants) ]
    # modules += [ CdlModule("reve_r_csrs_machine_debug",          cdl_filename="reve_r_csrs", constants=reve_r_md_constants)      ]
    # modules += [ CdlModule("reve_r_csrs_machine_debug_user",     cdl_filename="reve_r_csrs", constants=reve_r_mdu_constants)     ]
    # modules += [ CdlModule("reve_r_csrs_machine_debug_user_irq", cdl_filename="reve_r_csrs", constants=reve_r_mdui_constants)    ]

    # The decode modules are also configured by machine, debug, user etc enable; numerous modules should be built, probably
    # modules += [ CdlModule("reve_r_csrs_decode") ]
    pass
Ejemplo n.º 25
0
class PipelineControlModules(cdl_desc.Modules):
    """
    """
    name = "pipeline_control"
    src_dir      = "cdl"
    tb_src_dir   = "tb_cdl"
    libraries = {"std":True}
    cdl_include_dirs = ["cdl"]
    export_dirs = cdl_include_dirs + [ src_dir ]
    modules = []
    modules += [ CdlModule("reve_r_pipeline_control") ]
    modules += [ CdlModule("reve_r_pipeline_control_fetch_req") ]
    modules += [ CdlModule("reve_r_pipeline_control_fetch_data") ]
    modules += [ CdlModule("reve_r_pipeline_control_flow") ]
    modules += [ CdlModule("reve_r_pipeline_trap_interposer") ]
    modules += [ CdlModule("reve_r_pipeline_debug") ]
    pass
class VCU108Modules(cdl_desc.Modules):
    name = "vcu108"
    src_dir = "cdl"
    tb_src_dir = "tb_cdl"
    libraries = {"std": True, "apb": True}
    cdl_include_dirs = ["cdl"]
    export_dirs = cdl_include_dirs + [src_dir]
    modules = []
    modules += [CdlModule("subsys_minimal")]
    modules += [CdlModule("vcu108_debug")]
    modules += [
        CdlModule(
            "vcu108_riscv",
            instance_types={"riscv_i32_minimal_generic": "riscv_i32_minimal"},
            cdl_filename="vcu108_riscv_generic")
    ]
    modules += [
        CdlModule(
            "vcu108_riscv_3",
            instance_types={"riscv_i32_minimal_generic": "riscv_i32_minimal3"},
            cdl_filename="vcu108_riscv_generic")
    ]
    modules += [
        CdlModule("tb_vcu108_debug",
                  instance_types={"vcu108_generic": "vcu108_debug"},
                  cdl_filename="tb_vcu108_generic",
                  src_dir=tb_src_dir)
    ]
    modules += [
        CdlModule("tb_vcu108_riscv",
                  instance_types={"vcu108_generic": "vcu108_riscv"},
                  cdl_filename="tb_vcu108_generic",
                  src_dir=tb_src_dir)
    ]
    modules += [
        CdlModule("tb_vcu108_riscv_3",
                  instance_types={"vcu108_generic": "vcu108_riscv_3"},
                  cdl_filename="tb_vcu108_generic",
                  src_dir=tb_src_dir)
    ]
    pass
class DprintfModules(cdl_desc.Modules):
    name = "dprintf"
    c_src_dir = "cmodel"
    src_dir = "cdl"
    tb_src_dir = "tb_cdl"
    libraries = {"std": True}
    cdl_include_dirs = ["cdl"]
    export_dirs = cdl_include_dirs + [src_dir]
    modules = []
    modules += [
        CdlModule("async_reduce2_4_28_l",
                  constants={
                      "input_width": 4,
                      "output_width": 28,
                      "shift_right": 0,
                      "double_sr": 1
                  },
                  cdl_filename="generic_async_reduce")
    ]
    modules += [
        CdlModule("async_reduce2_4_28_r",
                  constants={
                      "input_width": 4,
                      "output_width": 28,
                      "shift_right": 1,
                      "double_sr": 1
                  },
                  cdl_filename="generic_async_reduce")
    ]
    modules += [
        CdlModule("async_reduce_4_28_l",
                  constants={
                      "input_width": 4,
                      "output_width": 28,
                      "shift_right": 0,
                      "double_sr": 0
                  },
                  cdl_filename="generic_async_reduce")
    ]
    modules += [
        CdlModule("async_reduce_4_28_r",
                  constants={
                      "input_width": 4,
                      "output_width": 28,
                      "shift_right": 1,
                      "double_sr": 0
                  },
                  cdl_filename="generic_async_reduce")
    ]
    modules += [
        CdlModule("async_reduce_4_60_l",
                  constants={
                      "input_width": 4,
                      "output_width": 60,
                      "shift_right": 0,
                      "double_sr": 0
                  },
                  cdl_filename="generic_async_reduce")
    ]
    modules += [
        CdlModule("async_reduce_4_60_r",
                  constants={
                      "input_width": 4,
                      "output_width": 60,
                      "shift_right": 1,
                      "double_sr": 0
                  },
                  cdl_filename="generic_async_reduce")
    ]

    modules += [CdlModule("dprintf")]
    modules += [CdlModule("hysteresis_switch")]
    modules += [CdlModule("clock_divider")]
    modules += [CdlModule("sram_access_mux_2")]

    modules += [
        CdlModule("fifo_status_1023",
                  constants={"fifo_depth_max": 1023},
                  cdl_filename="fifo_status")
    ]
    modules += [
        CdlModule("fifo_status_7",
                  constants={"fifo_depth_max": 7},
                  cdl_filename="fifo_status")
    ]

    modules += [
        CdlModule("dprintf_2_mux",
                  force_includes=["dprintf.h"],
                  types={"gt_generic_valid_req": "t_dprintf_req_2"},
                  cdl_filename="generic_valid_ack_mux")
    ]
    modules += [
        CdlModule("dprintf_4_mux",
                  force_includes=["dprintf.h"],
                  types={"gt_generic_valid_req": "t_dprintf_req_4"},
                  cdl_filename="generic_valid_ack_mux")
    ]
    modules += [
        CdlModule("dprintf_2_fifo_4",
                  force_includes=["dprintf.h"],
                  types={"gt_generic_valid_req": "t_dprintf_req_2"},
                  instance_types={"fifo_status": "fifo_status_7"},
                  constants={"fifo_depth": 3},
                  cdl_filename="generic_valid_ack_fifo")
    ]
    modules += [
        CdlModule(
            "dprintf_4_fifo_4",
            force_includes=[
                "dprintf.h"
            ],  # FIfo module has depth 4 as it has an output register and the FIFO internally of depth 3
            types={"gt_generic_valid_req": "t_dprintf_req_4"},
            instance_types={"fifo_status": "fifo_status_7"},
            constants={"fifo_depth": 3},
            cdl_filename="generic_valid_ack_fifo")
    ]
    modules += [
        CdlModule("dprintf_4_async",
                  force_includes=["dprintf.h"],
                  types={"gt_generic_valid_req": "t_dprintf_req_4"},
                  cdl_filename="generic_valid_ack_async_slow")
    ]
    modules += [CdlModule("dprintf_4_dp_sram_512")]
    modules += [
        CdlModule("dprintf_4_fifo_512",
                  force_includes=["dprintf.h"],
                  types={"gt_generic_valid_req": "t_dprintf_req_4"},
                  constants={"fifo_depth": 512},
                  instance_types={
                      "fifo_status": "fifo_status_1023",
                      "generic_valid_ack_dpsram": "dprintf_4_dp_sram_512"
                  },
                  cdl_filename="generic_valid_ack_sram_fifo")
    ]

    modules += [CdlModule("tb_dprintf", src_dir=tb_src_dir)]
    modules += [CdlModule("tb_dprintf_mux", src_dir=tb_src_dir)]
    modules += [CdlModule("tb_hysteresis_switch", src_dir=tb_src_dir)]

    pass
Ejemplo n.º 28
0
class LogModules(cdl_desc.Modules):
    name = "log"
    src_dir = "tests/log"
    modules = []
    modules += [CdlModule("lfsr_log_tracker")]
    pass
Ejemplo n.º 29
0
class ClockGateModules(cdl_desc.Modules):
    name = "struct"
    src_dir = "tests/clock_gate"
    modules = []
    modules += [CdlModule("gc_simple")]
    """
Ejemplo n.º 30
0
class VectorModules(cdl_desc.Modules):
    name = "vector"
    src_dir = "tests/vector"
    modules = []
    modules += [
        CdlModule("vector_toggle__width_16",
                  constants={"width": 16},
                  cdl_filename="vector_toggle")
    ]
    modules += [
        CdlModule("vector_toggle__width_18",
                  constants={"width": 18},
                  cdl_filename="vector_toggle")
    ]
    modules += [
        CdlModule("vector_toggle_complex__width_18",
                  constants={"width": 18},
                  cdl_filename="vector_toggle_complex")
    ]  #
    # , rmr:vector_toggle_complex=vector_toggle__width_18 rim:vector_toggle_complex=complex_cdl_model") ]
    modules += [
        CdlModule("vector_add__width_4",
                  constants={"width": 4},
                  cdl_filename="vector_add")
    ]
    modules += [
        CdlModule("vector_add__width_8",
                  constants={"width": 8},
                  cdl_filename="vector_add")
    ]
    modules += [
        CdlModule("vector_mult_by_11__width_8",
                  constants={"width": 8},
                  cdl_filename="vector_mult_by_11")
    ]
    modules += [
        CdlModule("vector_reverse__width_8",
                  constants={"width": 8},
                  cdl_filename="vector_reverse")
    ]
    modules += [
        CdlModule("vector_nest__width_8",
                  constants={"width": 8},
                  cdl_filename="vector_nest")
    ]
    modules += [
        CdlModule("vector_sum__width_4",
                  constants={"width": 4},
                  cdl_filename="vector_sum")
    ]
    modules += [
        CdlModule("vector_sum__width_8",
                  constants={"width": 8},
                  cdl_filename="vector_sum")
    ]
    modules += [
        CdlModule("vector_sum__width_64",
                  constants={"width": 64},
                  cdl_filename="vector_sum")
    ]
    modules += [CdlModule("vector_op_1")]
    modules += [CdlModule("vector_op_2")]
    modules += [
        CdlModule("vector_sum_2__width_4",
                  constants={"width": 4},
                  cdl_filename="vector_sum_2")
    ]

    modules += [
        CdlSimVerilatedModule(
            "vector_sum_2__width_4_v",
            verilog_filename="vector_sum_2__width_4",
            cdl_filename="vector_sum_2",
            constants={"width": 4},
        )
    ]
    pass