2012-04-30 69 views
1

特別是它的一個簡單的鼠標光標。我已經在軟件中實現了這一點,但是我在硬件方面遇到了困難。在軟件中,我可以將位圖存儲爲常量數組,然後引用它以獲取vga顯示所需的顏色信息。我在硬件上嘗試了類似的方法,但意識到恆定信號只存在於仿真而不是綜合中。硬件覆蓋圖

我被困在一個盒子裏,想要一些建議來幫助擺脫它,所以我可以完成這個。我需要用硬件思考,正如我的老師總是說的那樣。

軟件去是這樣的:

const char mouse_data{ 0xff, 0x bb ... }; 
color = mouse_data[1]; 
vga_write(vga_base, offset, color); 
+0

有人告訴我把它變成一個顏色作爲關鍵的解碼器。有效。 –

回答

1

是的,以爲硬件是一件事FPGA編程的時候做。

因此,在您的軟件實現中,您的const char陣列存儲在計算機的存儲器中 - 因此解決方案可能是在FPGA器件中創建一些存儲器,然後將其存儲在那裏。大多數FPGA具有某種內置內存,您可以推斷(編寫代碼以便自動映射到內存塊)或實例化(編寫代碼以直接使用特定的內存塊類型)。通常,您還可以在配置期間指定一個數據塊來預加載它。

例如,在Xilinx芯片上,您可以添加一個新的IP核,選擇Xilinx Memory Generator,並生成一個只讀的BlockRam,並預先載入遊標數據。這將是一種可能性,但不一定是最好的解決方案。

0

'成本'肯定是合成的。所以你將不得不把你的代碼給我們看看爲什麼它不適合你。

根據使用什麼語法,const被實現爲大多數合成VHDL中的解碼器/多路複用器。
什麼可能導致你的問題是'char',它可能不是合成的,但沒有什麼能阻止你創建一個'char'類型的。假設一個N:1多路複用器,其中N的輸入值固定爲0或1,而不是信號。這是一個常量,可以用作某種寄存器輸入的賦值。