一、硬件與架構設計
本項目中用到的設備有:PC、FPGA、溫度傳感器DS18B20、蜂鳴器(beep)、數碼管(segment)。
對于本次的項目,我的任務是將之前的溫度檢測項目的架構再進行細分,以及將相應的代碼寫出來并且能夠上板調試出來。
之前的溫度檢測項目的架構主要分了九個模塊:分別是uart_rx模塊、ascii_hex模塊、opcode模塊、control模塊、byte模塊、bit模塊、seg_disp模塊、hex_ascii模塊、uart_tx模塊,具體的架構圖如圖1所示:
在上面溫度檢測架構(圖1)的基礎上,我將架構再進行了細分,分成了11個模塊:分別是uart_rx模塊、ascii_hex模塊、opcode模塊、control模塊、byte模塊、溫度比較模塊、溫度計算轉換模塊、bit模塊、seg_disp模塊、hex_ascii模塊、符號補全模塊、uart_tx模塊,具體的架構圖如圖2所示:
該項目架構細分前后的主要區別主要是:將細分之前的control模塊分解成了control模塊、溫度比較模塊、溫度計算比較轉換模塊、符號補全模塊、以及將opcode模塊的輸出設置為地址指令和數據指令一起輸出。
二、架構細分后的優點
我個人認為有以下幾個優點:
1、 讓每一個模塊的功能更加清晰,看起來比較直觀(讓剛接觸到該項目的新手,能夠比較短時間內了解各個模塊的功能);
2、 讓思路更加清晰,方便寫相應地代碼,減少因代碼過多而導致容易發生錯誤的問題(細分前的control模塊代碼多,功能多,使得看或者寫代碼時有一定的難度);
3、 方便對每一個模塊進行相應地測試(方便寫測試文件)。
三、產生問題及解決方案
在細分該項目的過程中,我所遇到的問題有以下三點:
1、 對各個細分模塊的輸入和輸出信號定義不太清晰(不知道該設置多少個輸入和輸出信號);
2、 對模塊之前的閑忙信號定義比較模糊(不太清楚哪些模塊之間需要定義閑忙信號);
3、 上板調試時,數碼管上能夠正常顯示讀取到的溫度值,而pc上卻出現了亂碼(沒有顯示讀取到的溫度值);
對于以上提到的三個問題,我分別做了如下的處理:對于第一個問題、我先將能夠想到的輸入或者輸出信號先定義好(多除少補),再結合細分架構之前對應的輸入和輸出進行定義;對于第二個問題、我先考慮各個模塊之間的信號處理時間,看看哪些模塊之間需要用到閑忙信號,最后再結合細分架構之前各個模塊之前的閑忙信號設置;對于第三個問題、我使用signaltap從uart_tx模塊、符號補全模塊、hex_ascii模塊、溫度計算比較轉換模塊依次進行查找問題,最后查找出是某一個輸出信號的位寬定義的問題。
總的來說,通過對本次溫度檢測項目架構細分,讓我對該項目更加的了解了,以及在一定程度上擴展我的設計思路,同時也讓我對signaltap的使用更加熟悉了(用signaltap找bug確實是一種很好的方法),還有就是也讓我體驗到了一絲的成就感。
以上就是本人優化溫度檢測工程架構的心得筆記,感興趣的朋友可以在留言中與我進行交流討論!
審核編輯黃昊宇
-
FPGA
+關注
關注
1631文章
21806瀏覽量
606614 -
檢測
+關注
關注
5文章
4520瀏覽量
91825
發布評論請先 登錄
相關推薦
低頻焊接溫度檢測儀的應用與優勢分析
架構建模與優化咨詢和實施服務
![<b class='flag-5'>架構</b>建模與<b class='flag-5'>優化</b>咨詢和實施服務](https://file1.elecfans.com/web3/M00/04/02/wKgZPGduRwaALTeRAAByg6aQCAc716.png)
多通道輸出0-20V電壓,用什么方式或架構檢測精度較高(整個檢測回路精度≤1%)?
如何優化SOC芯片性能
【「嵌入式Hypervisor:架構、原理與應用」閱讀體驗】+全文學習心得
防雷檢測和防雷工程接地綜合指南
![防雷<b class='flag-5'>檢測</b>和防雷<b class='flag-5'>工程</b>接地綜合指南](https://file1.elecfans.com/web2/M00/8F/90/wKgaomTQYLuAPXtLAAMJsTut9Wg380.png)
評論