2012-04-30 65 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,而不是信号。这是一个常量,可以用作某种寄存器输入的赋值。