#PLI# Verilog ACC 子程序列表(五)

      最后更新:2022-03-21 04:44

      为了确保该次级程序的原始汁汁,这是我第一次做笔译员 我从来没有做过笔译员每个次级程序都保留英文说明。本节没有对所有次级程序进行核查。这是我从小第一次进入紧急状态可能会有所疏漏,欢迎指正。在使用相关类型的次级程序时,请注意对这些次级程序进行彻底审查。在其他样本中,提到了参数的类型和设置。

      行政协调会分程序的基本五类是处理(处理)、后续(文本)、价值变化(VCL)、起飞(取货)、杂项(住所)和修改(修改)等。

      句柄子程序

      返回类型 调用格式及说明
      handle ◆acc_handle_by_name(char *name, handle scope)
      Get the handle to any named object based on its name and scope
      handle ◆acc_handle_calling_mod_m()
      Get a handle to the module containing the instance of the user-defined system task or function that called the PLI application.
      handle ◆acc_handle_condition(handle object)
      Get a handle to the conditional expression of a module path, data path, or timing check terminal
      handle ◆acc_handle_conn(handle terminal)
      Get the handle to the net connected to a primitive terminal, path terminal, or timing check terminal.
      handle ◆acc_handle_datapath(handle modpath)
      Get a handle to a data path for an edge-sensitive module path.
      handle ◆acc_handle_hiconn(handle port)
      Get the hierarchically higher net connection to a scalar module port or a bit-select of a vector port.
      handle ◆acc_handle_interactive_scope()
      Get a handle to the current interactive scope of the software tool.
      handle ◆acc_handle_loconn(handle port)
      Gets the hierarchically lower net connection to a scalar module port or a bit-select of a vector port.
      handle ◆acc_handle_modpath(handle module, char *source, char *dest, handle source, handle dest)
      Gets a handle to a module path whose source are specified.
      handle ◆acc_handle_notifier(handle tchk)
      Get the notifier reg associated with a particular timing check.
      handle ◆acc_handle_object(char *name)
      Get a handle for any named object.
      handle ◆acc_handle_parent(handle object)
      Get a handle for the parent primitive instance or module instance of an object.
      handle ◆acc_handle_path(handle output, handle input)
      Get a handle to an intermodule path that represents the connection from an output or inout port to an input or inout port.
      handle ◆acc_handle_pathin(handle path)
      Get a handle for the first net connected to a module path source.
      handle ◆acc_handle_pathout(handle path)
      Get a handle for the first net connected to a module path destination.
      handle ◆acc_handle_port(handle module, int port_index)
      Get a handle for a module port, based on the position of the port.
      handle ◆acc_handle_scope(handle object)
      Get a handle to the scope that contains an object.
      handle ◆acc_handle_simulated_net(handle collapsed_net_handle)
      Get the simulated net associated with the collapsed net passed as an argument.
      handle ◆acc_handle_tchk(handle module, int tchk_type, char *conn_name1, int edge_type1, char *conn_name2, int edge_type2, handle conn_name1_handle, handle conn_name2_handle)
      Get a handle for the specified timing check of a module (or cell).
      handle ◆acc_handle_tchkarg1(handle tchk)
      Get a handle for the timing check terminal connected to the first argument of a timing check.
      handle ◆acc_handle_tchkarg2(handle tchk)
      Get a handle for the timing check terminal connected to the second argument of a timing check.
      handle ◆acc_handle_terminal(handle primitive, int terminal_index)
      Get a handle for a primitive terminal based on the position of the primitive terminal.
      handle ◆acc_handle_tfarg(int arg_num)
      ◆acc_handle_itfarg(int arg_num, handle instance)
      Get a handle for the specified argument of a user-defined system task or function that invokes the PLI routine.
      handle ◆acc_handle_tfinst()
      Get a handle to the current user-defined system task or function call.

      后继子程序

      返回类型 调用格式及说明
      handle ◆acc_next(int object_type_array, handle reference, handle object)
      Get handles to objects of each type specified in an array within the reference scope.
      handle ◆acc_next_bit(handle reference, handle current_bit)
      Get handles to bits in a port or expanded vector.
      handle ◆acc_next_cell(handle reference, hand current_cell)
      Get handles to cell instances within a region that includes the entire hierarchy below a module.
      handle ◆acc_next_cell_load(handle reference, hand current_cell_load)
      Get handles for cell loads on a net.
      handle ◆acc_next_child(handle reference, handle current_child)
      Get handles for children of a module.
      handle ◆acc_next_driver(handle reference, handle current_driver)
      Get handles to primitive terminals that drive a net.
      handle ◆acc_next_hiconn(handle referenct, handle current_net)
      Get handles for hierarchically higher net connections to a module port.
      handle ◆acc_next_input (handle reference, handle current_terminal)
      Get handles to input path terminals of a module path, source terminals of a data path, or the terminals of a timing check.
      handle ◆acc_next_load(handle reference, handle current_load)
      Get handles to primitive terminals driven by a net.
      handle ◆acc_next_loconn(handle reference, handle current_net)
      Get handles to hierarchically lower net connections to a port of a module.
      handle ◆acc_next_modpath(handle reference, handle path)
      Get handles to module paths of a module.
      handle ◆acc_next_net(handle reference, handle curretn_net)
      Get handles to nets in a module.
      handle ◆acc_next_output(handle reference, handle current_terminal)
      Get handles to output path terminals of a module path or data path.
      handle ◆acc_next_parameter(handle reference, handle current_parameter)
      Get handles to parameters within a module.
      handle ◆acc_next_port(handle reference, handle current_port)
      Gets handles to the ports of a module, or to ports which are connected to a given net or reg.
      handle ◆acc_next_portout(handle reference, handle current_port)
      Get handles to output or inout ports of a module.
      handle ◆acc_next_primitive(handle reference, handle current_primitive)
      Get handles to gates, switches, or user-defined primitives (UDPs) within a module.
      handle ◆acc_next_scope(handle reference, handle current_scope)
      Get handles to hierarchy scopes within a scope.
      handle ◆acc_next_specparam(handle reference, handle current_specparam)
      Get handles to specify block parameters within a module.
      handle ◆acc_next_tchk(handle reference, handle timing_check)
      Get handles to timing checks within a module.
      handle ◆acc_next_terminal(handle reference, handle terminal)
      Get handles to terminals of a gate, switch, or user-defined primitive.
      handle ◆acc_next_topmod(handle top_module)
      Get handles to top-level modules.

      值变链接子程序

      返回类型 调用格式及说明
      void ◆acc_vcl_add(handle object, C_function unquoted name, char *user_data, int vcl_flag)
      Set a callback to a consumer routine with value change information whenever an object changes value.
      consumer_routine() is the unquoted name of a C function to be called.
      void ◆acc_vcl_delete(handle object, C_function consumer_routine() , char *user_data, int vcl_flag)
      Removes a VCL callback monitor.
      consumer_routine() is the unquoted name of a C function to be called.

      取值子程序

      返回类型 调用格式及说明
      int ◆acc_fetch_argc()
      Get the number of command-line arguments supplied with a Verilog software tool invocation.
      char * ◆acc_fetch_argv()
      Get an array of character pointers that make up the command-line arguments for a Verilog software product invocation.
      double ◆acc_fetch_attribute(handle object, char *attribute, double default)
      Get the value of a parameter or specparam named as an attribute in the Verilog source description.
      int ◆acc_fetch_attribute_int(handle object, char *attribute, int default)
      Get the integer value of a parameter or specparam named as an attribute in the Verilog source description.
      char * ◆acc_fetch_attribute_str(handle object, char *attribute, char *default)
      Get the value of a parameter or specparam named as an attribute in the Verilog source description.
      char * ◆acc_fetch_defname(handle object)
      Get the definition name of a module instance or primitive instance.
      int ◆acc_fetch_delay_mode(handle module)
      Get the delay mode of a module instance.
      int ◆acc_fetch_delays(handle object, double *rise_delay, double *fall_delay, double *trunoff_delay)
      ◆acc_fetch_delays(handle object, double *rise_delay, double *d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12)
      Get existing delays for primitives, module paths, timing checks, module input ports, and intermodule paths.
      int ◆acc_fetch_direction(handle object)
      Get the direction of a port or terminal
      int ◆acc_fetch_edge(handle pathio)
      Get the edge specifier of a module path or timing check terminal.
      char * ◆acc_fetch_fullname(handle object)
      Get the full hierarchical name of any named object or module path.
      int ◆acc_fetch_fulltype(handle object)
      Get the fulltype of an object.
      int ◆acc_fetch_index(handle object)
      Get the index number for a port or terminal.
      int ◆acc_fetch_location(p_location loc_p, handle object)
      Get the location of an object in a Verilog-HDL source file.
      p_location is a data structure, defined in acc_user.h.
      char * ◆acc_fetch_name(handle object)
      Get the instance name of any named object or module path.
      int ◆acc_fetch_paramtype(handle parameter)
      Get the data type of a parameter or specparam.
      double ◆acc_fetch_paramval(handle parameter)
      Get the value of a parameter or specparam.
      int ◆acc_fetch_polarity(handle path)
      Get the polarity of a path.
      int ◆acc_fetch_precision()
      Get the smallest time precision argument specified in all `timescale compiler directives in a given design.
      int ◆acc_fetch_pulsere(handle object, double *r1, double *e1, double *r2, double *e2, ......, double *r12, double *e12)
      Get current pulse handling reject_limit and e_limit for a module path, intermodule path or module input port.
      int ◆acc_fetch_range(handle vector, int *msb, int *lsb)
      Get the most significant bit and least significant bit range values for a vector.
      int ◆acc_fetch_size(handle object)
      Get the bit size of a net, reg, integer, time, real or port.
      double ◆acc_fetch_tfarg(int arg_number)
      ◆acc_fetch_itfarg(int arg_number, handle tfinst)
      Get the value of the specified argument of the system task or function associated with the PLI application; the value is returned as a double-precision number
      int ◆acc_fetch_tfarg_int(int arg_number)
      ◆acc_fetch_itfarg_int(int arg_number, handle tfinst)
      Get the value of the specified argument of the system task or function associated with the PLI application; the value is returned as an integer number.
      char * ◆acc_fetch_tfarg_str(int arg_number)
      ◆acc_fetch_itfarg_str(int arg_number, handle tfinst)
      Get the value of the specified argument of the system task or function associated with the PLI application; the value is returned as a pointer to a character string.
      void ◆acc_fetch_timescale_info(handle object, p_timescale_info timescale_p)
      Get timescale information for an object or for an active $timeformat system task invocation.
      p_timescale_info is a data structure, defined in acc_user.h.
      int ◆acc_fetch_type(handle object)
      Get the type of an object.
      char * ◆acc_fetch_type_str(int type)
      Get a string that indicates the type of its argument.
      char * ◆acc_fetch_value(handle object, char *format, s_acc_value *value)
      Get the logic or strength value of a net, reg, or variable
      s_acc_value is a data structure, defined in acc_user.h.

      杂项子程序

      返回类型 调用格式及说明
      void ◆acc_close()
      Free internal memory used by ACC routines; reset all configuration parameters to default values.
      handle * ◆acc_collect(handle *next_routine, handle object, int num_of_objects)
      Obtain an array of handles for all objects related to a particular reference object; get the number of objects collected.
      int ◆acc_compare_handles(handle object1, handle object2)
      Determine if two handles refer to the same object.
      int ◆acc_configure(int config_param, char *config_value)
      Set parameters that control the operation of various ACC routines.
      int ◆acc_count(handle *next_routine, handle object)
      Count the number of objects related to a particular reference object.
      int ◆acc_initialize()
      Initializes the environment for ACC routines.
      int ◆acc_object_in_typelist(handle object, int object_type_array[])
      Determine whether an object fits a type or fulltype, or special property, as specified in an input array.
      int ◆acc_object_of_type(handle object, int object_type)
      Determine whether an object fits a specified type or fulltype, or special property.
      int ◆acc_product_type()
      Get the software product type that is calling the PLI application.
      char * ◆acc_product_version()
      Get the version of the software product that is linked to the ACC routines.
      int ◆acc_release_object(handle object)
      Deallocate memory allocated by calls to acc_next_input() and acc_next_output().
      void ◆acc_reset_buffer()
      Reset the string buffer to the beginning.
      handle ◆acc_set_interactive_scope(handle scope, int callback_flag)
      Set the interactive scope of a software tool.
      char* ◆acc_set_scope(handle module, char *module_name)
      Set a scope for acc_handle_object() to use when searching in the design hierarchy.
      char * ◆acc_version()
      Get a pointer to a character string that indicates version number of the ACC routine software.

      修改子程序

      返回类型 调用格式及说明
      int ◆acc_append_delays(handle object, double *rise_delay, double *fall_delay, double *trunoff_delay)
      ◆acc_append_delays(handle object, double *d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12)
      ◆acc_append_delays(handle object, double limit)
      Add delays to existing delay on primitives, module paths, intermodule paths, timing checks, and module input ports.
      int ◆acc_append_pulsere(handle object, double *r1, double *e1, double *r2, double *e2, ......, double *r12, double *e12)
      Add delays to existing pulse handling reject_limit and e_limit for a module path, intermodule path or module input port.
      int ◆acc_release_object(handle object)
      Deallocate memory allocated by calls to acc_next_input() and acc_next_output().
      int ◆acc_replace_delays(handle object, double *rise_delay, double *fall_delay, double *trunoff_delay)
      ◆acc_replace_delays(handle object, double *d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12)
      ◆acc_replace_delays(handle object, double limit)
      Replace existing delays for primitives, module paths, timing checks, module input ports, and inter-module paths.
      int ◆acc_replace_pulsere(handle object, double *r1, double *e1, double *r2, double *e2, ......, double *r12, double *e12)
      Replace existing pulse handling reject_limit and e_limit for a module path, intermodule path or module input port.
      int ◆acc_set_pulsere(handle path, double reject_percentage, double e_percentage)
      Set the pulse handling values for a module path, intermodule path or module input port as a percentage of the delay.
      int ◆acc_set_value(handle object, p_setval_value value_p, p_setval_delay delay_p)
      Set and propagate a value on a reg, variable, user-defined system function or a sequential UDP; procedurally assign a reg or variable; force a reg, variable, or net.
      p_setval_value and p_setval_delay are data structure, defined in acc_user.h.

      结构体

      以下各节概述了行政协调会次级方案设计的某些结构特点。

      涉及的函数 结构体
      acc_fetch_location typedef struct t_location
      {
      PLI_INT32 line_no;
      PLI_BYTE8 *filename;
      } s_location, *p_location;
      p_timescale_info typedef struct t_timescale_info
      {
      PLI_INT16 unit;
      PLI_INT16 precision;
      } s_timescale_info, *p_timescale_info;
      acc_fetch_value
      acc_set_value
      typedef struct t_setval_value
      {
      PLI_INT32 format;
      union
      {
      PLI_BYTE8    *str;
      PLI_INT32      scalar;
      PLI_INT32      integer;
      double        real;
      p_acc_vecval vector;
      } value;
      } s_setval_value, *p_setval_value, s_acc_value, *p_acc_value;
      acc_set_value typedef struct t_setval_delay
      {
      s_acc_time time;
      PLI_INT32  model;
      } s_setval_delay, *p_setval_delay;

      本文由 在线网速测试 整理编辑,转载请注明出处。

          热门文章

          文章分类