呵呵,都做过. 不太难.
熟悉编程语言,
看懂手册.
由简单到复杂一步一步来.
书上经常要求top-down,我觉得不是很适用. 我的开发步骤一般是这样的:
1. 首先划分大致的逻辑,将各个模块功能分开.
每个芯片主要功能都用一个entity控制.
顶层命令处理也是一个entity.
顶层与芯片接口之间通常也增加1~2个中间entity.
然后将加入存储器.
这样大致的功能划分就ok了.
2. 由简单都复杂,有低频到高频, 实现各个功能对应的所有entity.
一般先实现一个串口,用于调试,打印log.
然后是时钟分配,定时器.
然后依次处理各个功能.
3. 编程时,先做逻辑仿真, 再优化时序.
逻辑仿真主要是确保程序逻辑无误, 可用testbench辅助.
优化时序通常只需要检查最终达到的频率, 以及定时特征最差的一些型号路径.
做有针对性地改进.
做好了这些, 什么复杂的系统都不在话下了.
:D
|