2013-06-23 21:34:03
要知道“我寫的這段代碼會綜合成什么樣的電路呢”,就要搞清楚RTL圖中每個模塊的功能,從而將代碼與硬件對應,判斷綜合后的電路是否與預期的一致。如何做到?
之前查了很多資料都無解,偶然的機會,發現借助器件的Libraries Guide for Schematic Designs可以解決這個問題。
RTL代碼進行綜合可以得到硬件的實現,在RTL schematic可以看到代碼是用器件的library中哪些element實現的。下面進行詳細說明。
在ISE的RTL schematic中,四角上帶有小三角的不是library中的element,而是用戶寫的Instantiation,可以雙擊打開低層的圖看到實現這些 Instantiation的element。
還是以前面文章中的異步FIFO(http://www.cnblogs.com/youngforever/p/3151540.html)的RTL schematic為例,RTL圖如下:
上圖中四角帶有小三角如rptr_empty、sync_r2w等是自己寫的module,而沒有帶小三角的如fifo_mem、and2b1、fdr是library中的element,我們可以猜測出and2b1是與,fifo_mem是FIFO存儲器,但具體fifo_mem的工作方式是怎么樣的?如果對應於某些復雜的設計,出資按一些element,我們猜不出功能,怎么辦?
這些可以通過查找器件的Libraries Guide for Schematic Designs得到,比如上面的器件是Virtex-5的,那么就到xilinx的官網下載 Virtex-5 Libraries Guide for Schematic Designs.pdf,在該文檔那個中有該器件所有的element的說明。通過文檔的目錄可以很快找到該element,比如文檔中fdr的介紹如下:
對於其他感興趣的element都可通過該方法找到其功能描述。
知道了所有這些element的功能之后,就能將硬件與代碼對應起來了。