VARON IP的生成、连接、嵌入与执行

嵌入VARON IP

VARON的第一步是在生成VARON IP之前创建具有探测信号列表的配置文件。 VARON IP由Verilog HDL编写,允许用户使用用户电路进行仿真。生成完成,并使用VARON IP运行RTL仿真并执行性能分析。

1. varon_ip_tool命令

“varon_ip_tool”命令是VARON生成并连接到用户电路命令。该命令需要配置文件和用户创建的连接文件。 “varon_ip_tool”的帮助信息如下所示。 % varon_ip_tool -help 用法: varon_ip_tool [options] 选项: -h,                    –帮助                                                                        显示此帮助 -g,                    –generate                                                                   VARON IP生成器 -c,                     –configuration                                                          VARON IP 配置 JSON 文件 [输入] -i,                      –inject                                                                      VARON IP 导入器 -f,                    –connection     VARON IP 连接JSON文件 -d,                     –libdir </path/co/script/directory>                       脚本运行的路径。 “-g”选项用于VARON IP生成。 “-i”选项是将VARON与用户电路连接的连接选项。“-g”选项的配置文件和“-i”选项的连接文件应以JSON格式描述。有关JSON格式的文件说明,请参阅“ 2 VARON IP生成”和“ 3 VARON IP连接”。

2. VARON IP生成

VARON IP生成的第一步是准备配置文件。 用户应使用JSON格式的VARON IP生成参数准备配置文件。VARON仿真版本包含示例配置文件,该文件允许用户作为创建配置文件的起点来满足设计。 带有配置文件的“ varon_ip_tool”命令生成VARON IP RTL。 以下是描述的设置参数 •设置执行环境 •设置VARON IP •设置总线结构 •设置总线端口组,端口

2.1 VARON IP 生成参数

下表显示了VARON IP配置文件的生成参数。
 
参数 类型 描述
执行环境设置
rtl_output_directory string 指定VARON IP输出目录
remove_files_in_output_directory_ before_execution true/false 在生成VARON IP之前控制“rtl_output_directory”目录中文件的删除。
VARON IP设置
VARON_IP_MODULE_NAME_HEADER string 添加到VARON IP的模块名称RTL开头的字符串, 通常使用“ VARON_”。 该参数允许用户避免将模块名称连接到用户电路。
ip_type string VARON 仿真版本仅支持“仿真”部分。
clock_counter_width bit width 指定VARON IP内的时钟计数器的位宽。 通常是32位。 当仿真时间超过32位时,请将其更改为较大的值。
time_stamp_width bit width VARON IP中时间戳的位宽。 禁止使用16以外的值。
time_stamp_trace_output_period bit width 触发数据的时间戳的位设置,该数据显示了VARON IP内部正在使用的时间。 通常为1,请使用15。
unit_time_counter_width bit width 指定单位时间计数器的位宽。通常32位,不要更改。只有单位时间超过32位的情况下,才能从32更改为更大的值。
buffer_type string 禁止使用“unified”以外的值。
buffer_size word size 禁止使用2048以外的值。
总线结构设置
bus_configuration bit width JSON排列数据格式。 描述了端口组的数字数组元素。
bus_configuration[n] port number “n”表示端口组描述的数组数据的每个元素。 指定端口组的“generator_parameter”部分。“port_list”部分按照JSON数组数据格式描述为端口中的数字数组元素。
端口组的设置(bus_configuration[n].generator_parameter)
group_id group number 指定端口组的编号。 必须与数组元素的索引匹配。 (每个元素从0和+1开始。禁止不连续组编号。)
axi_version 3 | 4 指定端口组的AXI总线的版本。 可能的值为3或4。
axi_id_width bit width 指定端口组的AXI ID的位宽。
clock_type string 将时钟类型指定为“main”或“async”。 “main”表示VARON将端口组的ACLK用作VARON基本时钟。 第一个ACLK端口组应为“ main”。 GUI使用“main”端口组的时间戳作为基本时钟。 如果时钟与基本时钟不同,请指定“async”。
clock_period period 将端口组的时钟周期指定为ns单位。
data_width bit width 指定端口组的数据总线的位宽。
端口设置(port_list[n])
port_id port number 指定端口号。 必须与数组元素的索引匹配。 (每个元素从0和+1开始。不连续端口号是禁止的。)
port_name port name (string) 指定”group_port< 3 digits of port number> _%s”。禁止使用其他字符串。
type string 请使用“ latency_counter”而不进行更改。
axi_id_fixed_part_width bit width 指定不变的AXI ID高位的位宽。 例如,当AXI ID的位宽为8位,而高5位始终为0时,将此参数设置为5。
buffer_index_size buffer size 在VARON IP的总线监视器中指定缓冲区大小。 表达式为(axi_id_width – axi_id_fixed_part_width) + ceil (log2 (the maximum outstanding value per 1 ID))。
out_of_order_completion 1 | 0 请使用默认值1不需更改。

