Synplify pro
的一般步骤:导入源文件-
>
设置
xilinx
约束-
>
选择
xilinx
器件并设置必要的器件参数-
>
执行综合-
>
分析综合的结果-
>
再启动综合过程-
>
向
xilinx
提交网表和约束文件
在执行综合的之前先要对源程序进行编译,检查语法正确性以及是否满足可综合风格,即执行
run
-
>compile only
。在
tcl
中会给出编译的提示,包括错误警告和
notes
,编译正确后会生成三个文件,分别是日志文件
.srr
,
RTL
网表
srs
和
. tlg
文件。日志文件主要由三部分组成:编译过程,映射优化的过程以及时序报告。
下面为编译过程的报告
$ Start of Compile
#Mon Apr 23 22:55:36 2007
Synplicity VHDL Compiler, version 3.1.0, Build 049R, built May 3 2005
Copyright (C) 1994-2005, Synplicity Inc. All Rights Reserved
@N:"E:/modelsim/HDL_DEMO.VHD":6:7:6:14|Top entity is set to hdl_demo.
VHDL syntax check successful!
Compiler output is up to date. No re-compile necessary
下面为映射优化的过程报告
@N:"E:/modelsim/HDL_DEMO.VHD":6:7:6:14|Synthesizing work.hdl_demo.arch1
@N:"E:/modelsim/ALU.VHD":4:7:4:9|Synthesizing work.alu.arch1
Post processing for work.alu.arch1
Post processing for work.hdl_demo.arch1
@N: CL201 :"E:/modelsim/HDL_DEMO.VHD":72:3:72:4|Trying to extract state machine for register state
Extracted state machine for register state
State machine has 10 reachable states with original encodings of:
0000
0001
0010
0011
0100
1000
1001
1010
1011
1100
@END
以上的报告
fsm
编译器对三个状态机的重新编码。说明了正在综合的是
work.hdl_demo.arch1
和
work.alu.arch1
综合器正视图提取
register state
,
状态机按原来的编码有
10
个可达状态
0000 0001 0010 0011 0100 1000 1001 1010 1011 1100
Adding property syn_encoding in cell hdl_demo, value "onehot", to instance state[0:9]
@W: BN116 :"e:/modelsim/alu.vhd":19:2:19:3|Removing sequential instance outp[7:0] of view:PrimLib.dffe(prim) because there are no references to its outputs
NRtlRetiming done on outp[7:0]
RTL optimization done.
Encoding state machine work.hdl_demo(arch1)-state[0:9]
original code -> new code
0000 -> 0000000001
0001 -> 0000000010
0010 -> 0000000100
0011 -> 0000001000
0100 -> 0000010000
1000 -> 0000100000
1001 -> 0001000000
1010 -> 0010000000
1011 -> 0100000000
1100 -> 1000000000
以上报告表明状态机的状态被重新编码并列出了新的状态编码
Clock Buffers:
Inserting Clock buffer for port clk, TNM=clk
说明综合器为端口
clk
添加了一个
clock buffer
,添加
buf