定时延时设计FPGA
以50MHZ时钟为例,进行1秒钟延时,并输出延时使能信号。
首先计算需要多少次计时,MHZ=10的六次方HZ。T=20ns
一秒钟需要计时次数为5的七次方即5000_0000。
然后计算需要几位的寄存器,需要二进制计算器。需要26位寄存器。
//---------方法一(我的写法)-----------------------------------------------
//--------------4999_9999+1=5000_0000----------------------------
reg [:] cnt_1s; //需要26位寄存器来放置4999_9999
always @ (posedge clk or negedge rst_n)
begin
if(!rst_n)
cnt_1s <= 'd0;
else if(cnt_1s < 'd4999_9999) //需要减一
cnt_1s <= cnt_1s + 'b1;
else
cnt_1s <= cnt_1s;
end
wire cnt_done1s = (cnt_1s == 'd4999_9999);
//---------需要加上使能信号的方法----------------------------------
reg [:] cnt_1s; //需要26位寄存器来放置4999_9999
always @ (posedge clk or negedge rst_n)
begin
if(!rst_n)
cnt_1s <= 'd0;
else if (delay_en) //外界使能信号输入,启动计时
begin
if(cnt_1s < 'd4999_9999)
cnt_1s <= cnt_1s + 'b1;
else
cnt_1s <= cnt_1s;
end
end
wire cnt_done1s = (cnt_1s == 'd4999_9999); //---------方法二------------------------------------------------
wire cnt_done1s;
reg [:] cnt_1s;
always @ (posedge clk or negedge rst_n)
begin
if(!rst_n)
cnt_1s <= 'd0;
else if(cnt_1s < 'd4999_9999)
cnt_1s <= cnt_1s + 'b1;
else
cnt_1s <= cnt_1s;
end
assign cnt_done1s = (cnt_1s == 'd4999_9999);
//------------方法三--------------------------------------
Parameter t_one = 4999_9999; //需要减一
reg[:] delay_cnt;
always @(posedge clk or negedge rst_n)
if(!rst_n)
delay_cnt <= 'd0;
if(delay_cnt == t_one)
delay_cnt <= 'd0;
else
delay_cnt <= delay_cnt +'b1;
wire delay_done = (delay_cnt == t_one)
定时延时设计FPGA的更多相关文章
- 使用Intel的FPGA电源设计FPGA 供电的常用反馈电阻阻值
使用Intel的FPGA电源设计FPGA 供电的常用反馈电阻阻值. 当前仅总结使用EN5339芯片的方案 Vout = Ra*0.6/Rb + 0.6 芯片手册推荐Ra取348K,则 3.3V时,取R ...
- 自顶而下设计FPGA
对IC设计而言,FPGA设计层级大致包括:系统级和行为级,RTL级,门级和晶体管级.然而更普遍的情况,FPGA只是用作实时数据采集控制.某些快速处理算法.PCIe\DDR3等高速数据通道,甚至某些简单 ...
- JavaScript setInterval(定时/延时调用函数)
setInterval是一个实现定时调用的函数,可按照指定的周期(以毫秒计)来调用函数或计算表达式.setInterval方法会不停地调用函数,直到 clearInterval被调用或窗口被关闭. 由 ...
- 异步fifo的设计(FPGA)
本文首先对异步 FIFO 设计的重点难点进行分析 最后给出详细代码 一.FIFO简单讲解 FIFO的本质是RAM, 先进先出 重要参数:fifo深度(简单来说就是需要存多少个数据) ...
- FPGA流程设计
做fpga也有四年时间了,该有个总结.刚开始那会,学习东西都是死记硬背,去面试也是直接带着答案去了. 时间久了,才懂得设计一些基本思路. 1. 设计输入: verilog代码和原理图.画原理图都是懒得 ...
- 【转】分享II→IV FPGA本人的几个版本电源模块设计的方案
很多人问我FPGA的电源怎么怎么着,当然也有人瞎忽悠乱设计,当然我的设计也不是很完美...这里把我当年第一次设计FPGA,到现在的电源方案,几个演变.分析的过程,给大家讲讲... (1)FPGA电源方 ...
- 用FPGA设计LCD 转 VGA
这个东西其实是在上一个冬天就做完了,而且似乎已经产业化了,当时是为一位朋友做的,这个朋友再卖给产业化的人,就像流于俗套的故事一样,这个朋友拿到了钱,不过不像项目开始时说的那样与我有关.想想多年前一起吃 ...
- 转载--关于FPGA设计数字信号处理电路的心得
FPGA使用的越来越广泛,除了可用于设计控制电路以为,数字信号处理电路更是FPGA的强项和难点.个人可以说才刚刚入门FPGA设计,也做过一些数字信号处理方面的电路设计,记录下个人心得体会. (一)善用 ...
- 干货分享,FPGA硬件系统的设计技巧
PGA的硬件设计不同于DSP和ARM系统,比较灵活和自由.只要设计好专用管脚的电路,通用I/O的连接可以自己定义.因此,FPGA的电路设计中会有一些特殊的技巧可以参考. 1. FPGA管脚兼容性设计 ...
随机推荐
- appcan 多按钮提示框
使用 appcan.window.alert EG: var btnList=new Array(); btnList[0]="确认"; btnList[1]="取消& ...
- Codeforces Round #567 (Div. 2)A
A. Chunga-Changa 题目链接:http://codeforces.com/contest/1181/problem/A 题目 Soon after the Chunga-Changa i ...
- C++ hdu 例题:不要62 题解
例题:不要62 同步数位DP 需要统计区间[l,r]的满足题意的数的个数,这往往可以转换成求[0,r]-[0,l) 基本思想与方法 有了上述性质,我们就可以从高到低枚举第一次<n对应位是哪一位. ...
- 2018.11.2 2018NOIP冲刺之最短公共父串
很有意思的一个题 试题描述 给定字符串A和字符串B,要求找一个最短的字符串,使得字符串A和B均是它的子序列. 输入 输入包含两行,每行一个字符串,分别表示字符串A和字符串B.(串的长度不超过30) 输 ...
- HDU 6060:RXD and dividing(DFS)
题目链接 题意 给出n个点,要把除1以外的点分成k个集合,然后对于每个集合要和1这个点一起求一个最小生成树,然后问这k个最小生成树的最大总和是多少. 思路 因为每个集合都包含1这个点,因此对于每个点都 ...
- BZOJ 3289:Mato的文件管理(莫队算法+树状数组)
http://www.lydsy.com/JudgeOnline/problem.php?id=3289 题意:…… 思路:求交换次数即求逆序对数.确定了这个之后,先离散化数组.然后在后面插入元素的话 ...
- NEST 6.X升级到7.X
升级比对可访问 NEST 6.X升级到7.X 查看 ElasticClient-CreateIndex 升级前代码,NEST版本6.6.0 ICreateIndexResponse response ...
- Flink会话窗口测试
Flink会话窗口测试 一.测试结论: 1.会话窗口的间隔时间和水位线作用一样,表示输出现在时间 - 间隔时间之前所有未结算时间的数据,作用类似于水位线,但是和水位线开闭不一样. 2.会话窗口显示的数 ...
- leetcode笔记 动态规划在字符串匹配中的应用
目录 leetcode笔记 动态规划在字符串匹配中的应用 0 参考文献 1. [10. Regular Expression Matching] 1.1 题目 1.2 思路 && 解题 ...
- C# 中的委托和事件本质讲解
C# 中的委托和事件 文中代码在VS2005下通过,由于VS2003(.Net Framework 1.1)不支持隐式的委托变量,所以如果在一个接受委托类型的位置直接赋予方法名,在VS2003下会报错 ...