2.2 VARON IP生成

VARON IP生成与创建的配置文件,请使用“varon_ip_tool -g”命令指定VARON IP工具提供的库目录。 ·执行命令: varon_ip_tool -g -d -c ·示例: varon_ip_tool -g -d /usr/lib64/varon_monitor_gui/ip_tool -c varon_ip_configuration_file.json 执行后,将RTL文件生成到配置文件中指定的“ RTL_output_directory”目录中。 使用VARON IP生成命令需要有效的许可证。 首次使用VARON生成和注入命令时,请先启动VARON Monitor,然后设置IP地址和许可证服务器的端口号。 许可证服务器设置完成后,将在用户的主目录中生成“ .varon_server_ip_port”文件,其中包含IP地址和端口号。

3. VARON IP连接

VARON IP应该插入目标用户的设计中。 以JSON格式编写的连接文件需要连接VARON IP信号和用户的设计。 执行“ varon_ip_tool”命令会生成带有嵌入式VARON IP的用户RTL文件。 用户可以选择插入VARON IP的层次结构,1)可以看到AXI总线信号的层次结构,2)较高层次结构。 VARON IP只能是用户设计中的一种。 VARON IP插入命令应读取目标用户的设计源文件以执行,从VARON IP插入的层次结构到可以看到AXI总线信号的下一层结构(命令需要了解方向和位宽)。 下表显示VARON IP连接参数
参数 类型 描述
为执行环境设置
target_design_diretory string 指定用户设计的RTL所在的目录名称。 可以用数组格式描述多个目录。 可以读取指定目录中和子目录下的所有RTL文件。 在没有指定目录的情况下,输入没有空数组。
ignore_diretory string 在上面指定的目录中指定ignore子目录。阅读更多RTL文件会使命令处理时间更长。包含RTL AI的VARON目录。
target_design_RTL_file string 指定用户电路的RTL文件名。注意,即使用户在此处指定,命令也无法访问“忽略目录”下的文件。
top_module string 指定插入VARON IP的用户设计模块名称。
VARON_RTL string 指定VARON IP顶部模块的“文件名”。
VARON_module string 指定VARON IP顶部模块名称。 默认值为“VARON_TOP”。 用户在VARON IP生成上更改了 VARON_IP_MODULE_NAME_HEADER,也需要在此处更改。
instance_name_header string 指定实例名称的标题字符串,它是自动生成的连接脚本。 在示例连接文件中定义了“i_”,这意味着VARON IP TOP的实例名称将为“i_VARON_TOP”。
net_name_header string 指定网络名称的标题字符串,该名称是连接脚本自动生成的。 在示例文件中定义了“n_”。
RTL_output_directory string 指定连接脚本生成RTL文件的目录。
updated_module_list_file string 指定连接脚本生成更新信息文件的文件名。此文件格式为JSON。
connection_list connection 通过JSON数组数据格式指定VARON IP的每个端口和连接网络名称。
用于解释连接的项
Port string 指定VARON IP的端口名称。
Net string 指定连接的网络名称,连接网络的格式如下表所示。
fixed_value string 指定VARON IP的端口名称。
用于解释连接网络的项
name string 指定网络名。
hierarchy string 指定网络的层次结构名称。 层次结构应该是用户设计模块插入VARON IP(在top_module参数上指定)的相对路径。 层次结构分隔符为“ /”。
下表显示了描述端口和网络连接格式的示例。
项目 描述格式
在VARON IP的相同层次结构中将端口与网络连接 {“ port”:”port name”, “ net”: {“ name”: “net name”}}
在VARON IP层次结构下将端口与网络连接 {“ port”:”port name”, “ net”: {“ name”: “net name”, “ hierarchy”:”hierarchy 1/hierarchy 2/hierarchy 3”}}
指定VARON IP端口的固定值(例如,AXI4Lite的突发长度) {“ port”:”port name”, “ fixed_value”: Verilog fixed value explanation}3

