
FPGA学习
文章平均质量分 75
ywhfdl
少壮不努力,长大做IT!
展开
-
quartus FFT IP核使用
想必学过信号的同学都知道“时域”和“频域”是信号的基本性质,也是分析信号的两个重要方式。(注:本文指的信号均为一维信号,二维信号一般泛指图像信号)信号的时域信息,即我们使用示波器采集信号时,在示波器界面上显示的信号的波形。但信号的频域信息往往隐藏其中,我们不能直接观察信号的频域信息。此时我们需要采集一段时域信号,并对其做傅里叶变换即可得到信号的频域数据。因此接下来,一休哥将带领大家来学习FFT IP核的使用。本文将分四个小部分来展开介绍:1、回顾信号处理相关知识2、FFT IP核的配置3、FFT转载 2021-09-14 12:05:43 · 7005 阅读 · 4 评论 -
modelsim中显示正弦波
在一般情况下,我们仅仅需要看到数据的二进制或者十六进制,但是当信号为方波正弦波信号或者为频谱信号时候,在仿真过程中,如果能够显示出波形信号,那么仿真结果将更加直观,由于公司不能上网,所以在家实现该仿真功能,结果如下:第一步:生成sin波形文件(sin.txt)这一步使用matlab完成,matlab中的代码如下:fc=10e6;n=1/fc/256;t=[0:255]*n;x=sin(2*pi*fc*t);xx=fix(128+(2^7-1)*x)...原创 2021-09-13 18:01:53 · 5714 阅读 · 2 评论 -
常用的verilog系统函数 $feof, fscanf,$fopen,$readmemb,$readmemh,$fdisplay,$display,$fclose,函数的使用
一般常用到的系统函数有几个:$readmemb,$readmemh,$display,$fmonitor,$fwrite,$fopen,$fclose等fscanf函数: $fscanf(文件指针,读取格式,数组)注意:该系统函数每次读取文件中的每一行数据,这当中需要特别注意一点,每一行只能是同一种数据格式,例如:0011_0001,如果出现0b0011_0001,则无法正常的读取。文件指针:指向某一文件的开头,举个栗子,f_r = $fopen(‘xxx.txt’, ‘r’),文件指针f..原创 2021-09-13 17:51:06 · 3510 阅读 · 0 评论 -
深入分析 verilog 阻塞和非阻塞赋值
1、学verilog 一个月了,在开发板上面写了很多代码,但是始终对一些问题理解的不够透彻,这里我们来写几个例子仿真出阻塞和非阻塞的区别,我们先上代码 module LED ( CLK, RSTn, scan, flag , c, ,one,two,three,four); input CLK;原创 2012-04-24 22:13:04 · 16547 阅读 · 0 评论 -
modelsim-altera 6.5b 破解和仿真应用
下载破解工具把新的license.txt放到D:\altera\91\modelsim_ae里(具体路径按你自己安装的为准)右击我的电脑,添加环境变量LM_LICENSE_FILEMGLS_LICENSE_FILE变量值均为 D:\altera\91\modelsim_ae\LICENSE.txt一般的说明,只是说要添加LM_LICENSE_FILE,但是,添加MGLS_LIC原创 2012-04-16 00:27:41 · 4912 阅读 · 1 评论 -
modelsim和quartus 联合调试
下面是基于在Altera Quartus II 下如何调用M odelS im 进行仿真的一个实例。 本来想和上一张 modesin 破解应用一起讲解,但是我在写的时候发现太多了,为了清楚明了,我就单独出了一篇。 Quartus II 9.1,modesim 版本为modesim 6.5a,Quartus无法像ISE 那样方便的直接调用ModelSim,而是需要额外的做一些原创 2012-04-16 22:07:26 · 9926 阅读 · 1 评论 -
FPGA 按键防抖动,最精简的写法只有10行
最近学了FPGA 一段时间,想自己做个真实的东西,笔者也是务实求真的人,呵呵。首先就选择了一个数字钟,当我昨晚了计数器模块,做按键校准的时候,就发现按键抖动的很厉害,没有C 语言做防抖动那么简单,因此我参考了网上很多博主的观点,总结了自己认为最简单,最精简的一个写法,如下: 进程模块内代码只有10行。哈哈 reg key_reg1,key_reg2,key_out; always @原创 2012-05-10 00:52:34 · 9995 阅读 · 7 评论 -
FPGA 学习一句话备忘录
学FPGA 1个月有余了,本人有一下体会,现每一个总结一句话如下:1、代码要规范。 verilog 跟C 一样,都要有良好的 Coding Standard(编程规范)。该换行的换行,改对齐的对齐, 本人推荐一个代码编辑工具是 notepd++,支持很多种语言,无需安装语言包,安装包也很小,在几M,2、习惯英文 为什么这么说呢,原因有2,原创 2012-06-02 23:39:00 · 2240 阅读 · 1 评论 -
QII中的几个Warning的解决方法
前几天看网上一个人说在仿经典基础程序按键消抖实验的时候0 error、0 warning,正好我也在仿这个实验,就想说看看我能不能也出现这样爽的结果,没想到最后出了6个warning,于是施展搜索大法,力争把几个warning消灭掉!1.Warning: An incorrect timescale is selected for the Verilog Output (.VO) file原创 2012-06-02 21:43:57 · 9612 阅读 · 2 评论 -
FPGA verilog 实现的1602 时钟计数器
熬夜到了1点了,终于写出了1602的时钟计数器代码。为什么是时钟计数器呢?因为我还没来得及做校准时间,所以只能称之为时钟计数器,不能成为电子钟。网上很少用人公开这一类代码,一搜FPGA 1602,都是写一个静态的显示,在实际应用中,是没有用的,因此这个简单的例子,给大家抛砖引玉了! 上代码: Qii 9.0编译过,21EDA 开发板测试OK module LCD原创 2012-05-17 00:54:40 · 6677 阅读 · 3 评论 -
xilinx Spartan 6 FPGA 配置 SPI Flash 芯片
打开 iMPACT 1、双击 Boundary Scan2、在 右边的 空间区域 右键单击 已经找到了FPGA 芯片,但并未找到 Flash 芯片。选 NO 不配置 bit 文件至 FPGA , 当前配置为 下载 bit 流至 FGPA的对话窗。 要下载配置文件至 Flash芯片,必须先准备相应的文件。即 把 bit流 文件转为 Flash 芯片可以原创 2012-06-05 09:14:51 · 21924 阅读 · 5 评论 -
FPGA驱动LCD1602实现万年历
接着我的上一篇博文,终于完善好了,前几天太忙了,没有及时上传,呵呵,今天晚上刚比较早刚好凌晨,及时上传一下,实现了从0000---9999年的时钟,其实万年历和十万年历,都是差不多,等到地球能转到9999年再改代码也不迟,哈哈!!我这里有顶层和底层文件,顶层主要是调用模块和做按键处理,具体按键防抖动原理,参见偶的以前的博文,我写完这个万年历的代码,还没来得及优化,占用了太多了逻辑门,可以进一步原创 2012-05-23 00:07:16 · 5155 阅读 · 2 评论 -
verilog 语言实现任意分频
分频器是指使输出信号频率为输入信号频率整数分之一的电子电路。在许多电子设备中如电子钟、频率合成器等,需要各种不同频率的信号协同工作,常用的方法是以稳定度高的晶体振荡器为主振源,通过变换得到所需要的各种频率成分,分频器是一种主要变换手段。早期的分频器多为正弦分频器,随着数字集成电路的发展,脉冲分频器(又称数字分频器)逐渐取代了正弦分频器。下面以Verilog HDL 语言为基础介绍占空比为50%的分原创 2012-06-07 11:29:23 · 53594 阅读 · 3 评论 -
DSP( TMS320CC6455)和Xilinx FPGA (spartan6 100T)
最近在研发一个图像识别系统,大致要求就是FPGA 实现图像数据的采集,然后DSP 进行图像的预处理,然后通过FPGA 的USB传送到PC。 首先选型。对于FPGA 选了 spartan6 系列的100T ,带高速收发器,这个收发器主要是用来DSP和FPGA 互相交互数据,这种接口类似PCIE,这种高速口,可达到上Gbit的速度,当芯片高端了以后,时钟也上去了,选用了差分时钟,频率为原创 2011-09-10 23:34:33 · 5564 阅读 · 1 评论 -
verilog的1602动态显示
在开始,我只想先出出气,他奶奶的!! 接下来,我说下我写这个代码的目的,在网上对于verilog 的1602代码,都只是写一串字符进去,有个鸟用啊!!我们用1602是为了看那几个字符吗??如果是,那么下文你就不用看了,我想应该不是,我们是为了借助这个液晶,显示更多的东西,把芯片内部的一些调试信息,或则是所需要显示的状态及时拿出来给我们看,这个才是目的,显示器,就是为了获取当前的数据,因原创 2012-04-04 23:03:28 · 7843 阅读 · 10 评论 -
fpga的EPCS 配置的2种方法(图文讲解,哈哈,网上互相抄袭的一些文字说明太不明了了)
这里要讲的第一种,是常见的AS方法: 首先就是编译好一个文件以后,就会自动生成.POF和.SOF 的文件,SOF 当然就是给FPGA SRAM 调试用的,POF 就是给AS 下载用的,打开我们的下载对话框,选择下载模式提示一些器件会丢失,因为我们常用的JTAG 模式下面的器件会找不到,因此我们直接确定接下来我们就天剑POF 文件选中 编程,校验,就可以点原创 2012-04-08 01:00:17 · 10625 阅读 · 1 评论 -
ModelSim ALTERA 6.5b 下载安装以及使用
�BC�是nb版,需要破解,此处我安装9.1sp1 的modelsim_ae_windown��进迅雷,快速且可以断点续传。根据网友牙缝的说法:ase是altera start edition,是入门版,freeae是altera edition,是nb版,需要破解,此处我安装9.1sp1 的modelsim_ae_windowns,破解我找到了会上传一、傻瓜式安装原创 2012-02-08 22:56:04 · 2167 阅读 · 0 评论 -
创造平台——Quartus II 11.0 套件安装指南
一、Altera Quartus II 11.0套件介绍所谓巧妇难为无米之炊,再强的软硬件功底,再多的思维创造力,没有软件的平台,也只是徒劳。因此,一切创造的平台——Quartus II 软件安装,由零开启的世界,便从此开始。自从2009年开始接触FPGA,Quartus II 版本的软件从n年前的5.1版本到今天的最新发布的11.0,都使用过;当然对于软件核心构架而言,万变不离其宗。原创 2012-02-08 22:54:20 · 2622 阅读 · 1 评论 -
FPGA实现任意分频 为所欲为——教你什么才是真正的任意分频
一、为啥要说任意分频也许FPGA中的第一个实验应该是分频实验,而不是流水灯,或者LCD1602的"Hello World"显示,因为分频的思想在FPGA中极为重要。当初安排流水灯,只是为了能让大家看到效果,来激发您的兴趣(MCU的学习也是如此)。在大部分的教科书中,都会提到如何分频,包括奇数分频,偶数分频,小数分频等。有些教科书中也会讲到任意分频(半分频,任意分数分频)原理,用的是相位与的原创 2012-02-08 23:18:22 · 27099 阅读 · 4 评论 -
ModelSim ALTERA 6.5b 下载安装以及使用
下载地址ftp://ftp.altera.com/outgoing/release/,拖进迅雷,快速且可以断点续传。根据网友牙缝的说法:ase是altera start edition,是入门版,freeae是altera edition,是nb版,需要破解,此处我安装9.1sp1 的modelsim_ae_windowns,破解我找到了会上传一、傻瓜式安装不需要解释,原创 2012-02-11 19:12:24 · 3967 阅读 · 0 评论 -
如何在Quartus II 11.0中调用ModelSim-Altera 6.5e
1 Altera官网下载两款软件并安装 下载网址:https://www.altera.com/download/software/modelsim/zh_cn,选择Quartus II 网络版、ModelSim-Altera入门版。目前这两款软件都是免费的,不需要许可证,安装简单,使用期限是30天。 【注意】务必记住安装的路径,特别是ModelSim-Al转载 2012-02-12 16:17:10 · 7032 阅读 · 0 评论 -
altera 设计--仿真--下载
说明本文的部分章节,来源于本人翻译的Terasic DE2-115的英文入门文档。 平台硬件:艾米电子EP2C8-2010增强版套件软件:Quartus II 10.0 + ModelSim-Altera 6.5e (Quartus II 10.0) Starter Edition 内容典型的CAD流程 开始 新建工程 录入Verilog设计 编译设计 引脚分配转载 2012-02-12 17:37:41 · 3186 阅读 · 0 评论 -
NiosII软处理器快速入门- 10分钟学会NiosII
Nios简单介绍: Nios II是一个用户可配置的通用RISC嵌入式处理器。在这儿,我引用了Altera公司关于NiosII的官方介绍: Altera推出的Nios? II系列嵌入式处理器扩展了目前世界上最流行的软核嵌入式处理器的性能,把Nios II嵌入到Altera的所有FPGA中,例如StratixII、Stratix、CycloneII,Cyclone转载 2012-02-14 17:03:45 · 2813 阅读 · 0 评论 -
最简单的FPGA verilog写的 PWM 例子
我在网上看到好多人些的PMW 都是altera 官方的一个例子炒来炒去的,因此我自己写了一个例子,供大家参考,直接在LED上看到现象的!!module pwm(clk,leda);input clk;//clk=50M=50 000 000output leda; //ledreg [15:0] pwm,count;//PMW脉宽计数,周期计数reg leda;原创 2012-02-20 00:36:36 · 24977 阅读 · 2 评论 -
NIOS II 流水灯
第一个NIOS工程,流水灯!我使用的9.0本版的。1、建立一个流水灯工程,如下图:Next选择器件,再Finish。我的开发板上是Cyclone II系列EP2C8,大家按自己的实际选择器件。2、打开SOPC Builder,配置NIOS硬件,如下图:CPU配置经济型的就OK了添加on-chip menory ROM 改名为progam,RAM改名为data再添加原创 2012-03-03 18:02:20 · 2979 阅读 · 2 评论 -
Testbench代码设计技巧
" There are many ways " to code a test case, it all depens on the creativity ot the Testbench designer.Testbench代码设计技巧 11. Clock logic设计技巧 12. Asynchronous reset设计技巧 13. System task之打印数据 24.原创 2012-03-26 00:05:40 · 2053 阅读 · 0 评论 -
verilog 层次化设计语言调用的问题终于知道了
这几天一直在学verilog ,但是我不想始终在一个文件里面写代码,就像写单片机驱动代码一样,很多人都是一个.c文件,偶是有目标,有追求的人,哈哈,我也要写很多个.v文件互相调用,但是我在网上找了好多,都没有这方面的介绍,可能是这个问题太基础了,或则是我太笨了,都不管了,我记下来,作为初学脚步。 我写的很简单,就是点亮LED,但是我是通过2个.v文件实现,下面具体讲解步骤,对于原创 2012-03-31 23:12:06 · 17300 阅读 · 9 评论 -
1602LCD主要技术参数
1602LCD主要技术参数:显示容量:16×2个字符芯片工作电压:4.5—5.5V工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V字符尺寸:2.95×4.35(W×H)mm引脚功能说明1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表10-13所示:编号符号引脚说明编号翻译 2012-04-03 21:33:08 · 29130 阅读 · 0 评论 -
verilog 写的1602动态计数器(完善过)
由于前面一个帖子的代码有点瑕疵,这个完善了一点,我吧第二行的第一个作为个位数,第一行的第一位作为十位数,按照01--99进行计数。哈哈,动态刷新哦!!网上太难找到这样的例子了!本人刚学会就贡献给大家,作为初学。请抛砖module LCD ( rst, key1, clk, rw, rs, en, data, ); input clk,原创 2012-04-06 23:38:21 · 2729 阅读 · 11 评论 -
关于Quartus II 和Modelsim远程登录的问题
从Quartus II6.1 到7.1似乎没有什么变化,安装完软件,破解软件,再安装ip核,再安装Nios II,一套下来至少得安个把小时吧。但是即使费了很大劲把所有软件都装好了,quartus的license却适应不了远程登录的操作,屡屡出错。 Quartus 8.1诞生了,集成了ip核,但是很不幸,Quartus 8.1需要买USB Install Guard才能支持远程。费了半天劲弄来的最新原创 2012-02-08 18:34:09 · 2929 阅读 · 0 评论