FPGA verilog
你来吻
能够使用VC和CBC VS2005编辑软件,能够使用CCS开发DSP。能够使用PB编写wince 驱动,能够使用ADS。
有一个漂亮的媳妇和一个可爱的女儿。
就这么简单。
每天要看一篇旧的日志,每天睡前要想想今天做了什么。明天的简单计划是什么?
展开
-
在写一个FPGA的串口通讯问题
最近在弄一个工程用16位串口通讯,结果在2个FPGA板之间测试通讯一切正常,如A板发出100,B板接收后加1 变为101 返回给A A在+1 变为1-2 给B.....模块测试过程一切正常,然后添加到带AD -SDRAM 的整个工程中以后就不在好用了,调试了半天就是数据丢失和不正确,也没发现问题所在波特率用500K~9600效果是一样的,后来用逻辑分析发现输出端在输出一切正常,接收端在接收数据后原创 2013-01-19 20:13:19 · 2205 阅读 · 1 评论 -
FPGA点滴三
1.verilog是一种宽松的语言,使用起来比较方便,但是也造成很多bug,不容易察觉的bug,比较典型就是不同位宽赋值inout [7:0] isa_data;assign isa_data = (!isa_ior)? isa_data_out:1'bz; 这种笔误屡见不鲜,应该是assign isa_data = (!isa_ior)? isa_data_out:8'bz转载 2012-08-16 20:47:53 · 1621 阅读 · 0 评论 -
FPGA点滴之四----三态
从遇到的一个问题展开:ARM控制器通过LocalBus总线和FPGA相连,加电后启动过程被中断,死机。尝试Linux启动完成后给FPGA上电,结果提示eth0 link down后死机。从现象基本可以断定FPGA管脚影响了ARM的总线。修改FPAG信号从三态变为输入,问题解决。联想到多年前遇到的一个现象,ARM未使用的管脚(但是引出来了)没有配置内部上拉,导致运行速度极慢。 最后转载 2012-08-16 20:44:01 · 1202 阅读 · 0 评论 -
FPGA静态时序分析——IO口时序(Input Delay /output Delay)
原文地址:点击打开链接1.1 概述 在高速系统中FPGA时序约束不止包括内部时钟约束,还应包括完整的IO时序约束和时序例外约束才能实现PCB板级的时序收敛。因此,FPGA时序约束中IO口时序约束也是一个重点。只有约束正确才能在高速情况下保证FPGA和外部器件通信正确。1.2 FPGA整体概念 由于IO口时序约束分析是针对于电路板整个系统进行时序分析,所以FP转载 2012-08-18 20:36:18 · 10190 阅读 · 0 评论 -
LATTICE FPGA IO 约束设置 初探
最近在边学边开发一个LATTICE FPGA 项目,需要使用时序约束。发现 关于LATTICE FPGA IO接口的时序约束资料太少了,弄了好久才弄出点眉目这里先抛砖引玉希望能有高手给指点指点。首先请大家先看一下Altera FPGA 的时序约束分析 http://blog.csdn.net/zmq5411/article/details/7881591我们会发现由Altera的无论I原创 2012-08-18 22:18:51 · 6748 阅读 · 0 评论 -
极品的C语言错误
今天在测试硬件通信模块时候发现一个奇怪的问题,发送数据和接收数据进行比较复制时候频繁数据错误。 测试流程如下:发送一个字节和接收一个字节,进行比较,当返回数据和发送数据不相等的时候,错误计数器累加。 数据收发抽象如下: uint16 i = 0; uint16 j = 0; uint32 error_num = 0转载 2012-08-15 10:31:33 · 1052 阅读 · 0 评论 -
FPGA静态时序分析模型——寄存器到寄存器
1. 适用范围 本文档理论适用于Actel FPGA并且采用Libero软件进行静态时序分析(寄存器到寄存器)。2. 应用背景 静态时序分析简称STA,它是一种穷尽的分析方法,它按照同步电路设计的要求,根据电路网表的拓扑结构,计算并检查电路中每一个DFF(触发器)的建立和保持时间以及其他基于路径的时延要求是否满足。STA作为FPGA设计的主要验证手段之一,不需要设计者编转载 2012-08-15 09:32:18 · 4896 阅读 · 1 评论 -
modelsim10 SE 仿真lattice Xp2工程
如需转载请注明出处。1、首先要建立Lattice XP2库 在modelsim10 SE启动后、首先指定Lattice Diamond 1.4 给定的仿真器库源代码编译目录: C:\lscc\diamond\1.4\cae_library\simulation\verilog\xp2,选择改变目录然后指定。2、然后选择编译,并设定编译完库名称:在文件原创 2012-07-26 09:59:10 · 2617 阅读 · 0 评论 -
DIAMOND 1.4中使用逻辑分析仪reveal----(1)
在 DIAMOND 1.4中 使用 reveal 首先要设定reveal insert ,然后在重新编译工程下载到FPGA中然后在点reveal analyzer 设置设备JTAG 来源 扫描设备 设置rvl 最后开始运行。1、reveal inserter设置 在TRACE 中添加要查看的数据内容 。在Sample Clock中设置数据采集使用的时钟信号,在BUFFER DEPT原创 2012-07-26 10:31:01 · 5758 阅读 · 0 评论 -
FPGA 使用Active-HDL仿真时出现Cannot access SLP signal `/clk'. Use switch +access +r for this region.
如题# KERNEL: Warning: Cannot access SLP signal `/clk'. Use switch +access +r for this region.解决方法: 如图在读写 添加上 使用 某个信号所在的单元模拟过程即可 clk 咋 modelsimteatdram中.原创 2012-07-20 11:50:58 · 2716 阅读 · 0 评论 -
关于LATTICE的FIFO_DC核
LATTICE的FIFO_DC和定义如下:module FIFO_DC_MOD (Data, WrClock, RdClock, WrEn, RdEn, Reset, RPReset, Q, WCNT, RCNT, Empty, Full);说明: input wire [0:127] Data; 输入数据 input wire WrClock;原创 2012-08-31 16:07:09 · 5812 阅读 · 1 评论 -
verilog中reg和wire类型的区别和用法
reg相当于存储单元,wire相当于物理连线Verilog 中变量的物理数据分为线型和寄存器型。这两种类型的变量在定义时要设置位宽,缺省为1位。变量的每一位可以是0,1,X,Z。其中x代表一个未被预置初始状态的变量或者是由于由两个或多个驱动装置试图将之设定为不同的值而引起的冲突型线型变量。z代表高阻状态或浮空量。线型数据包括wire,wand,wor等几种类型在被一个以上激励源驱动转载 2012-09-06 20:28:38 · 11851 阅读 · 0 评论 -
今天写FPGA 程序时犯的两个极其郁闷的错误
昨晚没睡好今天极困,结果出了2个错误找了近半天,特别写出来以便纪念。1、DIANMOND 太郁闷了写代码时敲错了一个空格应该是半角的结果莫名其妙的迷糊中写啦全角空格。看代码时还看不出来空格。提示错误:@E: CG285 :"C:\DLFIFOSLAVE\FIFOTest\source\FIFOTest.v":335:35:335:35|Expecting statement@E:原创 2013-01-07 15:29:42 · 2208 阅读 · 1 评论 -
FPGA 调试 Expecting digit in radix 2 错误
@E: CG353 :"C:\DLFIFOSLAVE\FIFOTest\source\FIFOTest.v":369:19:369:22|Expecting digit in radix 2@E: CS187 :"C:\DLFIFOSLAVE\FIFOTest\source\FIFOTest.v":453:0:453:8|Expecting endmodule今天写一个FPGA代码时,出现原创 2012-12-27 13:14:40 · 1508 阅读 · 0 评论 -
Verilog的模块与端口 语法
原文地址:http://blog.csdn.net/nkthinker/article/details/4255358模块模块的定义以关键字module开始,模块名、端口列表、端口声明和可选的参数声明必须出现在其他部分的前面,endmodule语句必须为模块的最后一条语句。端口是模块与外部环境交互的通道,只有在模块有端口的情况下才需要有端口列表和端口声明。模块内部的5个组成部分是:转载 2012-10-23 09:53:05 · 1370 阅读 · 0 评论 -
FPGA 调试 问题
最近做一个项目遇到的一些问题:1、SDRAM 通讯SDRAM 通讯模块在以前调试使用过全部正常但是在加入这个工程以后出现如下情况: 工程在加入reveal以后工作正常 ,如果不加入reveal文件SDRAM数据 就有一部分不正确:如:数据是0X34读出是0XF4或0X74等。总是有几位数据不正确。后经分析是SDRAM 模块在加入工程以后不限长度变长使数据总线变长是数据在输出时读取数据时原创 2012-10-31 16:47:00 · 1472 阅读 · 1 评论 -
FIFO 先进先出模块中 理解 verilog 阻塞与非阻塞执行顺序
`define DEPTH 9'h4//511 =1FFh`define DEPTHBIT 3'd2//0~8 9位 511module FIFO_MOD(Data,Clock, WrEn, RdEn, Reset, Q, Empty, Full);input [127:0] Data/* synthesis syn_ramstyl原创 2012-09-18 21:46:22 · 1947 阅读 · 0 评论 -
k4s511632调试记录
最近在进行k4s511632调试过程中连续进行突发写操作出现在进行突发读出数据时只有第一个字节是正确的其他全部错误。SDRAM控制代码没有问题(别的型号的SDRAM测试使用过 ),时序约束也正确,最后发现是SDRAM的TMRD设置问题应设置为023,即突发写8个字节,读延时TCL为2个周期。这些都正确唯独错误的是芯片手册上没介绍TMRD 的时间是多少原来设置为2CLK 后改为6CLK一原创 2012-09-15 10:35:54 · 1063 阅读 · 0 评论 -
如何让ISE综合时使用Block RAM?
原文章地址:http://www.openhw.com/utoo/blog/10-03/185646_9119f.html那天在OpenHW的论坛里闲逛,发现一个我以前也想过的问题:就是自己用代码来写RAM,然后让ISE把RAM综合成Block RAM? 最近在解决使用ISE simulator 仿真divider报错问题时(还没解决,麻烦高手教我),发现了一个例程,就是在讲这转载 2012-10-07 19:40:48 · 5220 阅读 · 0 评论 -
LATTICE FPGA 工具介绍之ACTIVE-HDL 建立工程及仿真步步来(2)
7、这时系统提示错误:# ELBREAD: Error: Design unit SYSPLL instantiated in fifotestip.MainFIFO not found in searched libraries: FIFOTESTIP, fifotestip.# ELBREAD: Error: Elaboration process completed with err原创 2012-09-11 21:28:57 · 12526 阅读 · 2 评论 -
LATTICE FPGA 工具介绍之ACTIVE-HDL 建立工程及仿真步步来(1)
在进行FPGA开发过程中仿真是非常必要的。下面简单介绍一下ACTIVE-HDL 仿真1、建立工作区并选上添加新的设计2、选择添加已有的FPGA工程文件添加到工程中选择文件3、选择FPGA开发使用 语言类型及FPGA芯片厂商及类型注意:这里一定要正确选择不然如果你在使用厂商提供的IP核时将无法进行编译4、输入工程名称5、编译设计6、初始仿真原创 2012-09-11 20:43:17 · 5291 阅读 · 0 评论 -
FPGA 扇入扇出
最近在学习有关FPGA方面的知识,在看一些FPGA的datasheet时,看到fan-out和fan-in这样的字眼,乍一看还真不知所云,继续往下看还是云里雾里,于是用Google在线翻译了一下,上面赫然是扇入扇出,不用想,电子设计方面怎么会有这么俗的词,还“扇”呢。刚开始不以为然,后来在求知欲的驱使下,就以扇入扇出为关键字在网上开始艰难搜寻。别说这一找,还真找到不少资料呢,看了网上那些大侠们的解转载 2012-07-23 15:19:34 · 12066 阅读 · 1 评论 -
CPLD+SRAM+MCU+LCD 项目小结
这两天起早摸黑两个人的力量总算把这个项目搞定了,其实主要做的就是我的CPLD这一块,这都是第三周末了,算是实实在在的第一个自己的项目吧。该好好总结总结了,这两天调试的过程让自己成长了许多。 还是想写点什么把自己的感悟都记录下来吧,我想这对自己是一笔宝贵经验的积累。1,无论谁做的板子,一块板子拿过来最好自己测测重要的线路是否确确实实的连通了,当然了如果你只是做软件的,那么这个工作转载 2012-07-23 09:17:49 · 2254 阅读 · 0 评论 -
FPGA设计 问题一
今日在设计FPGA过程中发现真个设计在功能仿真时 全部正确,但是在烧些到FPGA里面以后 功能只能实现2次第3次以后就不对了。和高手交流的对话如下:和高手一作者: 你好请教个问题,我在做FPGA时 仿真数据是对的 为什么烧到FPGA里数据据不对了呢?高手1:看看时序是否满足作者:仿真时 是对的呀你是的时序满足是?高手1:你只做功能仿真了吧?作者:原创 2012-05-08 13:39:10 · 884 阅读 · 0 评论 -
Verilog经验谈
<br />规范很重要<br /><br /> 工作过的朋友肯定知道,公司里是很强调规范的,特别是对于大的设计(无论软件<br />还是硬件),不按照规范走几乎是不可实现的。逻辑设计也是这样:如果不按规范做的<br />话,过一个月后调试时发现有错,回头再看自己写的代码,估计很多信号功能都忘了,<br />更不要说检错了;如果一个项目做了一半一个人走了,接班的估计得从头开始设计;如<br />果需要在原来的版本基础上增加新功能,很可能也得从头来过,很难做到设计的可重用<br />性。<br /><br原创 2010-12-14 21:12:00 · 2343 阅读 · 2 评论 -
学习Verilog必走的3个阶段
<br />学习Verilog必走的3个阶段<br />//**************************************************************** <br />// 入门篇: (秋干勿燥,冬去春来) <br />//**************************************************************** <br />01. 建立项目 <br />02. Verilog <br />a). nand/nor/and/or; <b转载 2010-12-14 21:04:00 · 2925 阅读 · 0 评论 -
今天遇到的FPGA奇怪的现象
今天弄FPGA捕捉50Hz的方信号的下降沿和上升沿进行反向处理发现问题,有时捕捉不到(我的FPGA使用的24M晶振)有遗漏现象不知道为什么?前几天做一次简单的实验好使呀!今天不知道为什么怎么也不行总有遗漏的添加了补充判断强了一些但是还是不行。代码如下:输入方波位gpiif(gpir==0&&gpi==1) outif(gpir==1&&gpi==1)outgpir这是最简单的呀!添加缓冲if((gpir==0&&gpi==1)||((gpirr==0&&gpi==1)) outif((gpir==1&&gp原创 2010-12-12 20:27:00 · 1108 阅读 · 0 评论 -
FPAG故障一例
<br />最近在弄FPGA LFXP2-5E的代码<br />在编译过程中老出现<br /> module spd ignored due to previous errors<br />问题<br />经过几次总结一下这个故障的原因:<br />1.在模块中begin 与end不对应<br />2.语句结束时没有;或将;写成;<br />3.使用错误的变量名称。原创 2010-12-05 11:53:00 · 10766 阅读 · 1 评论 -
Verilog的关键字及意义(未完持续编辑中)
<br />always<br />ifnone<br />rnmos<br />and<br />incdir<br />rpmos<br />assign//标记赋值<br />include<br />rtran<br />automatic<br />initial<br />rtranif0<br />begin<br />inout<br />rtranif1<br />buf<br />input//输入<br />scalared<br />bufif0<br />instance<br /原创 2010-12-04 10:43:00 · 9724 阅读 · 0 评论 -
Verilog assign和always 注意事宜
<br />assign用于描述组合逻辑<br />always@(敏感事件列表) 用于描述时序逻辑<br />敏感事件上升沿 posedge,下降沿 negedge,或电平<br />敏感事件列表中可以包含多个敏感事件,但不可以同时包括电平敏感事件和边沿敏感事件,也不可以同时包括同一个信号的上升沿和下降沿,这两个事件可以合并为一个电平敏感事件。<br />在新的verilog2001中“,”和“or”都可以用来分割敏感事件了,可以用“*”代表所有输入信号,这可以防止遗漏。<br />合法的写法:<br /原创 2010-12-04 21:14:00 · 7535 阅读 · 1 评论 -
Verilog基础 门级建模
<br />与门(and)和或门(or):<br />与门、或门都有一个标量输出端和多个标量输入端。门的端口列表中的第一个端口必是输出端口,其后为输入端口。当任意一个输入端口的值发生变化时,输出端的值立即重新计算。<br />verilog中可以使用的属于与/或门类的术语包括:<br />and nand or nor xor xnor<br />例:与门/或门的实例引用<br />wire OUT,IN1,IN2;<br />and a1(OUT,IN1,IN2); //基本门的实例引用<br原创 2010-12-04 11:45:00 · 19740 阅读 · 0 评论 -
Verilog基础——模块端口
<br />模块<br />模块的定义以关键字module开始,模块名、端口列表、端口声明和可选的参数声明必须出现在其他部分的前面,endmodule语句必须为模块的最后一条语句。端口是模块与外部环境交互的通道,只有在模块有端口的情况下才需要有端口列表和端口声明。模块内部的5个组成部分是:变量声明、数据流语句、低层模块实例、行为语句块以及任务和函数。<br /> <br />端口<br />端口是模块与外界环境交互的接口。对外部环境来讲,模块内部是不可见的,对模块的调用只能通过其端口进行。这种特点为设计者提原创 2010-12-04 11:43:00 · 3916 阅读 · 0 评论 -
Verilog的数据类型
<br /><br /><br />1 整数、实数和时间寄存器类型<br />整数是一种通用的寄存器数据类型,用于对数量进行操作,使用integer进行声明。<br />integer counter; //一般用途的变量用作计数器<br />initial <br /> counter = -1; //把-1存储到寄存器中<br />实数:实常量和实数寄存器数据类型使用关键字real来声明,可以用十进制或科学计数法来表示。实数声明不能带有范围,其默认值原创 2010-12-04 11:03:00 · 18723 阅读 · 0 评论 -
学习verilog一段时间 小结
<br />一:基本<br />Verilog中的变量有线网类型和寄存器类型。线网型变量综合成wire,而寄存器可能综合成WIRE,锁存器和触发器。<br /><br />二:verilog语句结构到门级的映射<br />1、连续性赋值:assign<br />连续性赋值语句逻辑结构上就是将等式右边的驱动左边的结点。因些连续性赋值的目标结点总是综合成由组合逻辑驱动的结点。Assign语句中的延时综合时都将忽视。<br /><br />2、过程性赋值:<br />过程性赋值只出现在always语句中。<br原创 2010-12-14 21:15:00 · 1981 阅读 · 0 评论 -
FPGA学习步骤,我的体会
<br />FPGA学习步骤,我的体会<br />FPGA在目前应用领域非常,在目前的单板设计里面,几乎都可以看到它的身影。从简单的逻辑组合,到高端的图像、通信协议处理,从单片逻辑到复杂的ASIC原型验证,从小家电到航天器,都可以看到FPGA应用,它的优点在这里无庸赘述。从个人实用角度看,对于学生,掌握FPGA可以找到一份很好的工作,对于有经验的工作人员,使用fgpa可以让设计变得非常有灵活性。掌握了fpga的设计,单板硬件设计就非常容易(不是系统设计),特别是上大学时如同天书的逻辑时序图,看起来就非常亲切转载 2010-12-14 21:14:00 · 5098 阅读 · 1 评论 -
给UltraEdit设置Verilog语法高亮
verilog 用 ultraedit 终极大法 本帖最后由 wangkj 于 2009-7-30 16:50 编辑 UltraEdit是一款功能强大的文本编辑器,可以编辑文字、Hex、ASCII码,可以取代记事本,内建英文单字检查、C++ 及 VB指令突显,可同时编辑多个文件,而且即使开启很大的文件速度也不会慢。是一个使用广泛的编辑器,但它并不直接支持HDL。 在网转载 2012-03-22 10:13:22 · 2274 阅读 · 0 评论 -
同步复位,异步复位以及异步复位同步释放(转载)
1.同步复位(Synchronous Reset)来看一个简单的同步复位的D触发器,Verilog代码如下:module d_ff ( clk, rst_n, datain, dataout ); input clk; input rst_n; i转载 2012-03-20 13:38:41 · 1515 阅读 · 0 评论 -
FPGA 关于 Only one always block can assign a given variable write_rdy
编译FPGA 代码出现 Only one always block can assign a given variable write_rdy错误。原因是在连个alway中和命令中对reg 变量write_rdy进行了幅值操作。这样是不允许的。错误代码如下:always @ (posedge clk or negedge rst_n) begin if(!rst_n原创 2012-03-26 10:27:58 · 5312 阅读 · 0 评论 -
关于Verilog的综合~转载
0推荐转自:http://www.edacn.net/?27076一:基本Verilog中的变量有线网类型和寄存器类型。线网型变量综合成wire,而寄存器可能综合成WIRE,锁存器和触发器。二:verilog语句结构到门级的映射1、连续性赋值:assign连续性赋值语句逻辑结构上就是将等式右边的驱动左边的结点。因些连续性赋值的目标转载 2012-03-26 11:32:34 · 832 阅读 · 0 评论 -
SDRAM DQM的解释,总算明白了
数据掩码在讲述读/写操作时,我们谈到了突发长度。如果BL=4,那么也就是说一次就传送4×64bit的数据。但是,如果其中的第二笔数据是不需要的,怎么办?还都传输吗?为了屏蔽不需要的数据,人们采用了数据掩码(Data I/O Mask,简称DQM)技术。通过DQM,内存可以控制I/O端口取消哪些输出或输入的数据。这里需要强调的是,在读取时,被屏蔽的数据仍然会从存储体传出,只是在“掩码逻辑单元”处原创 2012-03-08 14:00:13 · 5649 阅读 · 0 评论