原理介绍 1.分频 FPGA设计中时钟分频是重要的基础知识,对于分频通常是利用计数器来实现想要的时钟频率,由此可知分频后的频率周期更大.一般而言实现偶数系数的分频在程序设计上较为容易,而奇数分频则相对复杂一些,小数分频则更难一些. 1)偶分频系数=时钟输入频率/时钟输出频率=50MHz/5MHz=10,则计数器在输入时钟的上升沿或者下降沿从0~(10-1)计数,而输出时钟在计数到4和9时翻转. 2)奇分频系数=50MHz/10MHz=5,则两个计数器分别在输入时钟的上升沿和下降沿从0~ (5-1…
项目简介 本项目基于Altera公司的Cyclone IV型芯片,利用NIOS II软核,2-port RAM与时序控制模块,实现64*48分辨率的显存(再大的显存板载资源m9k不够用) 实现效果如下: VGA时序控制模块 VGA时序简介 网络上针对VGA时序的讲解已经非常多了,简单的理解,VGA主要有H_sync和V_sync这两个坐标同步信号,与RGB这三个色彩信号.当H_sync与V_sync达到特定的值的时候,对应一个特别的坐标(x,y)上的颜色为RGB.VGA上的RGB信号是模拟信号,…
本文先总结不同AXI IP核的实现的方法,性能的对比,性能差异的分析,可能改进的方面.使用的硬件平台是Zedboard. 不同的AXI总线卷积加速模块的概况 这次实现并逐渐优化了三个版本的卷积加速模块,先简要描述各个版本的主要内容. 版本一 版本一主要是用来测试AXI总线IP核的实现可能. 该模块拥有19个32位寄存器 其中前9个寄存器用来保存需要计算的值 后面9个寄存器用来保存卷积核 在读取第19个寄存器的地址的时候计算9个寄存器的卷积和(该计算可以在一个时钟周期内完成) 9个寄存器单独赋值,…
上篇博客 循序渐进做项目系列(1):最简单的C/S程序——让服务器来做加法 实现了一个最简单的C/S程序,即让服务器来做加法.当时为了通俗易懂采用了消息异步调用的方式.今天我们要采用消息同步调用的方式来实现,并且对比一下两种方式的优劣.通过这个实例也能让对于“同步调用异步调用”不甚了了的朋友们对于这一对概念有一个初步直观的认识. 究竟什么是消息同步调用什么是消息异步调用呢? 一·消息异步调用 对于这个问题我们先不急于从原理上回答,先来看下上一次客户端向服务端发送消息的代码. private vo…
用过一些日历软件的小伙伴应该都知道它们都实现了在时钟窗口上的Hook,也就是屏蔽了系统原有的功能,实现自己的功能 某日历软件Hook时钟窗口后的效果 经过一番研究,发现原理其实很简单,就是注入DLL到时钟窗口进程(explorer.exe),然后接管窗口处理过程实现自己的功能 第一步是判断当前操作系统架构,是x86还是x64,你别指望一个x64的explorer.exe会加载你x86的DLL 第二步就是查找时钟窗口的进程(explorer.exe) 然后根据系统架构的不同注入不同架构的DLL,至…
FPGA图像处理之行缓存(linebuffer)的设计一 作者:OpenS_Lee 1 背景知识 在FPGA数字图像处理中,行缓存的使用非常频繁,例如我们需要图像矩阵操作的时候就需要进行缓存,例如图像的均值滤波,中值滤波,高斯滤波以及sobel边缘查找等都需要行缓存设计.这里的重要性就不在赘述. 2 FPGA实现 图1 行缓存菊花链结构 如图1所示,我们要设计n行同时输出,就串联n行.Line_buffer的大小设置由图像显示行的大小(图像宽度)决定.例如480*272 (480). 2.1 设…
为了突出重点,仅对I/O数据流为steaming的情况作简要说明,以便快速上手,有关FFT ip核模型及每种设置详细介绍请参考官方手册FFT MegaCore Function User Guide. 1 配置 在FFT Megacore Function中选择"parameterize",弹出对话框. "Parameters"栏中,选择器件.转换数据的长度.数据精度已经旋转因子的精度.注意旋转因子精度必须小于等于数据精度. "Architecture&q…
一.Shell基础应用 目标: 本案例要求熟悉Linux Shell环境的特点,主要练习以下操作: 1> 切换用户的Shell环境       2> 练习命令历史.命令别名       3> 重定向标准输入/输出/错误输出       4> 管道操作实践 步骤: 步骤一:切换用户的Shell环境 若需要临时使用另一种Shell环境,可以直接执行对应的Shell解释器程序,比如只要执行ksh可以切换到ksh命令行环境. [root@svr5 ~]# yum -y install ks…
项目当中需要正弦信号与余弦信号,首先想到了DDS芯片,例如AD9833.AD9834.由于还需要用FPGA   做一些数据处理,后来干脆直接用FPGA 内部的DDSIP核,同时根据IP核内部的相位累加端口,设置触发信号,使得触发信号更加准时,并且通过PSD 算法计算有效值,相位差更小,精度更高. 首先了解DDS的原理: 1. DDS技术是根据奈奎斯特取样定律,从连续信号的相位出发,将正弦信号取样,编码,量化,形成一个正弦函数表,存在EPROM中,合成时,通过改变相位累加器的频率字来改变相位增量,…
还在使用FPGA开发环境自带的代码编辑器?还在逐个字母敲击冗长重复的代码?明德扬至简设计法让你快速提高代码编写效率!利用GVIM这一高效的编辑工具并添加自定义模板,通过简短的脚本命令即可自动生成所有常用的逻辑块. 先来说说WIN系统下VIVADO和quartusII绑定GVIM作为默认代码编辑器的方法: 1 VIVADO:IDE上方主菜单栏Tools ->Options ,选择General项,点击Text Editor右侧"..."按钮.在弹出的Custom Editor De…