diff --git a/applications/apertif/designs/apertif_unb1_fn_bf_emu/src/myhdl/gen_mms_diag_block_gen.py b/applications/apertif/designs/apertif_unb1_fn_bf_emu/src/myhdl/gen_mms_diag_block_gen.py index 03caa5ee8e9a8986d4ca61c4e61b97841a01c604..10c9e80a450b0c8214cd325c37962bf2e8116395 100644 --- a/applications/apertif/designs/apertif_unb1_fn_bf_emu/src/myhdl/gen_mms_diag_block_gen.py +++ b/applications/apertif/designs/apertif_unb1_fn_bf_emu/src/myhdl/gen_mms_diag_block_gen.py @@ -39,10 +39,23 @@ Remarks: falls outside of the myHDL scope. . We use separate DP signals for now, but we may also combine them into a Python record as this is fully supported my myHDL. +Usage: +. python gen_mms_diag_block_gen.py +. VHDL files are generated in the same dir. """ from myhdl import * +############################################################################### +# Constants/generics +# . NOTE: use extra quotes around strings! +############################################################################### +G_NOF_STREAMS = 4 +G_BUF_DAT_W = 16 +G_BUF_ADDR_W = 256 +G_FILE_NAME_PREFIX = '"hex/bg_data"' # Note: extra quotes +G_DIAG_BLOCK_GEN_RST = '"FIXME"' # Note: extra quotes + ############################################################################### # MyHDL function definition # . VHDL entity I/O ports @@ -52,9 +65,9 @@ from myhdl import * # . Not described here (pass). We set the .vhdl_code attribute later on to # insert literal VHDL. ############################################################################### -def myhdl_mms_diag_block_gen_wrap(mm_rst,mm_clk,dp_rst,dp_clk,out_sosi_arr): +def myhdl_mms_diag_block_gen(g_nof_streams, g_buf_dat_w, g_buf_addr_w, g_file_name_prefix, g_diag_block_gen_rst, mm_rst,mm_clk,dp_rst,dp_clk,out_sosi_arr): - @always(dp_clk) + @always(mm_rst,mm_clk,dp_rst,dp_clk) def wrap(): # Nothing to do here. pass @@ -67,30 +80,41 @@ def myhdl_mms_diag_block_gen_wrap(mm_rst,mm_clk,dp_rst,dp_clk,out_sosi_arr): ############################################################################### # Architecture VHDL code: Instantiate mms_diag_block_gen +# . Note the $ prefix for all myHDL function (myhdl_mms_diag_block_gen) +# arguments. ############################################################################### -myhdl_mms_diag_block_gen_wrap.vhdl_code =\ +myhdl_mms_diag_block_gen.vhdl_code =\ """ u_mms_diag_block_gen : ENTITY diag_lib.mms_diag_block_gen GENERIC MAP ( - g_nof_streams => 4, - g_buf_dat_w => 16, - g_buf_addr_w => 256, - g_file_name_prefix => "hex/bg_data", - g_diag_block_gen_rst => c_bg_ctrl + g_nof_streams => $g_nof_streams, + g_buf_dat_w => $g_buf_dat_w, + g_buf_addr_w => $g_buf_addr_w, + g_file_name_prefix => $g_file_name_prefix, + g_diag_block_gen_rst => $g_diag_block_gen_rst ) PORT MAP ( - mm_rst => mm_rst, - mm_clk => mm_clk, + mm_rst => $mm_rst, + mm_clk => $mm_clk, - dp_rst => dp_rst, - dp_clk => dp_clk, + dp_rst => $dp_rst, + dp_clk => $dp_clk, - out_sosi_arr => out_sosi_arr + out_sosi_arr => $out_sosi_arr ); """ ############################################################################### # Convert to VHDL ############################################################################### -toVHDL(myhdl_mms_diag_block_gen_wrap,mm_rst,mm_clk,dp_rst,dp_clk,out_sosi_arr) +mm_clk = Signal(bool(0)) +mm_rst = Signal(bool(0)) +dp_clk = Signal(bool(0)) +dp_rst = Signal(bool(0)) +out_sosi_arr = Signal(intbv(0)[8:]) #FIXME + +toVHDL(myhdl_mms_diag_block_gen, G_NOF_STREAMS, G_BUF_DAT_W, G_BUF_ADDR_W, G_FILE_NAME_PREFIX, G_DIAG_BLOCK_GEN_RST,mm_rst,mm_clk,dp_rst,dp_clk,out_sosi_arr) + + +