近期又学习了VHDL(FPGA/CPLD开发), 现总结心得体会:
- 要有硬件的思想, VHDL(或Verilog HDL)毕竟是HDL(硬件描述语言)。用写”程序”的思想来写硬件, 是错误的。程序对应的是机器指令, 是一条一条执行的; 而HDL对应的是具体电路, 即使是行为级描述。HDL写出来的代码有可能无法被synthesise出来。
- 数字电路课程, 我还需要多学习一个。
- 在编写FSM(有限状态机)时, 需要用触发器对外部输入信号进行采样, 确保时序和系统时钟是同步的。我在写UART的时候就遇到了类似问题, FSM莫名其妙卡死, 然而加上触发器对RXD输入信号进行采样之后, 就没有这个问题了。
- 硬件的调试比软件难, 主要在于可能出错的情况变多了。我在调试蓝牙模块的时候, 发现触摸某个特定的位置就会使得模块重启。检查模块, 未见异常; 猜测是电源有干扰的问题, 给电源加上一个电容, 也没用(实际上模块自己已经加了)。最后发现是用于连接模块和FPGA的杜邦线坏了。
发表评论