2013-06-25 16:40:45
下面是xilinx官网上的问答贴:
http://china.xilinx.com/support/answers/41500.htm#solution
The difference between RTL and technology schematic
Description
After XST synthesis is completed, I am able to view both RTL and technology schematic.I frequently observe discrepancies between these two schematics.
What is the difference between them?
Solution
RTL View
Viewing an RTL schematic opens an NGR file that can be viewed as a gate-level schematic.
This schematic is generated after the HDL synthesis phase of the synthesis process. It shows a representation of the pre-optimized design in terms of generic symbols, such as adders, multipliers, counters, AND gates, and OR gates, that are independent of the targeted Xilinx device.
查看RTL schematic,将会打开NGR文件,该文件被看做门级的schematic。RTL schematic在synthesis过程的HDL synthesis phase之后产生,他是用通用的symbol表征的优化前的设计,比如 adders, multipliers, counters, AND gates, and OR gates,与目标器件是独立的。
Technology View
Viewing a Technology schematic opens an NGC file that can be viewed as an architecture-specific schematic.
This schematic is generated after the optimization and technology targeting phase of the synthesis process. It shows a representation of the design in terms of logic elements optimized to the target Xilinx device or "technology"; for example, in terms of of LUTs, carry logic, I/O buffers, and other technology-specific components. Viewing this schematic allows you to see a technology-level representation of your HDL optimized for a specific Xilinx architecture, which might help you discover design issues early in the design process.
You should always refer to technology schematic for synthesized result.
To disable RTL schematic generation to speed up synthesis, you can set XST property Generate RTL Schematic (-rtlview) to "No".
查看RTL schematic,将会打开NGC文件,该文件被看做基于结构的schematic。
该schematic在synthesis过程的optimization and technology targeting phase之后产生,该schematic示的是根据 Xilinx的device or "technology优化之后,用logic elements组成的schematic。例如,用 LUTs, carry logic, I/O buffers, and other technology-specific components。查看该schematic,可以看到杜宇一个特定的xilinx器件结构优化之后的technology-level的表示,这将帮助你在设计过程中尽早发现设计问题。
下面是网上找的一些看法:
rtl视图,其实就是寄存器级传输图,它在综合及布局布线前就生成了,并非设计的最终电路结构,是设计输入的最忠实的体现,它的主要作用是帮助设计者检查设计输入中的问题。就像是用XST综合的时候,有一个view rtl schematic和一个view technology schematic,区别是前者仅仅是语法分析得到的结构,是你的设计单纯的综合效果,可以帮助你理解你的算法;而后者才是放在FPGA中综合的效果,是用chipscope可以看到的,反映了实际的电路和资源使用情况。
RTL类似于你用原理图设计的形式,而后者就是后续要实现需要的ngc,fpga内部的一些基本单元组成的。
RTL Schematic仅仅是语法分析得的结果,Technology Schematic才是实际的结果,后者中能看到的就是你能在CHIPSCOPE里抓得到的。
rtl视图就是你的设计单纯的综合效果;技术视图是你的设计放在fpga中的综合效果!!!
RTL Viewer可以帮助你理解你设计的算法,Technology Viewer查看LUT的工作方式。
我的理解:
RTL Schematic
- 是gate-level的;
- 是用通用的symbol表征的优化前的设计,比如 adders, multipliers, counters, AND gates, and OR gates;
- 与目标器件是独立的;
- 在ISE中对应RTL Viewer的文件输入格式为NGR,也就是RTL Viewer通过NGR文件打开RTL Schematic。
Technology Schematic
- 是architecture-specific 的;
- 是根据 Xilinx的device or "technology优化之后,是综合后的,根据目标器件的结构优化后的,用logic elements组成的schematic。例如,用 LUTs, carry logic, I/O buffers, and other technology-specific components;
- 是基于所使用器件的结构的;
- 在ISE中对应RTL Viewer的文件输入格式为NGC,也就是RTL Viewer通过NGC文件打开TechnologySchematic。
另外,对于planahead,有:
- 在planahead中,没有 RTL Schematic 与Technology Schematic的概念,而是在不同的设计步骤有不同的schematic;
- 在RTL Design后,看到的schematic对应ISE中的RTL Schematic,RTL Design是综合之前的步骤;
- 在Netlist Design后,看到的schematic对应ISE中的Technology Schematic,Netlist Design是综合之后的步骤。
注:
- RTL Viewer是通过打开NGR或NGR文件来查看RTL Schematic 与Technology Schematic的,看到的Schematic不能保存,也没有对应的文件,如下面ISE help中对RTL Viewer的描述,是不产生输出文件的;
- 通过planahead可以将Schematic保存为pdf文件,具体方法见:http://www.cnblogs.com/youngforever/p/3151559.html
RTL Viewer Files
RTL Viewer works with the following files.
Input Files
NGR files are read as input. Xilinx® Synthesis Technology (XST) generates the NGR file from the register transfer level (RTL) netlist. RTL Viewer opens the NGR file, and you can select a block to view as a schematic.
Output Files
The RTL Viewer does not generate output files. It only allows you to view, not save, NGR files.
下面通过一个简单的例子对比RTL Schematic 与Technology Schematic。
代码:
写一个两级寄存器的例子,代码如下:
module block_nonblock(
clk,
a,
b,
c
); input clk;
input a; output b;
output c; reg b;
reg c; always@(posedge clk)
begin
b <= a;
c <= b;
end endmodule
综合之后,RTL Schematic为:
Technology Schematic为:
可以看到,RTL Schematic只是用两个D触发器表示设计,是用通用的符号表征的电路,在实际的FPGA电路中,仅有触发器肯定是不行的;而Technology Schematic则包含了输入缓冲ibuf、输出缓冲obuf等元件,是FPGA实际工作对应的的电路。
当然,上面这个例子很简单,但已经可以看出两者的区别了,对于复杂的设计这个区别应该更明显,此处不再赘述。