如何写RTL硬件代码?
代码风格¶
代码风格和示例Verilog模板 RTL_Coding_Style.rar
设计原则¶
- 模块的start, done信号采用单周期的脉冲信号
- 模块输入数据有两种:
- 并行信号输入(信号仅在start周期有效,如果模块希望继续使用这些信号,则模块需要自行存储)
- 串行信号输入(需要需有<valid, data>控制+数据信号组合,仅当valid高电平数据才有效)
- 存储器输入(模块需自行产生地址线、读有效等信号)
- 模块输出有两种:
- 并行寄存器输出(输出都是寄存器,在done脉冲来临后有效,在start脉冲来临后失效)
- 串行寄存器输出 (输出采用<valid, data>控制+数据信号组合,仅当valid高电平数据才有效)
- 存储器输出(由后继模块产生地址线、读有效等信号)
- 不允许组合电路输出!!
- 在上述输入/输出方案之外的数据传输模式,需仔细讨论决定方案
硬件仿真环境设置¶
- Cygwin : Linux Shell界面
- Modelsim : 硬件仿真器
- Debussy : 看波形工具
其他资料¶
- [[h264enc:RTL Coding Style and Design Tricks]]
RTL_Coding_Style.rar (1.84 MB)