1

特别是它一个简单的鼠标光标。我已经在软件中实现了这一点,但在硬件中很难做到这一点。在软件中,我可以将位图存储为一个常量数组,然后引用它以获得 vga 显示所需的颜色信息。我在硬件中尝试了类似的方法,但意识到恒定信号只存在于模拟中而不存在于合成中。

我在精神上被困在一个盒子里,想要一些建议来帮助我摆脱它,这样我就可以完成这个。正如我的老师经常说的那样,我需要在硬件方面进行思考。

该软件是这样的:

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

2 回答 2

1

是的,考虑硬件是 FPGA 编程时要做的第一件事。

因此,在您的软件实现中,您的const char阵列存储在计算机的内存中 - 因此解决方案可能是在您的 FPGA 设备中创建一些内存,然后将其存储在那里。大多数 FPGA 都有某种内置内存,您可以推断(编写代码使其自动映射到内存块)或实例化(编写代码以直接使用特定的内存块类型)。通常,您还可以指定一个数据块以在配置期间预加载它。

例如,在 Xilinx 芯片上,您可以添加一个新的 IP 内核,选择 Xilinx Memory Generator,然后生成一个只读 BlockRam,预加载您的光标数据。这是一种可能性,尽管不一定是最好的解决方案。

于 2012-05-01T16:44:35.197 回答
0

“成本”当然是可以综合的。因此,您必须向我们提供您的代码,以了解为什么它不适合您。

根据使用的语法, const 在大多数综合 VHDL 中被实现为解码器/多路复用器。
可能导致您出现问题的是“char”,它可能无法合成,但没有什么可以阻止您创建一个“char”类型。

想象一个 N:1 多路复用器,其中 N 的输入值固定为 0 或 1 而不是信号。这是一个 const 可以用作寄存器输入的某种赋值。

于 2012-05-02T07:44:24.397 回答