Jan 26
此篇宗旨:因为还写了一篇文章叫《Ricky版FPGA常见问题(FAQ)》,内容相近却不同,难免混淆。此篇仅写一些Xilinx提供的一些不引人注意却又有用的小工具和某个工具的属性。
Tags: , ,
Jan 19
一个ImpluseC做得Demo,挺有意思的。

Jan 16
网上看到一篇关于Finite State Machine (FSM) - 有限状态机的文章《有限状态机的VHDL优化设计》,写得挺详细,有些感想和经验记录于此:

1. 关于使用的语言 - VHDL和Verilog大同小异,想法是一样的,万变不离其宗。

2. 模板 - 大家都会讨论是一段两端还是三段。争执在两端和三段的情况时有发生。其实只要综合器能综合出设计者期望的电路,怎么写都无所谓。代码是给人看的,如果能让别人更容易读懂,就是好代码。我偏好两段,因为这样在察看代码时能一眼看出某一个state的跳出条件和输出信号。如果状态机的状态数很多,需要上下翻阅才能分别得知跳出条件和输出信号,真是太麻烦了。

3. 结构 - 当前状态用时钟驱动,next_state由组合逻辑生成,这些都是固定的。唯一可能有争议的是输出信号需不需要加寄存器打一拍?
点击在新窗口中浏览此图片

不加寄存器的输出


点击在新窗口中浏览此图片

输出由寄存器驱动



一般来说,如果是模块的输出,我会用寄存器打一拍,保证模块所有输出都由寄存器驱动(因为无法预测负载要经过多少级LUT才能到达下一级寄存器)。这样一来有个坏处:某个状态的输出信号要到下一个时钟才有效,而不是和state一起变化。在某些设计中这个限制会导致一些问题。因此如果是本模块自己使用的信号,我就不用寄存器打一拍了,只要布局布线后能满足Period约束就可以。

4. 状态转换输出 - 对于输出信号的赋值,通常会有两种状况:某个state时需要保持的输出;状态跳转的时候需要一个脉冲的输出。对于第二种输出要求,可以把输出信号写在状态跳转条件的if语句中。

5. 我的模板
Tags: , ,
Jan 16
1. waveform compare
2. dataflow hierarchy
3. udo file
4. Verilog FSM state name
5. ModelSim的系统设置
6. 如果要使用两个自己编译的库
7. 保存所有信号记录
8. Change Directory
9. ModelSim仿真结果不正确 和-novopt选项
10. 常用快捷键
Tags: , , ,
分页: 7/35 第一页 上页 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]