FPGA高手设计实战真经100则——摘记

本文摘录自《FPGA高手设计实战真经》,详细介绍了FPGA设计中的命名规范、端口连接、变量选择、函数使用、时钟管理、跨时钟域同步等关键点,强调了正确设计方法对提高代码可读性和系统稳定性的重要性。
摘要由CSDN通过智能技术生成

《命名规范》

1、  文件头:必须包含正确的版权信息和声明。可以包含简短说明、设计工程师名字和电子邮箱、版本几对该文件进行更改的列表。

格式:/*--------------------------------------------------------------------------------------------------------------

                    说明……

------------------------------------------------------------------------------------------------------------------*/

2、  一个文件实现一个verilog模块,模块名称与文件名相匹配。

//file: my_module.v

module my_module;

//module implementation

endmodule        //my_module

3、  标示符命名两种风格:

a.  大小写混合,没有下划线,每个单词第一个字母大写,如reg MyRegister;

b.  全部小写,字与字之间用下划线(推荐),reg my_register;

4、  常用后缀:

_p,_n:正极性或负极性,或两个差分信号

_ff,_q:寄存器输出

_c:组合门驱动的信号

_cur:现态

_next:次态

_tb:测试平台

_en:使能

5、  时钟信号:wireclk50;    wire clk_200_p,clk_200_n;      wire clk_en;

6、  复位信号:regreset;//高电平有效       reg reset_n;//低电平有效

7、  端口名称:_i,_o等等。

 

《连接模块实例的端口》

有两种方法:通过名称和通过顺序。推荐用通过名称方法,允许更多灵活性,例如可以省略一个未连接的端口。虽然代码量稍大,但更具有可读性且不容易出错,尤其适合具有数百个端口的大型模块。

个人写法:module名 m(.旧端口(新端口),……);

 

《使用可变的比特范围选择》

看例子:assign qout[24+:8] = din[7-:8];

等价于  assign qout[24:31] = din[7:0];

这种方法不容易出错,可以防止胃口不匹配情况

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值