VIO你用對了嗎

  • 2020 年 2 月 17 日
  • 筆記

VIO(Virtual Input/Output)有兩個主要功能

監測設計中的內部訊號;

驅動設計中的內部訊號。

既然是Virtual(虛擬的),就表明這個輸入或輸出並不是真實存在於FPGA設計中。下圖顯示了VIO的輸入、輸出管腳。其中,輸入、輸出管腳最大可支援到256位。如果需要監測設計中的某個訊號,則需要將該訊號連接到VIO的輸入端;如果需要驅動設計中的某個訊號,則需要將該訊號與VIO的輸出端相連。

例如,需要監測模組m1的輸出訊號done,則將done訊號連接到VIO的輸入端probe_in0;同時需要驅動m1的複位訊號,則將複位訊號rst連接到VIO的輸出端probe_out0。不難看出,就監測功能而言,VIO類似於一個簡單的顯示器,顯示待監測訊號的狀態;就驅動功能而言,VIO類似於板卡上的一個按鈕開關。

即使設計中只有VIO而沒有ILA,Vivado也會生成相應的.ltx文件。打開Vivado Logic Analyzer之後,添加訊號到VIO窗口,如下圖所示,即可監測訊號,或者改變驅動訊號的值。

VIO以IP Core的形式存在於Vivado IP Catalog中,如下圖所示。不同於ILA,VIO只能通過實例化的方式在設計中使用,而不能通過類似於ILA直接在綜合後的網表中插入的方式使用。同時,也可以在Block Design中使用VIO。

文 | Lauren 圖 | Lauren

Copyright @ Lauren的FPGA