MPS、Vivado HLS数据测试对比

目标:测试struct不同情况的case,测试对比vivado的IR与我分解IR,再通过MPS跑数据对比,还有直接用vivado跑出的结果,三者比较。

我的综合结果测试流程:
1、将在:~/workspace/esl_0.2/cpan_test_1目录下运行run.tcl,得出我的rm_struct.bc。
2、再通过MPS跑综合,在:~/workspace/esl_0.1_2019/esl_0.1/testcase/新建一个文件夹pan,用于测试和存放综合结果。
3、pan中需要包含boards、run.tcl、simulation、struct_variables.c和rm_struct.bc。(PS.文件名可在run.tcl进行修改)
4、生成的verilog文件在output中
5、:~/workspace/HLSTest/MPS中存放综合数据结果,新建一个文件夹,包含main.sdc、simulation、synthesize.sh、Verilog和vivado.tcl(PS. main.sdc 对应MPS,内容为create_clock -period 10 -name clock [get_ports clk]
6、将4中的output内文件存入5中的Verilog文件中,./synthesize.sh,在HLS_output/Synthesis/mps_flow/main.xml可以看到综合结果。
7、cycles需要用vivado进行仿真,配套文件在5中的simulation文件夹中。

vivado HLS处理C文件得到a.o.3.bc在MPS测试流程与上面几乎一致。只需要修改步骤三中的run.tcl,其余一样。
1、a.o.3.bc文件在~/workspace/HLSTest/VivadoHLSProject/11-6ptr/solution1/.autopilot/db中可得到。

vivado HLS直接进行综合仿真
1、通过vivado HLS得出Verilog文件,该文件在~/workspace/HLSTest/VivadoHLSProject/11-6ptr/solution1/syn/verilog
2、新建一个文件夹,包含main.sdc、simulation、synthesize.sh、Verilog和vivado.tcl(PS. main.sdc 对应vivado,内容为create_clock -period 10 -name clock [get_ports ap_clk]
3、将1中的Verilog内文件存入5中的Verilog中,./synthesize.sh,在HLS_output/Synthesis/mps_flow/main.xml可以看到综合结果。

通过脚本跑综合、仿真
1、cpan@smooth:~/workspace/esl_0.1_2019/esl_0.1/auto_test$ ls mps vivado_hls
分为两个测试脚本
2、当测试MPS时,先在chstone.list存放需要处理的文件名,并将相应的bc文件存入文件名对应的文件夹中,然后运行perl auto_run.pl -config config.tcl
注意需要修改CHStone的调用位置,不同文件夹,修改参数路径。
3、此时的板子类型为:xc7vx485tffg1761-2

4、跑综合时间较长,可关闭aoto_run.pl中的# 3) synthesis verilog system ("perl synthesis.pl -test_case $case_file");

5、result.dat是观察当前测试得出的仿真和综合结果。

6、具体参数到project中的project/legupcase/simulation/sim.log看仿真结果,project/legupcase_vivado/synthesis/HLS_output/Synthesis/mps_flow/main.xml看综合结果。

7、

MPS、Vivado HLS数据测试对比_第1张图片

你可能感兴趣的:(llvm)