3.1 VARON IP 插入和执行

VARON IP插入命令为“ varon_ip_tool -i”。 它需要下面描述的一些选项,例如库目录和连接文件。 ·执行命令: varon_ip_tool -i -d -f ·执行示例: varon_ip_tool -i -d /usr/lib64/varon_monitor_gui/ip_tool -f varon_ip_connection_file.json 将插入VARON IP的RTL文件生成到连接文件中指定的“ RTL_output_directory”目录中。

4. 执行仿真

用户可以使用插入的VARON IP运行RTL仿真。 仿真器也需要阅读VARON IP,添加以下仿真器选项要求。 ·Cadence Xcelium (xrun) -sv_root -sv_lib libvaron_sw •  Synopsys VCS -svlib /libvaron_sw.so ·Mentor Questa (vsim) -svlib /libvaron_sw 注意:请为以上所有仿真器执行64位模式。 仿真器选项可能会更改许可证文件检查的将来增强功能。

4.1 仿真器命令参数

下面是VARON使用的仿真器命令参数。
  • +VARON_FILE=
指定VARON IP捕获事务的结果文件名。 对文件名和扩展名没有特殊要求。
  • +VARON_GROUP0_UTIME_MODE=0/1
  • +VARON_GROUP1_UTIME_MODE=0/1
  • +VARON_GROUP_UTIME_MODE=0/1
指定单位时间源选择参数端口组。 当配置文件存在n + 1个端口组时,参数从GROUP0到GROUP 存在。 0:单位时间在VARON IP内部计数(默认) 1:VARON IP使用从输入引脚上升沿到上升沿的后续时间作为单位时间间隔。引脚名称将在下面。存在n + 1个端口组,存在group0至group 引脚。 group0_external_unit_time_period_in group1_external_unit_time_period_in . . . group_external_unit_time_period_in
  • +VARON_GROUP0_UTIME_PERIOD=
  • +VARON_GROUP1_UTIME_PERIOD=
  • +VARON_GROUP_UTIME_PERIOD=
设置“ + VARON_GROUP _UTIME_MODE = 0”时的单位时间间隔计数(单位时间在VARON IP内部计数)。 当配置文件存在n + 1个端口组时,参数从GROUP0到GROUP 存在。如果未指定,则VARON IP使用配置文件中的值。
  • +VARON_GROUP0_ PORT_ENABLE= 11111111
  • +VARON_GROUP1_ PORT_ENABLE= 11111111
  • +VARON_GROUP_ PORT_ENABLE= 11111111
控制AXI总线捕获ON,OFF。当配置文件存在n + 1个端口组时,参数从GROUP0到GROUP 存在。每个自变量都有两倍的端口数量,LSB(bit0)是端口0的读控制,LSB+1(bit1)是端口0的写通道控制,依此类推… 指定二进制数,并将1的平均跟踪设置为ON。如果未设置,则所有端口都将捕获为ON。

发表评论