// (C) 2001-2025 Altera Corporation. All rights reserved.
// Your use of Altera Corporation's design tools, logic functions and other 
// software and tools, and its AMPP partner logic functions, and any output 
// files from any of the foregoing (including device programming or simulation 
// files), and any associated documentation or information are expressly subject 
// to the terms and conditions of the Altera Program License Subscription 
// Agreement, Altera IP License Agreement, or other applicable 
// license agreement, including, without limitation, that your use is for the 
// sole purpose of programming logic devices manufactured by Altera and sold by 
// Altera or its authorized distributors.  Please refer to the applicable 
// agreement for further details.


module altsource_probe_top
#(
    parameter lpm_type = "altsource_probe",     // required by the coding standard
    parameter lpm_hint = "UNUSED",              // required by the coding standard 

    parameter sld_auto_instance_index = "YES",  // Yes, if the instance index should be automatically assigned.
    parameter sld_instance_index = 0,           // unique identifier for the altsource_probe instance.
    parameter sld_node_info_parameter = 4746752 + sld_instance_index,   // The NODE ID to uniquely identify this node on the hub.  Type ID: 9 Version: 0 Inst: 0 MFG ID 110 -- ***NOTE*** this parameter cannot be called SLD_NODE_INFO or Quartus Standard will think it's an ISSP impl.
    parameter sld_ir_width = 4,                 
                                        
    parameter instance_id = "UNUSED",           // optional name for the instance.
    parameter probe_width = 1,                  // probe port width
    parameter source_width= 1,                  // source port width
    parameter source_initial_value = "0",       // initial source port value
    parameter enable_metastability = "NO"       // yes to add two register
)
(
    input [probe_width - 1 : 0] probe,       // probe inputs
    output [source_width - 1 : 0] source,    // source outputs
    input source_clk,                        // clock of the registers used to metastabilize the source output
    input tri1 source_ena                    // enable of the registers used to metastabilize the source output
);

    altsource_probe #(
        .lpm_type(lpm_type),
        .lpm_hint(lpm_hint),   
        .sld_auto_instance_index(sld_auto_instance_index),
        .sld_instance_index(sld_instance_index),
        .SLD_NODE_INFO(sld_node_info_parameter),
        .sld_ir_width(sld_ir_width),                          
        .instance_id(instance_id),
        .probe_width(probe_width),
        .source_width(source_width),
        .source_initial_value(source_initial_value),
        .enable_metastability(enable_metastability)
    )issp_impl
    (
        .probe(probe),
        .source(source),
        .source_clk(source_clk),
        .source_ena(source_ena)
    );
    
endmodule
`ifdef QUESTA_INTEL_OEM
`pragma questa_oem_00 "KaCcZ9W53ZG+KOUC3MpOxTkG8JzVU+FMIR8JyDs33NK1wcErIABMqJM+BlBnaEf20FCKJ7ToOlAha/ltC5u0ZbClu2TybZQciMInF+iFoiagt+B91BK4dyi6GJUCXUDuBK9YH6nNlwSkR01tHuzzS5ZEiJtw78iQaS7cFEmJNjv/muideRZVdy13EnGEeyFpK62Cg4KcVOZTCHinGABXbAtq/uBBjPG6GClkBmeTng31GtzCzqOWyhnJyVTbIu77fDb5qFZAg7C3kvJ5SpTaY7wB++S1rcIEtGBFnsU55jNtiKJaNI0KiEDB9j3qXJ6eAbfbMeMASPGiZOM8Kq3O4f5EVV3SWwlfraXC4G2jPj48Y0koT0Jr7JImK6Da3JMorsQX4qDKkj72kmgG5p88xOphRU1MyS51ZcAWRaeAdY/f4ws2yLNbMQp9ErhrzWgYMxQey0E2HbSaveFiDRsA3PKt/pPCyAdggnZGiXykMLSZ9iU1oLiQKJpmozSuJa4LQzyFjz2m2A8rvowXDRUheA318HI63RiD1PiaWVr8pFxsKFXcRMR3P4If8rkj64TjHRTj0qP4/blAQoLdXX98mhsWn/PtLrlVazstsdyg8YfeFLArOK7KtAsj0RqRZNzC2kaTizW5zSPzhz+87sw9yafvteOXB78fQndwRp2wqKSAbNMhI+CFMknl8HrZDqC8xtmQgtZl4/igbJLJukTC16mxzrZt8lwxk8jBPg0MabFl3MQf8Nte9tQYif+l7pPcHmfyRAthpjfVggR3ucXbUbOrgWBeGEezL7Mqh0dnQfec8gGKcE1QazxrfZqfj6EMOScOvRkbW6kaVQS2qq1o6HA2OGX/8e5ip1ABfVvg81aBTzS5EPiNM3U0oesfRRHNiLuhujjr9tmfOtv9EbRm80kvhwOgcFlXbkTYt+gizw1kAmLyUH5XMXhSm2blfnsQCUml+t5qq1SQkTIlZyOId0FAPXp0zZfI51fgNBx2fVevlwLCMznI7GwKi9oYKvXf"
`endif