本節主要介紹如何從ddr3的晶元選型和fpga晶元選型來確定mig的一些引數,
這裡以晶元part number :mt41j256m16rh-125:e為例,開啟晶元的資料手冊,會找到如下所示的介紹:
io時鐘頻率:
根據part number 中的「-125」我們就可以找到圖中的「1」,根據這裡tck = 1.25ns,就可以算出晶元支援的最大io時鐘頻率:1/1.25ns = 800mhz;
位寬:
根據part number 中的「256m16」我們可以找到圖中2所指出的地方,這裡的16是代表晶元的資料位寬是16位(也就是16根資料線)。
頻寬:
由於是ddr方式傳輸資料(上公升和下降沿都傳輸),所以晶元的一根資料線上的傳輸速率 = 2*800mhz = 1600mt/s。其實就是1600mbit/s;
頻寬就是16根資料線同時傳輸的資料速率 = 1600mbit/s x 16 = 25600mbit/s = 3200mbyte/s = 3.125gbyte/s
關於ddr3跟詳細的介紹,請看本系列的其他文章
這裡以xilinx artix-7系列的fpga為例,具體型號為xc7a100tfgg484-2。開啟對應的datasheet(ds181),找到如下圖所示的介紹(第15頁):
從上圖中紅線標出的地方可以看出,此fpag晶元的mig支援最大phy速率是800mb/s(注意,這是資料傳輸速率)。因為是使用ddr模式傳輸資料,所以最大時鐘頻率 = 800/2 = 400mhz。(還記得剛剛ddr3 晶元支援的最大io時鐘頻率嗎?800mhz,在下面的mig引數設定中,就會用到這兩個引數)。
在說具體的時鐘引數設定之前,我們先來看一張圖 mig 的 clocking architecture
根據本圖很明顯的告訴了我們,需要給mig提供兩個時鐘,乙個叫system clock(主時鐘),乙個叫reference clock(參考時鐘)。
但是在mig中,如何對這些時鐘引數進行設定(描述)呢?看好了,接下來開始畫重點了!!!!!
在mig中,涉及到對時鐘引數進行設定(描述)的地方有四處,接下來我們乙個乙個的看:
第一處,如下圖所示
第二處、還是如圖所示
這裡就是設定system clock(主時鐘)的輸入頻率,實際是多少就寫多少。
第
三、四處,繼續如下圖所示
圖中的「3」是設定(描述)system clock (主時鐘)是差分輸入還是單端等其他形式的輸入,這裡我們選擇差分輸入
同理,圖中的「4」是對reference clock(參考時鐘)進行描述。主意:如果system clock 頻率設定為200mhz(看第二處),這裡就可以直接選「use system clock」,否則就沒有「use system clock」這個選項,要是選其他選項,後面還需要對reference clock進行設定,如下圖所示
關於mig其他詳細介紹,以後會持續更新
DDR3 記憶體頻寬計算
記憶體頻寬計算公式 頻寬 記憶體核心頻率 記憶體匯流排位數 倍增係數。先容我從ddr的技術說起,ddr採用時鐘脈衝上公升 下降沿各傳一次資料,1個時鐘訊號可以傳輸2倍於sdram的資料,所以又稱為雙倍速率sdram。它的倍增係數就是2。ddr2仍然採用時鐘脈衝上公升 下降支各傳一次資料的技術 不是傳...
FPGA 上 DDR3 管腳如何分配
不論是哪一款 ddr dq 在組內都是可以互換的,因為資料的具體內容只要讀入和讀出一致即可 1 確定占用的 bank 在 pin planer 介面,首先右鍵開啟 show banks,確定好 ddr3 要占用的 banks,使用1.5v供電,記住 bank位置 每組ddr3 只能使用同乙個 col...
晴天小豬歷險記之Hill
這一天,他來到了一座深山的山腳下,因為只有這座深山中的一位隱者才知道這種藥草的所在。但是上山的路錯綜複雜,由於小小豬的病情,晴天小豬想找一條需時最少的路到達山頂,但現在它一頭霧水,所以向你求助。山用乙個三角形表示,從山頂依次向下有1段 2段 3段等山路,每一段用乙個數字t 1 t 100 表示,代表...