FPGA项目设计
一些入门级的项目设计
fpga入门选手
这个作者很懒,什么都没留下…
展开
-
matlab与FPGA交互
clcclear allf1=1*10^6;fs=50*10^6;L=2000;t=0:L-1;t=t/fs;da=sin(2*pi*f1*t);da=floor(da*127);N=8;fid=fopen('d:\m\data.txt','w');fid1=fopen('d:\m\data1.txt','w');fid2=fopen('d:\m\data2.txt','w');fid3=fopen('d:\m\data3.txt','w');for i=1:4:length原创 2022-04-30 20:51:10 · 736 阅读 · 0 评论 -
matlab与FPGA的交互程序
1.比如现在我要在matlab上产生一个信号用于FPGA的仿真输入,所以需要将这个信号写到txt文本中去。代码如下clcclear allf1=1*10^6;fs=50*10^6;L=2000;t=0:L-1;t=t/fs;da=sin(2*pi*f1*t);da=floor(da*127); //量化8bitN=8;fid=fopen('d:\data.txt','w');for i=1:length(da) da1=dec2bin(da(i)+(da(i)<原创 2021-12-20 21:41:41 · 2283 阅读 · 0 评论 -
(三)分频器电路设计
分频是fpga设计中经常会遇到的问题,通常如果我们要得到指定的频率的时钟,通过一个计数器就能搞定。比如我的系统时钟为50m,我需要得到一个9600hz的时钟,则计数器需要计数到2604后时钟翻转。计算方法是:(系统时钟/指定时钟)/2; 常见的偶数分频和奇数分频怎么实现呢? (1)偶数分频:比较简单,也是通过计数器完成,分频比为N,时钟翻转条件为(N/2)-1。 (2)奇数分频:稍微复杂一些,分两种情况。一种不要求占空比,设置两次翻转条...原创 2021-07-27 20:54:30 · 1538 阅读 · 0 评论 -
(三) 按键消抖电路设计
由于普通物理按键存在反作用弹簧,因此当按下或者松开时均会产生额外的物理抖动,物理抖动便会产生电平的抖动。在按键从按下再到松开的过程中,其电平变化如图2.2.1所示,上为理想波形输出,下为实际波形输出。 图2.2.1 按键抖动因此,对于转变中间过程存在的跳变,我们需要将其去除,一般来说,噪声仅存在与一段时间内,如20ms。当检测到跳变沿后的开始进行计时,在计数时间内如果出现跳变则重新开始及时,知道在一定时间内没有检测到跳变沿为止 ,则认为键入的数据已经达到稳定的状...原创 2021-07-12 17:32:17 · 2791 阅读 · 0 评论 -
(二)脉冲信号检测
要求:检测连续(连续的意思是间隔不超过150us到230us)两个80us~120us的方波信号方法:利用上一文的边沿检测方法,当检测到满足条件的脉冲时产生一个标志信号,最后再计算他们的间隔是否满足。1.检测模块代码如下:module hyjc( input clk, input clk_3m125, //3.125mhz input data, input rstn, output reg dout_fl原创 2021-07-12 17:15:13 · 5357 阅读 · 0 评论 -
(一)边沿检测
有时候我们会遇到需要我们检测信号上升沿和下降沿的问题。检测跳变沿需要将信号经过一级触发器,与原始信号产生时钟差这样就能依据逻辑关系检测出上升沿和下降沿。代码如下:module byjc( input clk, input din, output din_d, output rising, output failing, output double ); reg d1; always@(posedge clk) d1<原创 2021-07-12 09:32:20 · 248 阅读 · 0 评论