嵌入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 配置
<varon_ip_configration_file.json> JSON 文件 [输入]
-i, --inject VARON IP 导入器
-f, --connection <varon_ip_connection_file.json> 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<group number>_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_configuration_file.json的形式提供。
{ "rtl_output_directory": "./VARON_IP_RTL", "remove_files_in_output_directory_before_execution": true,
"generator_parameter": { "VARON_IP_MODULE_NAME_HEADER": "VARON_" },
"varon_configuration": { "generator_parameter": { "ip_type": "simulation", "clock_counter_width": 32, "time_stamp_width": 16, "time_stamp_trace_output_period": 15, "unit_time_counter_width": 32, "buffer_type": "unified", "buffer_size": 2048 }, "bus_configuration": [ { "generator_parameter": { "group_id": 0, "axi_version": 3, "axi_id_width": 4, "clock_type": "main", "clock_period": 10, "data_width": 32 }, "port_list":[ { "port_id": 0, "port_name": "group0_port000_%s", "type": "latency_counter", "generator_parameter": { "axi_id_fixed_part_width": 1, "buffer_index_size": 4, "out_of_order_completion": 1 } }, { "port_id": 1, "port_name": "group0_port001_%s", "type": "latency_counter", "generator_parameter": { "axi_id_fixed_part_width": 1, "buffer_index_size": 4, "out_of_order_completion": 1 } }, { "port_id": 2, "port_name": "group0_port002_%s", "type": "latency_counter", "generator_parameter": { "axi_id_fixed_part_width": 1, "buffer_index_size": 4, "out_of_order_completion": 1 } }, { "port_id": 3, "port_name": "group0_port003_%s", "type": "latency_counter", "generator_parameter": { "axi_id_fixed_part_width": 1, "buffer_index_size": 4, "out_of_order_completion": 1 } } ] }, { "generator_parameter": { "group_id": 1, "axi_version": 3, "axi_id_width": 4, "clock_type": "main", "clock_period": 10, "data_width": 32 }, "port_list":[ { "port_id": 0, "port_name": "group1_port000_%s", "type": "latency_counter", "generator_parameter": { "axi_id_fixed_part_width": 1, "buffer_index_size": 4, "out_of_order_completion": 1 } }, { "port_id": 1, "port_name": "group1_port001_%s", "type": "latency_counter", "generator_parameter": { "axi_id_fixed_part_width": 1, "buffer_index_size": 4, "out_of_order_completion": 1 } }, { "port_id": 2, "port_name": "group1_port002_%s", "type": "latency_counter", "generator_parameter": { "axi_id_fixed_part_width": 1, "buffer_index_size": 4, "out_of_order_completion": 1 } }, { "port_id": 3, "port_name": "group1_port003_%s", "type": "latency_counter", "generator_parameter": { "axi_id_fixed_part_width": 1, "buffer_index_size": 4, "out_of_order_completion": 1 } } ] }, { "generator_parameter": { "group_id": 2, "axi_version": 3, "axi_id_width": 7, "clock_type": "main", "clock_period": 10, "data_width": 32 }, "port_list":[ { "port_id": 0, "port_name": "group2_port000_%s", "type": "latency_counter", "generator_parameter": { "axi_id_fixed_part_width": 0, "buffer_index_size": 7, "out_of_order_completion": 1 } }, { "port_id": 1, "port_name": "group2_port001_%s", "type": "latency_counter", "generator_parameter": { "axi_id_fixed_part_width": 0, "buffer_index_size": 7, "out_of_order_completion": 1 } } ] } ] } } |
2.3 VARON IP生成
VARON IP生成与创建的配置文件,请使用“varon_ip_tool -g”命令指定VARON IP工具提供的库目录。
·执行命令:
varon_ip_tool -g -d <VARON ip_tool Library Directory> -c <Configuration File>
·示例:
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_connection_file.json的形式提供。
{ "target_design_directory": [ "./DUT/generated_RTL", "./DUT/submodules", "./DUT/AXIC/", "./DUT/lib" ],
"ignore_directory": [ ],
"target_design_RTL_file": [ ],
"top_module": "DUTTOP",
"VARON_RTL": [ "./VARON_IP_RTL/VARON_TOP .v" ],
"VARON_module": "VARON_TOP",
"instance_name_header": "i_", "net_name_header": "n_",
"RTL_output_directory": "./updated_RTL", "updated_module_list_file": "./updated_module_list.json",
"connection_list": [ {"port": "group0_ACLK", "net":{"name":"ACLK"}}, {"port": "group0_ARESETn", "net":{"name":"ARESETn"}}, {"port": "group0_port000_ARVALID", "net":{"name":"master_port000_ARVALID"}}, {"port": "group0_port000_ARREADY", "net":{"name":"master_port000_ARREADY"}}, {"port": "group0_port000_ARID", "net":{"name":"master_port000_ARID"}}, {"port": "group0_port000_ARLEN", "net":{"name":"master_port000_ARLEN"}}, {"port": "group0_port000_RVALID", "net":{"name":"master_port000_RVALID"}}, {"port": "group0_port000_RREADY", "net":{"name":"master_port000_RREADY"}}, {"port": "group0_port000_RLAST", "net":{"name":"master_port000_RLAST"}}, {"port": "group0_port000_RID", "net":{"name":"master_port000_RID"}}, {"port": "group0_port000_AWVALID", "net":{"name":"master_port000_AWVALID"}}, {"port": "group0_port000_AWREADY", "net":{"name":"master_port000_AWREADY"}}, {"port": "group0_port000_AWID", "net":{"name":"master_port000_AWID"}}, {"port": "group0_port000_AWLEN", "net":{"name":"master_port000_AWLEN"}}, {"port": "group0_port000_WVALID", "net":{"name":"master_port000_WVALID"}}, {"port": "group0_port000_WREADY", "net":{"name":"master_port000_WREADY"}}, {"port": "group0_port000_WLAST", "net":{"name":"master_port000_WLAST"}}, {"port": "group0_port000_WID", "net":{"name":"master_port000_WID"}}, {"port": "group0_port000_BVALID", "net":{"name":"master_port000_BVALID"}}, {"port": "group0_port000_BREADY", "net":{"name":"master_port000_BREADY"}}, {"port": "group0_port000_BID", "net":{"name":"master_port000_BID"}}, {"port": "group0_port001_ARVALID", "net":{"name":"master_port001_ARVALID"}}, {"port": "group0_port001_ARREADY", "net":{"name":"master_port001_ARREADY"}}, {"port": "group0_port001_ARID", "net":{"name":"master_port001_ARID"}}, {"port": "group0_port001_ARLEN", "net":{"name":"master_port001_ARLEN"}}, {"port": "group0_port001_RVALID", "net":{"name":"master_port001_RVALID"}}, {"port": "group0_port001_RREADY", "net":{"name":"master_port001_RREADY"}}, {"port": "group0_port001_RLAST", "net":{"name":"master_port001_RLAST"}}, {"port": "group0_port001_RID", "net":{"name":"master_port001_RID"}}, {"port": "group0_port001_AWVALID", "net":{"name":"master_port001_AWVALID"}}, {"port": "group0_port001_AWREADY", "net":{"name":"master_port001_AWREADY"}}, {"port": "group0_port001_AWID", "net":{"name":"master_port001_AWID"}}, {"port": "group0_port001_AWLEN", "net":{"name":"master_port001_AWLEN"}}, {"port": "group0_port001_WVALID", "net":{"name":"master_port001_WVALID"}}, {"port": "group0_port001_WREADY", "net":{"name":"master_port001_WREADY"}}, {"port": "group0_port001_WLAST", "net":{"name":"master_port001_WLAST"}}, {"port": "group0_port001_WID", "net":{"name":"master_port001_WID"}}, {"port": "group0_port001_BVALID", "net":{"name":"master_port001_BVALID"}}, {"port": "group0_port001_BREADY", "net":{"name":"master_port001_BREADY"}}, {"port": "group0_port001_BID", "net":{"name":"master_port001_BID"}}, {"port": "group0_port002_ARVALID", "net":{"name":"master_port002_ARVALID"}}, {"port": "group0_port002_ARREADY", "net":{"name":"master_port002_ARREADY"}}, {"port": "group0_port002_ARID", "net":{"name":"master_port002_ARID"}}, {"port": "group0_port002_ARLEN", "net":{"name":"master_port002_ARLEN"}}, {"port": "group0_port002_RVALID", "net":{"name":"master_port002_RVALID"}}, {"port": "group0_port002_RREADY", "net":{"name":"master_port002_RREADY"}}, {"port": "group0_port002_RLAST", "net":{"name":"master_port002_RLAST"}}, {"port": "group0_port002_RID", "net":{"name":"master_port002_RID"}}, {"port": "group0_port002_AWVALID", "net":{"name":"master_port002_AWVALID"}}, {"port": "group0_port002_AWREADY", "net":{"name":"master_port002_AWREADY"}}, {"port": "group0_port002_AWID", "net":{"name":"master_port002_AWID"}}, {"port": "group0_port002_AWLEN", "net":{"name":"master_port002_AWLEN"}}, {"port": "group0_port002_WVALID", "net":{"name":"master_port002_WVALID"}}, {"port": "group0_port002_WREADY", "net":{"name":"master_port002_WREADY"}}, {"port": "group0_port002_WLAST", "net":{"name":"master_port002_WLAST"}}, {"port": "group0_port002_WID", "net":{"name":"master_port002_WID"}}, {"port": "group0_port002_BVALID", "net":{"name":"master_port002_BVALID"}}, {"port": "group0_port002_BREADY", "net":{"name":"master_port002_BREADY"}}, {"port": "group0_port002_BID", "net":{"name":"master_port002_BID"}}, {"port": "group0_port003_ARVALID", "net":{"name":"master_port003_ARVALID"}}, {"port": "group0_port003_ARREADY", "net":{"name":"master_port003_ARREADY"}}, {"port": "group0_port003_ARID", "net":{"name":"master_port003_ARID"}}, {"port": "group0_port003_ARLEN", "net":{"name":"master_port003_ARLEN"}}, {"port": "group0_port003_RV ALID", "net":{"name":"master_port003_RVALID"}}, {"port": "group0_port003_RREADY", "net":{"name":"master_port003_RREADY"}}, {"port": "group0_port003_RLAST", "net":{"name":"master_port003_RLAST"}}, {"port": "group0_port003_RID", "net":{"name":"master_port003_RID"}}, {"port": "group0_port003_AWVALID", "net":{"name":"master_port003_AWVALID"}}, {"port": "group0_port003_AWREADY", "net":{"name":"master_port003_AWREADY"}}, {"port": "group0_port003_AWID", "net":{"name":"master_port003_AWID"}}, {"port": "group0_port003_AWLEN", "net":{"name":"master_port003_AWLEN"}}, {"port": "group0_port003_WVALID", "net":{"name":"master_port003_WVALID"}}, {"port": "group0_port003_WREADY", "net":{"name":"master_port003_WREADY"}}, {"port": "group0_port003_WLAST", "net":{"name":"master_port003_WLAST"}}, {"port": "group0_port003_WID", "net":{"name":"master_port003_WID"}}, {"port": "group0_port003_BVALID", "net":{"name":"master_port003_BVALID"}}, {"port": "group0_port003_BREADY", "net":{"name":"master_port003_BREADY"}}, {"port": "group0_port003_BID", "net":{"name":"master_port003_BID"}},
.. abbreviation {"port": "group0_external_unit_time_period_in", "fixed_value":"1'b0"}, {"port": "group1_ACLK", "net":{"name":"ACLK"}}, {"port": "group1_ARESETn", "net":{"name":"ARESETn"}}, {"port": "group2_ACLK", "net":{"name":"ACLK"}}, {"port": "group2_ARESETn", "net":{"name":"ARESETn"}}, {"port": "group2_port000_ARV ALID", "net":{"name":"slave_port000_ARV ALID"}}, {"port": "group2_port000_ARREADY", "net":{"name":"slave_port000_ARREADY"}}, {"port": "group2_port000_ARID", "net":{"name":"slave_port000_ARID"}}, {"port": "group2_port000_ARLEN", "net":{"name":"slave_port000_ARLEN"}}, {"port": "group2_port000_RV ALID", "net":{"name":"slave_port000_RV ALID"}}, {"port": "group2_port000_RREADY", "net":{"name":"slave_port000_RREADY"}}, {"port": "group2_port000_RLAST", "net":{"name":"slave_port000_RLAST"}}, {"port": "group2_port000_RID", "net":{"name":"slave_port000_RID"}}, {"port": "group2_port000_AWV ALID", "net":{"name":"slave_port000_AWV ALID"}}, {"port": "group2_port000_AWREADY", "net":{"name":"slave_port000_AWREADY"}}, {"port": "group2_port000_AWID", "net":{"name":"slave_port000_AWID"}}, {"port": "group2_port000_AWLEN", "net":{"name":"slave_port000_AWLEN"}}, {"port": "group2_port000_WV ALID", "net":{"name":"slave_port000_WV ALID"}}, {"port": "group2_port000_WREADY", "net":{"name":"slave_port000_WREADY"}}, {"port": "group2_port000_WLAST", "net":{"name":"slave_port000_WLAST"}}, {"port": "group2_port000_WID", "net":{"name":"slave_port000_WID"}}, {"port": "group2_port000_BV ALID", "net":{"name":"slave_port000_BV ALID"}}, {"port": "group2_port000_BREADY", "net":{"name":"slave_port000_BREADY"}}, {"port": "group2_port000_BID", "net":{"name":"slave_port000_BID"}}, {"port": "group2_port001_ARV ALID", "net":{"name":"slave_port001_ARV ALID"}}, {"port": "group2_port001_ARREADY", "net":{"name":"slave_port001_ARREADY"}}, {"port": "group2_port001_ARID", "net":{"name":"slave_port001_ARID"}}, {"port": "group2_port001_ARLEN", "net":{"name":"slave_port001_ARLEN"}}, {"port": "group2_port001_RV ALID", "net":{"name":"slave_port001_RV ALID"}}, {"port": "group2_port001_RREADY", "net":{"name":"slave_port001_RREADY"}}, {"port": "group2_port001_RLAST", "net":{"name":"slave_port001_RLAST"}}, {"port": "group2_port001_RID", "net":{"name":"slave_port001_RID"}}, {"port": "group2_port001_AWV ALID", "net":{"name":"slave_port001_AWV ALID"}}, {"port": "group2_port001_AWREADY", "net":{"name":"slave_port001_AWREADY"}}, {"port": "group2_port001_AWID", "net":{"name":"slave_port001_AWID"}}, {"port": "group2_port001_AWLEN", "net":{"name":"slave_port001_AWLEN"}}, {"port": "group2_port001_WV ALID", "net":{"name":"slave_port001_WV ALID"}}, {"port": "group2_port001_WREADY", "net":{"name":"slave_port001_WREADY"}}, {"port": "group2_port001_WLAST", "net":{"name":"slave_port001_WLAST"}}, {"port": "group2_port001_WID", "net":{"name":"slave_port001_WID"}}, {"port": "group2_port001_BV ALID", "net":{"name":"slave_port001_BV ALID"}}, {"port": "group2_port001_BREADY", "net":{"name":"slave_port001_BREADY"}}, {"port": "group2_port001_BID", "net":{"name":"slave_port001_BID"}}, {"port": "group2_external_unit_time_period_in", "fixed_value":"1'b0"} ] } |
3.2 VARON IP 插入和执行
VARON IP插入命令为“ varon_ip_tool -i”。 它需要下面描述的一些选项,例如库目录和连接文件。
·执行命令:
varon_ip_tool -i -d <V ARON ip_tool Library Directory> -f <Connection File>
·执行示例:
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 <VARON Install Directory> -sv_lib libvaron_sw
• Synopsys VCS
-svlib <VARON Install Directory>/libvaron_sw.so
·Mentor Questa (vsim)
-svlib <VARON Install Directory>/libvaron_sw
注意:请为以上所有仿真器执行64位模式。 仿真器选项可能会更改许可证文件检查的将来增强功能。
4.1 仿真器命令参数
下面是VARON使用的仿真器命令参数。
- +VARON_FILE=<File Name>
指定VARON IP捕获事务的结果文件名。 对文件名和扩展名没有特殊要求。
- +VARON_GROUP0_UTIME_MODE=0/1
- +VARON_GROUP1_UTIME_MODE=0/1
- ...
- +VARON_GROUP<n>_UTIME_MODE=0/1
指定单位时间源选择参数端口组。 当配置文件存在n + 1个端口组时,参数从GROUP0到GROUP <n>存在。
0:单位时间在VARON IP内部计数(默认)
1:VARON IP使用从输入引脚上升沿到上升沿的后续时间作为单位时间间隔。引脚名称将在下面。存在n + 1个端口组,存在group0至group <N>引脚。
group0_external_unit_time_period_in
group1_external_unit_time_period_in
. . .
group<n>_external_unit_time_period_in
- +VARON_GROUP0_UTIME_PERIOD=<unit_time>
- +VARON_GROUP1_UTIME_PERIOD=<unit_time>
- ...
- +VARON_GROUP<n>_UTIME_PERIOD=<unit_time>
设置“ + VARON_GROUP <n> _UTIME_MODE = 0”时的单位时间间隔计数(单位时间在VARON IP内部计数)。 当配置文件存在n + 1个端口组时,参数从GROUP0到GROUP <n>存在。如果未指定,则VARON IP使用配置文件中的值。
- +VARON_GROUP0_ PORT_ENABLE= 11111111
- +VARON_GROUP1_ PORT_ENABLE= 11111111
- ...
- +VARON_GROUP<n>_ PORT_ENABLE= 11111111
控制AXI总线捕获ON,OFF。当配置文件存在n + 1个端口组时,参数从GROUP0到GROUP <n>存在。每个自变量都有两倍的端口数量,LSB(bit0)是端口0的读控制,LSB+1(bit1)是端口0的写通道控制,依此类推...
指定二进制数,并将1的平均跟踪设置为ON。如果未设置,则所有端口都将捕获为ON。