FPGA linux synplify综合工程的环境搭建

1、新建filelist.v文件,将需要综合的所有RTL代码include进去。

filelist.v文件如下:

`include "../../../lib/fpga/io/pad_cell_tsmc28.v"
`include "../../../lib/fpga/std/std_cell_tsmc28.v"
`include "相对路径/*****.v"                                    //其它文件

2、新建fdc约束文件,实现对fpga芯片中的管脚、时钟、复位信号进行约束,对时钟的周期、频率、占空比进行预定义。

约束文件top.fdc内容如下:

#创建时钟,CIN为外部时钟引脚,与晶振直接相连,假设本工程中外接50M晶振,其周期为20ns,占空比为50%
create_clock  -name {CIN} {p:CIN} -period {20} -waveform {0 10.0}
create_clock  -name {CLK_OUT1} {n:u_pll_fpga.CLK_OUT1} -period {10}
create_clock  -name {CLK_OUT2} {n:u_config.u_module_clk.CLK_OUT2} -period {5}

#将异步时钟约束为时钟组,作约束忽略
set_clock_groups -derive -asynchronous -name {clkgrp_CLK_OUT1} -group { {c:CLK_OUT1} }
set_clock_groups -derive -asynchronous -name {clkgrp_CLK_OUT2} -group { {c:CLK_OUT2} }
#复位信号约束
set_false_path -from {p:RSTN}

 

3、新建.tcl 脚本,实现建立完整的synplify工程

synplify.tcl文件内容如下:

#-- Synplicity, Inc.
#-- Version Synplify Pro 8.8

#create a new project
project -new top.prj         #工程名命名为top

#add_file options
add_file -verilog "filelist.v"
add_file -fpga_constraint "top.fdc"

#implementation: "rev_1"
impl -add rev_1 -type fpga

#device options,本设计中使用的xilinx的K7系列
set_option -technology Kintex7
set_option -part XC7K410T
set_option -package FFG900
set_option -speed_grade -2L
set_option -part_companion ""

#compilation/mapping options
set_option -use_fsm_explorer 1
set_option -top_module "hello"  #顶层模块

#map options
set_option -frequency 50.000000  #外部晶振
set_option -auto_constrain_io 1
set_option -resolve_multiple_driver 1
set_option -srs_instrumentation 1
set_option -RWCheckOnRam 0
set_option -run_prop_extract 0
set_option -maxfan 10000
set_option -disable_io_insertion 0
set_option -pipe 1
set_option -update_models_cp 0
set_option -verification_mode 0
set_option -retiming 1
set_option -no_sequential_opt 0
set_option -fix_gated_and_generated_clocks 1
set_option -enable_prepacking 1
set_option -use_vivado 1         #指定布局布线的工具,本设计中指定vivado

# sequential_optimization_options
set_option -symbolic_fsm_compiler 1

# Compiler Options
set_option -compiler_compatible 0
set_option -resource_sharing 1
set_option -multi_file_compilation_unit 1

#automatic place and route (vendor) options
set_option -write_apr_constraint 1

#implementation attributes
set_option -vlog_std v2001
set_option -num_critical_paths 10
set_option -num_startend_points 10
set_option -project_relative_includes 1
set_option -hdl_define -set FPGA

set_option -include_path "./hdl/"    #设置源码路径

#simulation options
set_option -write_verilog 1
set_option -write_vhdl 0

#VIF options
set_option -write_vif 0

#set result format/file last
project -result_file "top.edf"
project -log_file "top.log"

#save run and close project
project -save top.prj
project -run
project -close top.prj

4、新建makefile文件

SYNPLIFY_DIR = synplify
SYNPLIFY_TCL_FILE = synplify.tcl
SYNPLIFY_FDC_FILE = top.fdc
SYNPLIFY_VERILOG_FILE = filelist.v
SYNPLIFY_EDF_FILE = top.edf      #综合后的网表文件edf格式
SYNPLIFY_LOG_FILE = top.log
SYNPLIFY_VM_FILE = hello.vm      #综合后的网表文件vm格式,可作后仿真的输入



.PHONY:  run_synplify clean

run_synplify:
	echo "synthesize begin ..."
	rm -rf ${SYNPLIFY_DIR}
	mkdir ${SYNPLIFY_DIR}
	cd ${SYNPLIFY_DIR} && synplify_pro -batch synplify.tcl
	cp ${SYNPLIFY_DIR}/rev_1/*.edf ./${SYNPLIFY_EDF_FILE}
	cp ${SYNPLIFY_DIR}/rev_1/*.vm ./${SYNPLIFY_VM_FILE}
	cp ${SYNPLIFY_DIR}/top.log ./${SYNPLIFY_LOG_FILE}
	echo "synthesize finished!"


clean:
	rm -rf ${SYNPLIFY_DIR}
	rm -rf ./${SYNPLIFY_EDF_FILE}
	rm -rf ./${SYNPLIFY_LOG_FILE}
	rm -rf ./${SYNPLIFY_VM_FILE}
	

5、执行makefile

当前路径下输入指令 make run_synplify ,等待完成。

6、查看top.log文件,可查看该型号fpga综合后的时钟,资源使用率等信息

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值