關於 HPS IO 復用 細節請參考我之前的博客:
https://www.cnblogs.com/DoreenLiu/p/14012088.html
HPS端普通外設引腳分配(uart、spi、I2C、USB、GPIO、ethernet、SD card等)
當我直接在DE1-SOC 的 GHRD 工程里面為HPS端的串口分配管腳的時候,它提示:Editing location assignment is not successful. Not assignable.

在HPS IP 里面,你想要你的 uart 外設 用HPS 的哪些引腳資源,就可以在HPS IP 里面對應的設置 HPS I/O Set0 還是 HPS I/O Set1 還是 HPS I/O Set2,這里的 HPS I/O Set0、 HPS I/O Set1、 HPS I/O Set2對應到電路里面其選擇的引腳是:
在HPS IP 設定頁的最底層有個 Peripherals Mux Table 如下圖所示,可以幫助用戶檢驗整個 HPS 外設 I/O pin multiplexing 設定的狀態,看看是否有所沖突。每個 mux_select 表內,若管腳名被標注為粗體,就代表此管腳功能已被設定。
DE1-SOC 對應的 SOC FPGA 芯片 引腳信息還可以參考intel的這個文檔(for 5CSEMA5 device)( [](https://www.intel.cn/content/dam/www/programmable/us/en/pdfs/literature/dp/cyclone-v/5csema5.pdf))如下:
DE1-SOC的 uart外設在板子硬件上固定到 C25引腳和B25引腳了,所以直接在HPS IP里面選擇 HPS I/O Set0即 完成了 引腳分配(pin assignment)。
HPS 的 SDRAM 外設的引腳分配
HPS 的 SDRAM 外設 則需要run Qsys自動生成的hps_sdram_p0_pin_assignments.tcl 文件: