编译到底做什么

时间:2024-03-09 16:07:13

在Quartus ii使用时,一定会使用编译,下面自己总结一下编译到底干了什么事。

(1)综合,编译时首先将输入设计转换成电路的设计。即将verilog hdl语言和原理图等转换为电路的设计;

(2)布局布线,在综合后得到的电路设计,按照一定的方法放在指定的器件中去,将其连接成一个完整的布局。

(3)时序分析,对编译的结果根据时序约束进行分析,看时序是否有问题

(4)集成,将编译好的东西做成一个文件,方便下载。

在线调试工具(转载于luckybag的博客)

1. Quick Design Debugging Using SignalProbe

信号探针方式不影响原有的设计功能和布局布线,
只是通过增加额外布线将需要观察调试的信号连接到预先保留或者暂时不使用的I/O接口。
信号电平会随布线有一定的延时,不适合于高速、大容量信号观察调试,也不适合做板级时序分析。
它的优势在于不影响原有设计,额外资源消耗几乎为零,
调试中也不需要保持连接JTAG等其他线缆,
能够最小化编译或是重编译的时间。
 
2. Design Debugging Using the SignalTap II Embedded Logic Analyzer
在线逻辑分析仪很大程度上可以替代昂贵的逻辑分析仪,为开发节约成本;
同时也为调试者省去了原本繁琐的连线工作,而有些板级连接的外部设备很能观察到的信号都能够被轻松的捕获。
如果对设计进行模块的区域约束,也能够最小化使用在线逻辑分析仪对设计带来的影响。
在线逻辑分析仪的采样存储深度和宽度都在一定程度上受制于FPGA器件资源的大小。
使用该方式必须通过JTAG接口,
它的采样频率可以达到200MHz(若器件支持)以上,而不用像外部调试设备一样担心信号完整性问题。
 
3. Logic Analyzer Interface using external logic analyzers
逻辑分析仪接口针对于外部逻辑分析仪的。
调试者可以设置FPGA器件内部多个信号映射到一个预先保留或者暂时不使用的I/O接口上,
从而通过较少的I/O接口就能够观察FPGA内部的多组信号。
 
4. In-System Updating of Memory and Constants using In-System Memory Content Editor
在线存储内容编辑是针对设计中例化的内嵌存储器内容或常量的调试。
可以通过这种方式在线重写或者读出工程中的内嵌存储器内容或常量。
对于某些应用可以通过在线更改存储器内容后观察响应来验证设计,也可以在不同激励下在线读取当前存储内容来验证设计。
 
5. Design Debugging Using In-System Sources and Probes
这种方式是通过例化一个定制的寄存器链到FPGA器件内部。
这些寄存器链通过JTAG接口与Quartus II通信,
它又能够驱动FPGA器件内部的某些输入节点信号,采样某些输出节点信号。
这就使得调试者不用借助外部设备就能够给FPGA添加激励并观察响应。
在这里方便的观察FPGA内的寄存器的变化,甚至是可以实时的观察其变化,
基本上用起来和外部接一个示波器或逻辑分析仪没有区别了。
用起来相当的方便,只是一个简单例化连接映射,重新编译后就可以使用了。