您的位置 首页 模拟

FPGA在代码完成方面的小技巧

FPGA在代码实现方面的小技巧-比如我要对一个1bit位宽的控制信号做延时后送给3个模块,第一个模块要延时100个时钟,第二个模块延时150个时钟,第三个模块延时200个时钟,这时我要怎么做。

比方我要对一个1bit位宽的操控信号做延时后送给3个模块,第一个模块要延时100个时钟,第二个模块延时150个时钟,第三个模块延时200个时钟,这时我要怎么做。咱们能够界说一个200bit位宽的信号reg [199:0] start_valid, start_valid[199:1]<=start_valid[198:0],然后将start_valid[99]送给第一个模块,start_valid[149]送给第二个模块,start_valid[199]送给第三个模块,是不是很便利。

FPGA在代码完成方面的小技巧

 比方一个信号扇出很大,能够将这个新号复制成多个信号,然后别离运用这个信号。时钟使能信号的使用。比方我本来在10MHz的时钟频率下发生了一个基带信号,然后对信号上采样4倍变成40MHz。但现在我想直接在40MHz的时钟频率下发生信号,我要怎么做呢。咱们能够在40MHz的时钟频率下发生一个占空比为1:3的10MHz的时钟使能信号,在40MHz的时钟频率,10MHz的时钟使能信号效果下,能够直接发生4倍内插后40MHz速率的基带信号。

FPGA在代码完成方面的小技巧

 40MHz时钟频率下的一个使能信号需求转化到10MHz的时钟频率下去怎么办。这个时分咱们要使用一个异步FIFO来做跨时钟域转化。写时钟为40MHz,写为1bit,读时钟为10MHz,每次读4bit,然后对这4bit做或运算,得到在10MHz下的一个使能信号。顶层操控必定要用状态机,状态机逻辑清楚,十分有用。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/moni/99469.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部