找回密码
 立即注册
首页 业界区 安全 使用TCL脚本快速创建Quartus工程

使用TCL脚本快速创建Quartus工程

楞粳 3 小时前
在刚开始学习FPGA的时候,使用Quartus Prime的GUI界面创建工程是一个再平常不过的事儿,但是随着项目的增多,有很多项目可能会用到之前项目的代码,如果用GUI界面添加代码也可以,但是总觉得这种方法效率太低(点击New Project Wizard->选择工程目录,输入工程名,顶层文件名->添加工程代码及所需的IP文件->选择器件型号->管脚约束……)。
后面在网上找相关的更高效的方法,最终找到了一种使用TCL脚本快速创建Quartus工程的方法,这里直接贴TCL脚本的一个示例:
点击查看代码
  1. # 创建工程
  2. project_new -revision TGLV26 -overwrite TGLV26
  3. # 添加源码文件
  4. # 顶层文件
  5. set_global_assignment -name VERILOG_FILE ../src/TGTop.v
  6. # a文件夹
  7. set_global_assignment -name VERILOG_FILE ../src/a/xxx.v
  8. set_global_assignment -name VERILOG_FILE ../src/a/xxx.v
  9. set_global_assignment -name VERILOG_FILE ../src/a/xxx.v
  10. set_global_assignment -name VERILOG_FILE ../src/a/xxx.v
  11. set_global_assignment -name VERILOG_FILE ../src/a/xxx.v
  12. set_global_assignment -name VERILOG_FILE ../src/a/xxx.v
  13. set_global_assignment -name VERILOG_FILE ../src/a/xxx.v
  14. set_global_assignment -name VERILOG_FILE ../src/a/xxx.v
  15. set_global_assignment -name VERILOG_FILE ../src/a/xxx.v
  16. # b文件夹
  17. set_global_assignment -name VERILOG_FILE ../src/b/xxx.v
  18. set_global_assignment -name VERILOG_FILE ../src/b/xxx.v
  19. set_global_assignment -name VERILOG_FILE ../src/b/xxx.v
  20. set_global_assignment -name VERILOG_FILE ../src/b/xxx.v
  21. set_global_assignment -name VERILOG_FILE ../src/b/xxx.v
  22. set_global_assignment -name VERILOG_FILE ../src/b/xxx.v
  23. set_global_assignment -name VERILOG_FILE ../src/b/xxx.v
  24. set_global_assignment -name VERILOG_FILE ../src/b/xxx.v
  25. set_global_assignment -name VERILOG_FILE ../src/b/xxx.v
  26. # Position文件夹
  27. set_global_assignment -name VERILOG_FILE ../src/c/xxx.v
  28. set_global_assignment -name VERILOG_FILE ../src/c/xxx.v
  29. set_global_assignment -name VERILOG_FILE ../src/c/xxx.v
  30. set_global_assignment -name VERILOG_FILE ../src/c/xxx.v
  31. set_global_assignment -name VERILOG_FILE ../src/c/xxx.v
  32. set_global_assignment -name VERILOG_FILE ../src/c/xxx.v
  33. set_global_assignment -name VERILOG_FILE ../src/c/xxx.v
  34. set_global_assignment -name VERILOG_FILE ../src/c/xxx.v
  35. set_global_assignment -name VERILOG_FILE ../src/c/xxx.v
  36. set_global_assignment -name VERILOG_FILE ../src/c/xxx.v
  37. set_global_assignment -name VERILOG_FILE ../src/c/xxx.v
  38. set_global_assignment -name VERILOG_FILE ../src/c/xxx.v
  39. set_global_assignment -name VERILOG_FILE ../src/c/xxx.v
  40. set_global_assignment -name VERILOG_FILE ../src/c/xxx.v
  41. # TransportCtr文件夹
  42. set_global_assignment -name VERILOG_FILE ../src/d/xxx.v
  43. set_global_assignment -name VERILOG_FILE ../src/d/xxx.v
  44. set_global_assignment -name VERILOG_FILE ../src/d/xxx.v
  45. set_global_assignment -name VERILOG_FILE ../src/d/xxx.v
  46. set_global_assignment -name VERILOG_FILE ../src/d/xxx.v
  47. set_global_assignment -name VERILOG_FILE ../src/d/xxx.v
  48. set_global_assignment -name QXP_FILE ../src/d/xxx.qxp
  49. set_global_assignment -name VERILOG_FILE ../src/d/xxx.v
  50. set_global_assignment -name VERILOG_FILE ../src/d/xxx.v
  51. # 添加IP核
  52. set_global_assignment -name QSYS_FILE ../ip/xxx.qsys
  53. set_global_assignment -name QIP_FILE ../ip/RAM/xxx.qip
  54. set_global_assignment -name QIP_FILE ../ip/ID/xxx.qip
  55. set_global_assignment -name QIP_FILE ../ip/PLL/xxx.qip
  56. set_global_assignment -name QSYS_FILE ../ip/DUALBOOT/xxx.qsys
  57. # 头文件
  58. set_global_assignment -name SOURCE_FILE ../src/xxx.h
  59. set_global_assignment -name SOURCE_FILE ../src/xxx.h
  60. # 添加时序约束文件
  61. set_global_assignment -name SDC_FILE ../src/xxx.sdc
  62. # TCL脚本
  63. set_global_assignment -name TCL_SCRIPT_FILE ../src/xxx.tcl
  64. set_global_assignment -name TCL_SCRIPT_FILE ../src/xxx.tcl
  65. set_global_assignment -name TCL_SCRIPT_FILE ../src/xxx.tcl
  66. # 设置工程的顶层模块
  67. set_global_assignment -name TOP_LEVEL_ENTITY TGTop
  68. #------------------GLOBAL--------------------#
  69. set_global_assignment -name FAMILY "MAX 10"
  70. set_global_assignment -name DEVICE 10M16SAU169I7G
  71. set_global_assignment -name EXTERNAL_FLASH_FALLBACK_ADDRESS 00000000
  72. set_global_assignment -name USE_CONFIGURATION_DEVICE OFF
  73. set_global_assignment -name INTERNAL_FLASH_UPDATE_MODE "DUAL IMAGES"
  74. set_global_assignment -name FLOW_ENABLE_POWER_ANALYZER ON
  75. # 输出bitstream文件夹
  76. set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output_files
  77. set_global_assignment -name VERILOG_INPUT_VERSION SYSTEMVERILOG_2005
  78. # 设置seed值
  79. set_global_assignment -name SEED 7
  80. # 预处理脚本
  81. set_global_assignment -name PRE_FLOW_SCRIPT_FILE "quartus_sh:../src/VersionGen.tcl"
  82. # 后处理脚本
  83. set_global_assignment -name POST_FLOW_SCRIPT_FILE "quartus_sh:../src/BitstreamGen.tcl"
  84. # 并行编译可使用的最大处理器数
  85. set_global_assignment -name NUM_PARALLEL_PROCESSORS ALL
  86. #------------------ 引脚约束 --------------------#
  87. source "../src/xxx.tcl"
  88. #--------------------------------------------#
  89. # 将所有约束写入qsf文件
  90. export_assignments
  91. # 关闭工程
  92. # project_close
复制代码
只需创建一个工程文件夹,并在TCL脚本中描述所需的verilog源码文件和IP文件的路径,然后再打开quartus软件,并打开TCL Console窗口,在指令行中输入cd E:/Work/Project_Beta/TGTemp/prj(这里改为脚本所在文件路径),然后输入source xxx.tcl(xxx代表tcl脚本的文件名),即可快速创建工程,具体如下图:
1.png


来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册