lab2 上板向量乘 經驗和錯誤總結

2022-08-30 08:03:13 字數 2328 閱讀 4253

經驗:

1.連線和修改ip很麻煩。最好把所有verilog放到乙個工程裡,先不生成ip,先用add module放到畫板上會快很多,還不容易混ip(因為名字真的很難起)

2.雖然綜合很慢,但是連線還是要連一步測一步,如給資料直接用out等先測試。後期有錯十分絕望,根本沒法調,還得再走一遍。所以應該盡量早開始,綜合的時間還可以幹點別的。

3.warning資訊不能忽略,每條都要看一下是不是邏輯錯誤。

資料思路:

1.將向量乘資料考到sd卡上

2.編寫sdk,用fat開啟資料檔案,讀出,用dma(畫板上不用顯式給出來dma,直接用ps控制就行)給特定的板上位址(從platform和addr edit都能看見)寫讀出的資料,可以用三個通道,發完命令忙等三個寫完中斷(見example的中斷,但是不是寫完的中斷還有疑問)

3.給axi-lite傳開始訊號

4.pl給ps中斷(可以參考7000教程?)

5.發出dma命令讀high和low,用兩個通道,等中斷,(問題:輪數?),用fat寫回sd卡。

錯誤和小技巧: :ila彈不出來等

遇到的問題:

1.匯入sdk出現找不到檔案頭:這是因為sdk的庫不在安裝目錄,而在工程目錄,所以板子有些介面不開通的話是不會包含這些介面的驅動的。比如我這次就忘記在zynq上選sd卡的介面,然後報錯找不到"xsdps.h"(sd卡驅動)

2.failed to closesw:改完mss會自己rebuild,如果在系統自行rebuild前又手動點了rebuild的按鈕會出錯(大概)

3.launch helloworld的時候:ap transaction error, dap status f0000021:

網上說是啟動(要設jtag和按prob?)和寫唯讀的原因。

應該是和sd卡引導衝突,解決方法有:

(1)上電後立即launch(助教的意思大概是趁sd卡不注意)

(2)每次launch按reset(在led那排按鈕)

(3)把線冒放到jtag上,需要拆擋板,把靠近電源、黃色、原來在sd上的帽子挪到jtag上。(需要配置jtag啟動)

4.helloworld無反應的原因:

這個error比較崩潰,總結如下:

(0)串列埠沒成功過先去調串列埠。

(1)多半是板子沒配好,尤其是ddr:

這個還是很容易漏的,比如sd沒選cd、電壓沒改1.8、ddr型號不對等。這裡一定要跟著pdf一步一步地走。

調helloworld無反應的錯誤可以先從教程中最簡單的板子設定開始,一步一步再做一遍,看哪部之後不能輸出。如果一開始最簡單的都沒輸出的話,考慮是否是板子的問題(比如串列埠連錯)。

5.連不上local什麼的提示框:就是本地找不到板子,看板子上沒上電,還不行就把線拔了重連。

6.卡訪存:

我在用ila的時候突然發現開啟hardware manager後auto connect ,板子上的燈就全亮了。之前只亮power。會不會是axi那邊沒有上電所以沒反應?

燈全亮的狀態下可以讀dma。

改成jtag還有配置:

還是從最簡單的demo開始搭,就連zynq和乙個bram,按教程走一遍。

首先懷疑自己連錯線,開成rom?

但都不是!妙!

在助教指導下使用xilinx ila:懷疑是zynq發出的訊號axi沒理人家,所以調一下inter兩邊的線。ila好像是把執行時的波形輸出,可以進行上板子時的pl除錯。不過還是邊寫邊調好,這個作為保留手段吧。

自動連上了system ila,然後綜合不了了。手動新增了單純的ila,就能綜合了。

7.板子上沒reset:我也不知道咋回事,找了半天,最後又重新建了乙個

8.匯入時什麼done沒完成:不用管,重啟一下板子

9.別人的:自己封裝的ip本地驅動可能需要拷乙份到bsp,從平台的那個platform(看樣子平台的還不能隨便刪)。

10.sdk突然所有標頭檔案報錯找不到:重啟sdk,好像是build workplace有後台沒跑完,再編譯一下也行

11.ila視窗彈不出來:hardware manager->programming->refresh->sdk debug,我也不知道為什麼,反正就彈出來了

軟體構造 Lab2總結

af 抽象函式,代表值到其對應的抽象值的對映。ri 表示不變數,代表某個值必須滿足的條件。safety from rep expose 安全保證,描述adt如何防止表示暴露。checkrep 檢查表示不變數是否始終被滿足。可變型別 提供修改物件值的方法,存在表示暴露的風險,可採用防禦式複製保護可變型...

軟體構造 實驗回顧 Lab2

第二部分 re implement the social network in lab1 第三部分 playing chess 本次實驗訓練抽象資料型別 adt 的設計 規約測試,並使用物件導向 程式設計 oop 技術實現 adt。具體來說 針對給定的 應用問題,從描述中識別所需adt 設計 adt...

作業系統lab2實驗總結 Part2

沒有做出lab2 2 extra,後來發現其實是理論課的原題,甚至是我做過的。反思了一下,自己對於有些模糊的知識得過且過了,或者說只能夠做出一種題,沒有深刻明白它的原理,希望引以為戒。以前我對自對映的理解就是,有乙個4kb的頁目錄放進了4mb二級頁表中的乙個頁表中。現在發現有一些需要注意的問題 二級...