定时延时设计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管脚兼容性设计 ...
随机推荐
- (1)Linux文件系统的目录组成
记忆秘诀:BBDEH OPRLM TLSUV 宝贝的恩惠 欧派入联盟 偷了suv,19 目录 英文释义 简写 详解 1 / 根目录 整个文件系统的唯一根目录 2 /bin Binary 普通命 ...
- 教你用VMware Workstation Pro 12 安装XP系统
转 https://jingyan.baidu.com/article/ff42efa9102da3c19e220219.html
- 每天学点node系列-fs文件系统
好的代码像粥一样,都是用时间熬出来的. 概述 文件 I/O 是由简单封装的标准 POSIX 函数提供的. 通过 require('fs') 使用该模块. 所有文件系统操作都具有同步和异步的形式. 异步 ...
- leetcode的Hot100系列--461. 汉明距离
求两个数的二进制位不同的位置,最先想到的就是异或操作, 异或:按位运算,相同为0,不同为1. 比如: a = 6 对应的二进制表示为: 0 0 1 1 1 b = 9 对应的二进制表示为: 0 1 ...
- spring源码深度解析— IOC 之 循环依赖处理
什么是循环依赖 循环依赖其实就是循环引用,也就是两个或则两个以上的bean互相持有对方,最终形成闭环.比如A依赖于B,B依赖于C,C又依赖于A.如下图所示: 注意,这里不是函数的循环调用,是对象的相互 ...
- ConnectionPool实现redis在python中的连接
这篇文章主要介绍了Python与Redis的连接教程,Redis是一个高性能的基于内存的数据库,需要的朋友可以参考下 今天在写zabbix storm job监控脚本的时候用到了python的re ...
- 《Python 3网络爬虫开发实战中文》超清PDF+源代码+书籍软件包
<Python 3网络爬虫开发实战中文>PDF+源代码+书籍软件包 下载: 链接:https://pan.baidu.com/s/18yqCr7i9x_vTazuMPzL23Q 提取码:i ...
- uSID:SRv6新范式
摘要:本文介绍最新的SRv6创新uSID(Micro Segment).uSID兼容既有的SRv6框架,将极大地改变SRv6的设计.实现和部署方式,成为SRv6的新范式. 一.SRv6 101 Seg ...
- HDU5521 Meeting(dijkstra+巧妙建图)
HDU5521 Meeting 题意: 给你n个点,它们组成了m个团,第i个团内有si个点,且每个团内的点互相之间距离为ti,问如果同时从点1和点n出发,最短耗时多少相遇 很明显题目给出的是个无负环的 ...
- 自实现input上传指定文件到服务器
遇到问题,解决问题,记录问题,成长就是一步一步走出来的. 一.添加 input 标签 我的工作中遇到了,需要上传pdf文件到服务器的需求,而且只能上传pdf文件,accept指定了 pdf 类型. & ...