2013年7月17日 星期三

Xilinx .coe file format

Xilinx有個Block Memory Generator可以創造single/dual port ram/rom
測試時,將pattern存在rom裏頭,讓其他module可以存取,是相當方便。
利用記事本貼上下列文字,必須拿掉"......" ,副檔名為.coe,ex: pattern.coe

--------------------------pattern.coe or xxxx.coe----------------------------------------------------------
memory_initialization_radix = 16;
memory_initialization_vector =
FCC906A1
FF5BFDC5
006200C4
FF150B0C
FE58058F
0011FC45
01B001C8
006905F9
005AFDF9
02DEFC13
FF5902CB
F7B8FFA4
FC3FF6EA
09A1FA09
0A000222
001A015D
0018FD75
0451FE03
FE43FEC8
F9BCFD5B
FFEBFCDF
0108FE4C
FA830003
FDF7FF3C
......
00000000;

---------------------------------------------------------------------------------------------------------
如果有N個pattern, 存取時候,記得要以addra=0開始,以addra-N-1結束,不能以1 to N存取。

2013年6月22日 星期六

Xilinx FPGA 燒錄

點選Configure Target Device
Xilinx FPGA若只是揮發性燒錄註1,那就是產生.bit 檔,只要跑完"Generate Programming File"的流程就會產生,接著透過Xilin的工具iMPACT(圖)或是"Configure Target Device"來進行暫時性燒錄。
(所謂揮發性燒錄,就會重開機,燒錄的檔案會消失)
Xilinx燒錄工具,bit檔和mcs檔都是透過此工具

如果希望開機還存在,就要產生.mcs 檔案,燒錄到flash裏頭。
必須了解Flash的資訊,我是以SP605為範例,參考SP605開發板的參考文件(圖),是一個64-Mb的Flash。

以下是產生.mcs的過程
開啟iMPACT後出現的畫面,點選左列中Generate PROM File
選擇64-Mb
設定檔名、輸出位置、格式、是否要加入非配置資料*

以上是Xilinx燒錄過程

[補充]Altera揮發性燒錄檔是.sof檔,燒錄到flash的檔案是.jic檔

2013年5月22日 星期三

MicroBlaze in Xilinx FPGA

Q. 什麼是MicroBlaze?
Ans:
        MicroBlaze是Xilinx所提供的微處理器,是個Soft IP。Soft IP是當需要的時候,編譯環境自動使用FPGA邏輯資源產生。有Soft IP就有Hard IP,Zynq系列中的ARM 微處理器就是Hard IP,原本就存在於FPGA中,即便不使用,它(ARM Core)還是存在於FPGA中。
透過MicroBlaze 這樣的微處理器,再搭配Xilinx所提供的其他Soft IP像是UART IP, SPI IP, I2C IP, SRIO IP, CPRI IP等等(有些IP是免費提供,有些則是要付費購買),可以建構一個嵌入式系統。

Q. 建構MicroBlaze是在什麼樣的環境下?
Ans:
         Xilinx基本的邏輯設計環境是ISE,如果要建構嵌入式系統則還需要EDK(XPS+SDK)。
XPS建構硬體,也就是將IP整合(Xilinx提供或是自己寫的)。
SDK建構軟體,用來寫動作流程(當微控制器)、寫firmware建構 Linux OS(PetaLinux, 第三方所建構的Linux OS 可以放在MicroBlaze 系統跑)。

Note:
ISE = ???
EDK = Embedded Development Kit
XPS = Xilinx Platform Studio
SDK = Software Development Kit

Q. 整個設計流程為何?
Ans:建議的建構流程如下,粗略版本。

ISE-->XPS(建構硬體平台)-->ISE-->SDK(建構軟體程式)-->ISE(燒錄)

Q. 為什麼是粗略版本?
Ans: 因為該流程沒有加入模擬以及ChipScope,加入這兩個模擬及除錯後,會複雜些,
       為了避免失焦,故先不說明。