数字蚀刻一个素描

我把一个放在一起,你也可以。


构建过程

在这个项目中,我们创建了带有VGA输出的数字蚀刻图。 为了构建它,我们需要:

我们将旋钮连接到FPGA板上,并对板进行编码以处理旋钮,开关和按钮输入,并将草图输出到VGA。 以下是所有组件的连接方式:

我们的电路有两个旋钮输入和四个开关输入,并输出到VGA显示器。 一个旋钮控制的水平方向运动,而另一个控制的当前像素位置,我们跟踪和在屏幕上绘制的垂直运动。 开关控制绘图颜色 – 每个开关对应于一个颜色:红色,绿色,和蓝色。 该蚀刻-A-草图吸入并清除到颜色的颜色取其开关处于ON位置的组合。 当我们的第四个开关处于打开位置时,它会将屏幕从三个颜色开关清除为当前激活的任何颜色,并将Block RAM(BRAM)可见部分中的每个地址写入新颜色。


功能和文档

概括地说,这是我们在VHDL中编程的逻辑。 可以按照在屏幕上的控制流程从通过内部逻辑从左到右,从输入端,到VGA输出。 合成后,这是最终生成的示意图。

有关顶级功能块和特定VHDL代码的更多详细信息,请参见:

jtbon20 / Etchasketch

Etchasketch –在VHDL中实现的蚀刻

github.com


辩证与评估

我们的最终产品是在VGA上显示的全功能蚀刻蚀刻。 因此,有可能对设计进行很少的改进,可能比添加其他功能等。 可以在其他资产文件夹中找到对资源利用率和关键时序路径的分析,这两者都表明我们的蚀刻素描是有效的并且行为正常。


结论

总之,我们实现了所有我们在过程的开始着手为自己的目标。 在我们的建议中,我们说我们计划有两个旋钮来控制图形的x和y运动,以及一个按钮输入来清除屏幕。 尽管我们决定使用一个开关来保持屏幕清洁,但该开关可以使屏幕更加清晰,尽管我们完全遵循建议的旋钮操作。 我们还添加了三个开关来控制颜色,既可以用于蚀刻“蚀刻蚀刻”的颜色,也可以用于清除屏幕的颜色。

对于将来创建数字蚀刻版画的任何人,我们最大的建议是在实施程序之前全面测试该程序的每个模块。 我们在很大程度上做到了这一点,并获得了可观的收益,这使我们在首次为FPGA生成位流时经常能够使硬件正常工作。 尤其是对于“蚀刻版画”而言,几乎所有组件都相对易于测试,因此没有任何借口可以确保在将模块转换为硬件之前不能确保其完全按预期工作。 一次我们没有有效地测试模块的时间是在我们的控制器上,这导致我们进行了很长时间的搜索,而无法准确地找到错误所在。 我们曾经使用过一个测试台,但是测试台不能准确地表示硬件输入的行为,并且由于测试台的无效性,我们很难找到错误。 我们在该项目中取得成功的最重要部分是经常且高效地进行测试。


未来扩展

我们计划添加的下一个组件是开始屏幕。 我们将利用Matlab创建COE文件将在BRAM初始化“更受欢迎的价值观”开发此功能。 您可以按照以下项目进行操作:

Taggart Bonham | 开发者

查看我过去的一些项目,简历或与我联系。

taggartbonham.me