OpenFPGA系列(六)OpenFPGA Task


笔记同步在我的 个人网站进行更新,欢迎来访查看。
在跑设计流程Demo之前,需要先了解OpenFPGA Task。
Tasks 提供了在多个基准测试,架构和OpenFPGA参数上运行OpenFPGA流程的框架。框架的结构与VTR-Tasks实现非常相似,具有附加功能和次要文件扩展更改

一、Task 目录

tasks保存在 TASK_DIRECTORY 目录(默认为${OPENFPGA_PATH}/openfpga_flow/tasks)中,在该目录中的任何带有../config/task.conf 文件的子目录都会被视为一个 task 。跟Pyhon的包概念有点类似。
例如,一个名为 basic_flow 的task,必然存在下述文件:

${TASK_DIRECTORY}/basic_flow/conf/task.conf

同样, task regression/regression_quick,必然存在下述文件:

${TASK_DIRECTORY}/regression/regression_quick/conf/task.conf

二、OpenFPGA Task 解析

generate_fabric 为例,进行task的配置文件的讲解:
首先一个task的配置文件包括 GENERAL, ARCHITECTURES, BENCHMARKS, SYNTHESIS_PARAMSCRIPT_PARAM_<var_name>,五大节。
打开 generate_fabric 的 task 配置文件:

2.1 GENERAL 节

这一节主要来用进行一些通用设置

[GENERAL]
run_engine=openfpga_shell
power_tech_file = ${PATH:OPENFPGA_PATH}/openfpga_flow/tech/PTM_45nm/45nm.xml
power_analysis = true
spice_output=false
verilog_output=true
timeout_each_job = 20*60
fpga_flow=vpr_blif
arch_variable_file=${PATH:TASK_DIR}/design_variables.yml
  1. power_tech_file=<path_to_tech_XML_file>
    用来指定进行功耗分析时所使用的工艺文件(XML)所在路径
  2. power_analysis=<true|false>
    指定是否进行功耗分析
  3. spice_output=<true|false>
    设置为 true 时将在流程的最后生成 Spice 网表
  4. verilog_output=<true|false>
    设置为 true 时将在流程的最后生成 Verilog 网表
  5. timeout_each_job=<true|false>
    设置每个OpenFPGA Flow执行的等待时间,单位为s,默认是20分钟。
  6. fpga_flow=<yosys_vpr|vpr_blif>
    指定执行哪个OpenFPGA Flow,默认是 yosys_vpr
  7. arch_variable_file
    用来指定架构变量文件(YML)所在路径

2.2 OpenFPGA_SHELL节

[OpenFPGA_SHELL]
openfpga_shell_template=${PATH:OPENFPGA_PATH}/openfpga_flow/openfpga_shell_scripts/generate_fabric_example_script.openfpga
openfpga_arch_file=${PATH:OPENFPGA_PATH}/openfpga_flow/openfpga_arch/k6_frac_N10_40nm_openfpga.xml
openfpga_sim_setting_file=${PATH:OPENFPGA_PATH}/openfpga_flow/openfpga_simulation_settings/auto_sim_openfpga.xml
# Use a absolute path for the Verilog netlists to be generated
# This is designed to allow the test case 'basic_tests/generate_testbench'
# to use the Verilog netlists along with testbenches in HDL simulation
openfpga_verilog_output_dir=${PATH:OPENFPGA_PATH}/openfpga_flow/tasks/basic_tests/generate_fabric/latest/k6_frac_N10_tileable_40nm/and2/MIN_ROUTE_CHAN_WIDTH
  1. openfpga_shell_template
    用来指定openfpga_shell 脚本所在路径
  2. openfpga_arch_file
    用来指定openfpga 所支持的FPGA架构描述文件(XML)所在路径
  3. openfpga_sim_setting_file
    用来指定仿真设置文件(XML)所在路径
  4. openfpga_verilog_output_dir
    用来指定生成的verilog网表的存放路径

2.3 ARCHITECTURES节 和 BENCHMARKS节

[ARCHITECTURES]
arch0=${PATH:OPENFPGA_PATH}/openfpga_flow/vpr_arch/k6_frac_N10_tileable_40nm.xml

[BENCHMARKS]
bench0=${PATH:OPENFPGA_PATH}/openfpga_flow/benchmarks/micro_benchmark/and2/and2.blif
  1. arch<arch_label>=<xml_architecture_file_path>
    用来指定用于VPR输入的FPGA架构描述文件(XML)所在路径
  2. bench<bench_label>=<list_of_files_in_benchmark>
    用来指定用于VPR输入的基准电路文件(blif ) 所在路径

2.4 SYNTHESIS_PARAM

为 BENCHMARKS节 中的基准电路设置额外的参数。

[SYNTHESIS_PARAM]
bench0_top = and2
bench0_act = ${PATH:OPENFPGA_PATH}/openfpga_flow/benchmarks/micro_benchmark/and2/and2.act
bench0_verilog = ${PATH:OPENFPGA_PATH}/openfpga_flow/benchmarks/micro_benchmark/and2/and2.v
  1. bench<bench_label>_top=<Top_Module_Name>
    设置顶层模块
  2. bench<bench_label>_act=<activity_file_path>
    设置要测试的电路功能
  3. bench<bench_label>_verilog=<source_verilog_file_path>
    设置基准电路源文件的路径,用作testbench期望信号的生成,以便与实际布局布线后网表所生成的信号进行对比。

三、总结

generate_fabric task 为例,所需要的文件有:

  1. 用于功耗分析的工艺文件(XML)
  2. 架构变量文件(YML)
    openfpga_shell:
  3. openfpga_shell 命令脚本
  4. 适用于openfpga的架构描述文件(XML)
  5. openfpga的仿真设置文件(XML)
    VPR:
  6. 用于VPR输入的FPGA架构描述文件(XML)
  7. 用于VPR输入的基准电路文件(blif )
    bilf(testbench):
  8. 基准电路的Verilog代码文件(.V)
  9. 行为功能测试文件 (.act)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雪天鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值