随笔分类 - FPGA
摘要:2018电赛程序实现 电流信号检测装置 把程序主要分为三个部分,第一个部分是vga显示,第二个部分是ad7106的驱动程序,第三个部分是fft程序 vga显示 vga显示这部分是我队友写的,主要功能显示输入信号的频谱和正弦信号的频率,非正弦信号的谐波幅值,其实这个频谱是经过处理之后显示的,如果输入的
阅读全文
摘要:笔记 1、vivado hls是fpga高级综合工具,可以将C语言转换成verilog代码,适合编写算法,但是要有硬件思想。 2、软核就是只要资源足够,就可以用逻辑打一个CPU出来,与硬核不一样,硬核是FPGA本身就嵌入了一个CPU硬件结构,而HLS是高级综合工具,只是 将C语言转换成verilog
阅读全文
摘要:操作的大体流程:1、TimeQuest Timing Analysis 2、打开下方的Analyzer 3、创建一个网表 4、创建约束(时钟 and PLL) 5、写入SDC文件 6、综合分析、布局布线、时序分析 7、report timing 选择要看在哪个时钟下的数据或者某个寄存器到另一个寄存器
阅读全文
摘要:因为在普通的fpga芯片里面,寄存器只可以表示无符号型,不可以表示小数,所以在计算比较精确的数值时,就需要做一些处理,不过在altera在Arria 10 中增加了硬核浮点DSP模块,这样更加适合硬件加速和做一些比较精确的计算。 浮点数和定点数的区别:定点数的小数点是固定的,而浮点数的小数点的位置不
阅读全文
摘要:题记:这个笔记不是特权同学自己整理的,特权同学只是对这个笔记做了一下完善,也忘了是从那DOWNLOAD来的,首先对整理者表示感谢。这些知识点确实都很实用,这些设计思想或者也可以说是经验吧,是很值得每一个有志于FPGA/CPLD方面发展的工程师学习的。 1、硬件设计基本原则 (1)、速度与面积平衡和互
阅读全文
摘要:1、计数,用于对精度不高的计数 2、检测边沿 3、声明的不同最好在注释上面体现出来,而不是在变量名 4、组合数据,少使用了寄存器资源 。。。。待续
阅读全文
摘要:平时接触到的复位有三种,分别是同步复位、异步复位还有异步复位同步释放 ·1、同步复位 同步复位里,复位做为使能信号,就不存在因为不满足建立时间而产生的亚稳态,但是如果复位信号有效 周期小于一个时钟周期的话,会出现复位信号采样不到的问题。 2、异步复位 异步复位比同步复位节省资源,但是如果异步复位结束
阅读全文
摘要:这篇文章主要介绍一下verilog读ov7670的出厂序列号 读时序共分为五个部分 首先发送start,然后发送OV7670的器件地址,ov6070的ID是0x42,0x42+一位响应位 发送ov7670的寄存器地址,这里可以读取它的厂商识别号 ,比如1c 发送八位寄存器+接受一位响应位 ov767
阅读全文
摘要:1、组合逻辑的竞争冒险 组合逻辑:任何时刻电路的稳定输出,仅仅取决于该时刻各个输入变量的取值。 组合逻辑的竞争冒险:当输入信号同事变化时,组合逻辑必然产生毛刺。 解决方法:用时序逻辑,每次寄存器的输出结果取决于上一个时钟的寄存器的值,不会产生毛刺。 2、寄存器reg可以用在时序逻辑也可以用在组合逻辑
阅读全文
摘要:芯片手册要求sdram需要在64ms内刷新8K次,否则里面的数据会丢失,因此在64ms分成8192次,每次刷新充一次电,然后给两次自动刷新命令即可。 最重要的时仲裁模块,它负责各个模块之间的协调,模块之间控制有三个信号,分别是请求信号requst ,使能信号en ,还有结束标志信号flag_end
阅读全文
摘要:跟着开源骚客的教程写的sdram程序,前后调了大约5天,今天晚上能实现简单的读写数据了,如果以后用到摄像头,再在这个基础上加些功能吧。 整个程序框架就如图品所示,一共有五个模块还有初始化模块,图片上没有显示呢。 初始化模块 初始化模块 1上电 2 等待200us 3 给所有bank充电 4 八次自刷
阅读全文
摘要:今天尝试了一下8051核,刚开始用得是原理图方式画的,但是把程序下载进去之后,就是没有反应。后来看了小梅哥的教程之后,跟着教程把所有文件倒弄了一边之后,也非了不少事。 需要注意的点第一是有些文件带着下划线,但是模块名字上面没有,需要把文件名字给删除了。第二点就是在例化ram和rom的情况下,需要把他
阅读全文
摘要:FIR滤波器,即有限脉冲响应滤波器,指单位脉冲响应h(n)是有限长的。滤波器的输出y(n)可表示为输入序列x(n)与单位脉冲响应h(n) 的线性卷积。通过公式可以看出,每一个滤波器的输出需要M个乘法器和M- 1个加法器,由于滤波器的 系数h(n)具有对称性,这样又可以减少一部分的运算量。
阅读全文
摘要:fft测频模块是整个工程的最后一个模块,该模块实现了频率和幅值的测量,先说一下缩放因子source_exp(有符号).我看网上的 资料说如果缩放因子是负数则左移相应的位数,如果是整数则右移相应位数,实际测试发现缩放因子基本上围绕着固定的两个数变化, 而实际的幅值跟fft变换出来的数据和缩放因子成线性
阅读全文
摘要:这是第三个部分,该模块实现了对fft ip核数据的控制,source_valid是fft的数据有效标志位,当数据有效时,开始往ram里 写数据,但是写数据之前需要对原始数据处理一下,通过实际下班运行发现,FFT变化那之后存在直流分量,可以把开始 数据舍去,方便以后数据的运算。
阅读全文
摘要:fifo的控制属于本程序的第二大块,因为采样速率和fft的写速率不一致,所以需要加一个异步FIFO来做缓冲,采用了一个状态机来实现 FIFO的读写,状态机的第一个状态实现写FIFO,第二个状态来读fifo,这样实现了数据的缓冲,并且在合适的位置给fft开始包和结束包。
阅读全文
摘要:调用quartus的ip核测量频率和幅值,可以把程序分成四大部分。第一部分是AD采样模块,本次实验用的是ad828,最高采样率为70M, 根据奈贵斯特采样定律 Fs > 2Fc,即采样率要大于信号最高频率的两倍,如果要求信号的频率,需要知道频率所对应的地址和频率分 变率F。而F = Fs/N,所以只
阅读全文
摘要:最近搞fft,用的quartus13.1版本,发现quartus和modelism存在各种各样的坑啊,fftIP核大家可能也遇到过ip核 生成到一半就卡住的问题,之前我是通过换系统解决的,但是好景不长,windos自己补了几个补丁之后,IP核又 没法用了,其实还有一种方法,就是再fft生成的过程,打
阅读全文
摘要:任意分频的方法从网上看了有不少东西,主要有奇数分频,偶数分频,再就是任意分频。 1、先说一下任意分频,任意分频的方法类似于DDS的产生方法,Fo/Fclk = fword / 2^N; N为计数器位宽,位宽越大,计数器越精确, 如果产生1_000_010Hz频率的信号,假设位宽是32位,时钟是50M
阅读全文
摘要:1、7月24日上午 今天调试示波器,通过外部触发存储波形,原理其实很简单,就是把vga有效区域内的数据存储到ram当中,然后当按键触发时再把数据掉出来, 但是奇怪的是,vga存储的波形只有最后六分之一的波形,搞了一上午,最后才发现在ram生成IP的过成中,手残,读写地址线是5位宽,忘记改了,、 所以
阅读全文

浙公网安备 33010602011771号