欢迎光临散文网 会员登陆 & 注册

fpga verilog语法篇 3让模块工作 3注意事项

2023-07-30 08:29 作者:GXTon_阿通  | 我要投稿

fpga中,如果让一个模块循环工作,

比如,串口模块如果要输出多个字符,就需要执行多次.

每次循环执行前,需要清理之前的残留参数和状态,并准备本次执行的数据和状态.


需要解决的问题:
1,在发送前需要准备好什么?
    上次发送完,有没有进行计数变量的清理.
    要发送或处理的数据有没有准备好.(检查上一级模块是否完成输出).
2,怎么发送出去?
    逻辑的编写:
    可以用状态机进行各个状态的实现.
    也可以用使能完成标志,实现流水线一级一级的传递.
3,如果冲突了怎么办?
    本次数据还没有发完,又有一个数据传过来了.
    需要控制时序,设计缓存,考虑上下级模块间的配合.
4,如何控制模块工作和停止?
    是让模块一直工作下去,还是每次触发,只运行一次.
    如果每次触发,只运行一次:
    需要设立一个标志,挂起的标志.标志=1,工作.标志=0,停止.
    如果是状态机,设立一个"挂起"的空闲状态.完成工作后,进入空闲状态.
5,发送完之后,如何清理?
    为下次工作做准备,需要清理计数变量,缓存.
6,有没有时序冲突问题?
    一个快,一个慢,那么模块之间怎样进行传输,就需要规定好用统一的时序.
    需要对输入标志,和输出标志进行处理和打拍,否则模块之间的衔接有问题.
7,模块中每个程序块,always,assign都可以看作是一个并行独立的小程序.他们之间是否有冲突?
    尤其是在两个程序块之间,对同一个数组操作的时候,角标的问题.边界的问题.
    变量是否在程序块之间进行了及时更新.

fpga verilog语法篇 3让模块工作 3注意事项的评论 (共 条)

分享到微博请遵守国家法律