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