我正在学习使用 FPGA(Papilio 开发板,它有一个 xilinx spartan3e,使用 vhdl)。
我需要将输入脉冲除以(硬编码)数字。
我可以看到 3 个选项 - 大致作为伪代码(以 10 个计数为例):
- 初始化为0,在输入上升沿加1,对比10;如果相等,则复位为 0 并触发输出脉冲
- 初始化为10,在输入上升沿减1,与0比较;如果它们相等,则重置为 10 并触发输出脉冲
- 初始化为 9,但要确保至少有 1 个前导“0”位,这是我的输出位。在输入上升沿减 1。在输出位的上升沿,复位。
占空比并不重要。
其中一个比其他更好吗?有没有更好的方法我没有想到?
是否有一种“标准”方式可以为编译器提供最佳优化机会?