关于FPGA的自我小总结(一)

1、阻塞赋值与非阻塞赋值区别。

阻塞赋值意思是阻塞后面的语句执行,即本语句执行完毕后才能执行下一语句;非阻塞赋值不会影响后面语句执行。即一个串行执行,一个并行执行。语句中间的时延可以人为决定,但这种代码不可被综合,系统的时延判定目前不清楚,还有待考证。参考:https://blog.csdn.net/avrmcu1/article/details/21489799

2、随时注意时延

3、vivado下载后可能会出现因为许可证不能综合的问题,多下载几种许可证,挨着试就行

4、parameter与localparam区别

前者可用于本模块的参数传递,后者只有效于本模块,不可进行参数传递,类似C中的局部变量,多用于状态机

5、 (*KEEP="TRUE"),避免语句在综合时被优化掉

6、分频:a分频即a个完整波形(高+低)变为一个完整波形

7、~(u32)1<<(pinnumber+16u),此处pinnumber为7,问此条语句执行完后为多少。

首先pinnumber为7,则代表第八位,再加16u即第24位赋值为1,则二进制表示为:0000_0000_1000_0000_0000_0000_0000_0000

十六进制为:00800000,再取反:FF7FFFFF

8、PLL的重要性

当在复杂的系统设计中会需要多个不同的时钟,如果直接使用不同时钟很容易产生毛刺,影响系统的性能。但是经过PLL锁相环,可以将不同时钟相位对齐,使多个时钟按需求同步或者产生一定相位差满足设计需要。使用PLL时可以配合使用BUFG原语,产生不同频率的同相时钟。

9、XST中View RTL Schematic和View Technology Schematic区别

前者相当于是根据编写的语言程序生成的视图,与所选的芯片型号无关,而后者是基于所选的芯片型号进行视图的生成,是chipscope抓取时对应的实际电路图,官网应答如下:http://china.xilinx.com/support/answers/41500.htm#solution

10、always 、assign 、initial语句异同

均是同时进行,initial只执行一次,而always满足触发条件就执行一次,assign用于组合逻辑,并且一次只能一句,后面不能加语句块。always语句合法写法:

always@ *

always@ (posedge clk1,negedge clk2)

always@ (a or b)

`timescale 1ns/1ps //定义仿真基本周期为1ns,精度为1ps

always #1 clk=~clk //#1代表一个仿真周期即1ns

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值