LVDS OUTPUT只能鎖定在BANK0或者BANK2上,而LVDS INPUT無此要求。
由於在仿真ALTLVDS_RX中發現信號線rx_dpa_locked並沒有鎖住。后來發現是我初始化出錯了。在洪鴻榕的調試下,我學到了modelsim中用字母I、O可以放大和縮小波形,在輸入信號端口上右擊可以強制對輸入信號進行賦值,這樣可以不受testbench的影響(要能靈活應用,GOOD!)。在《ug_altlvds.pdf》文檔中第36/105頁中語句1如圖1所示,再結合第38/105頁初始化步驟(程序的步驟就要嚴格按照這個來寫,所以一定要吃透並理順),可以發現我自己對信號rx_fifo_reset的理解是有着致命的錯誤。也明白了並非所有的復位信號一開始就讓其有效是對的。這邊就出現rx_fifo_reset信號開始要為0,等到rx_dpa_locked信號有效再置有效且只能一個時鍾的脈沖,這樣才能達到復位功能。
建議在對LVDS_RX進行初始化請一定要按照《ug_altlvds.pdf》第38/105頁,如果嚴格按照上面的要求就會得到正確的結果。其中字調整需要4個脈沖,這是參考《arriav_hankbook.pdf》第157/426頁串行與並行關系得到。
Modelsim中常用到restart -f; run 5us; radix -hex等語句,及向上箭號來尋找之前的命令。調試中要善於對輸入信號進行強制賦值來對比。
常用到的命令有cat,pwd,cd等,有些指令與Linux底下的使用類似。
Modelsim下方時間單位ps改為us的方法:Tools-->Window Preferences...-->Grid & Timeline中Time units選擇us即可。
dir可以查看文件目錄列表,notepad filename可以以寫字板打開文件看里面的東西 。
Modelsim保存wave中自己設置好的信號方法:File-->Save Format...即可。
Modelsim的wave中信號針對某個值進行查找時方法是:Edit-->Wave Signal Search...-->Search for Signal Value輸入所需的值就可以定位。
Modelsim的wave中對某些信號線進行合並,即提取所需的信號總線,方法是:Tools-->Combine Signals...-->Result Name輸入所取的名字就可以。
Modelsim的wave中信號針對某個值進行查找時方法是:Edit-->Wave Signal Search...-->Search for Signal Value輸入所需的值就可以定位。
Modelsim的wave中信號線顏色和命名顏色的改變方法是:在該信號上右擊-->Properties...-->View-->Wave Color / Name Color就可以。
使用ModelSim do文件實現仿真(Verilog)http://www.eetop.cn/blog/html/51/806951-29326.html 這篇文章寫得很好,很價值。
modelsim批處理和do文件 來源: http://blog.21ic.com/user1/8510/archives/2012/91124.html
批處理后綴是*.bat文件,使用類似GCC,可以參考GCC使用手冊
在Altera的ArriaV中也有ALTLVDS_TX和ALTLVDS_RX宏功能模塊。由於之前在做Xilinx器件時,有用過將LVDS的差分信號轉成單端信號的相關源語。以為在Altera器件上也需要,其實Altera完全可以不用,只需要定義和鎖定P引腳就可以,但需要將IO Standard定義成LVDS形式,如下所示:
# | module altera_lvds_rx_1
set_instance_assignment -name IO_STANDARD LVDS -to LVDS_RX1_p[0]
set_location_assignment PIN_F16 -to LVDS_RX1_p[0]
這樣就可以省去一大堆的差分轉單端的源語了,太給力了。
###################################################################################################
對於LVDS_TX和LVDS_RX宏功能模塊中PLL的共享一定要保證所要求的信號源一致,就是采用同一根信號。我之前一直沒能理解過來,且不會轉變,后來還是洪鴻榕做出來了。其實我是定位對了,但沒能理解過來。語文!!
文檔《ug_altlvds.pdf》第51/105頁中有提到:when both use identical input clock sources, identical pll_areset sources, identical deserialization factors, and identical output settings.
我在用LVDS_TX和LVDS_RX宏功能模塊時,出現如下三個問題:
第一問題:我對LVDS_RX宏功能模塊分別進行功能仿真和時序仿真,在輸入時鍾為74.25MHZ,占空比是4/7,串行因子是7bit的條件下,功能仿真是將7個拆開成3個和4個輸出的,而時序仿真卻是將7個拆開成4個和3個輸出的。我們不確定哪種是正確的,請問文檔中哪邊有提到嗎?下面這張是當串行因子為8bit時的接收情況,它是8個拆開成4個和4個接收的。而7個的話就不知道如何拆開呢?
第二個問題:我們PANNEL上LVDS發送格式如下圖所示。那么我們要如何使用Arria LVDS_RX宏功能模塊去正確接收?

第三問題:還有LVDS_TX宏功能模塊的發送格式是如下所示,我們要如何處理才能變成上圖的格式輸出呢?

