随笔分类 - Verilog & FPGA
摘要:1 引言DDR2(Double Data Rate2)SDRAM是由JEDEC(电子设备工程联合委员会)制定的新生代内存技术标准,它与上一代DDR内存技术标准最大的不同:虽然采用时钟的上升/下降沿同时传输数据的基本方式,但DDR2却拥有2倍的DDR预读取能力(即4位预存取技术)。此外,DDR2还增加ODT(内建核心终结电阻器)功能,内建合适的端接电阻,避免了以往因片外连接大片终结电阻带来的制板成本增加。基于FPGA的SDRAM控制器,以高可靠性、强可移植性、易于集成的特点,逐渐取代以往的专用控制器而成为主流解决方案。本文采用Xilinx公司的Spartan-3A系列FPGA和Hynix公司的D
阅读全文
摘要:1.OPENCORES.ORG这里提供非常多,非常好的PLD了内核,8051内核就可以在里面找到。进入后,选择project或者由http//www.opencores.org/browse.cgi/by_category进入。http://www.opencores.org/polls.cgi/listOpenCoresisaloosecollectionofpeoplewhoareinterestedindevelopinghardware,withasimilarethostothefreesoftwaremovement.Currentlytheemphasisisondigitalm
阅读全文
摘要:最近在做verilog仿真的时候用到了task,但是我想用task来操作外部的一些变量时遇到了一些问题,搞了好久才的一解决。 我的问题很简单,就类似于用task来生成一个时钟信号,而我的task里面的变量是按照我的正常的设想生成的一个时钟信号,但是当我通过task的端口将这个变量传输出去的时候总是遇到外部的与task对应管教链接的变量一直是个常量的问题,就是外部并没有按照task里面对应变量来翻转,后来在网上查阅资料才发现:task 和 function总是在task执行完毕之后才将值船体出去,这样我就不能按照我预想的那样用task来生成我想要的时钟信号,后来在老师的帮助下才的一解决,就是让.
阅读全文
摘要:Mealy和moore型状态机的主要区别状态机一般分为三种类型:Moore型状态机:下一状态只由当前状态决定,即次态=f(现状,输入),输出=f(现状);Mealy型状态机:下一状态不但与当前状态有关,还与当前输入值有关,即次态=f(现状,输入),输出=f(现状,输入);混合型状态机。Moore型与Mealy型两种状态机的不同点在于,Moore型状态机的输出信号是直接由状态寄存器译码得到,而Mealy型状态机则是以现时的输入信号结合即将变成次态的现态,编码成输出信号。(摘自:http://hi.baidu.com/qdhdw/blog/item/454cb98f0865c2e7f01f36a9
阅读全文
摘要:前些日子,因实验室的项目需要(不知如何将软件的逻辑转化成硬件逻辑),特请来院里一FPGA专家进行辅导,去旁听记下笔记若干并整理成文档,以免日后忘却。又,虽现在不做FPGA,但介绍的开发经验、思想方法等很难得,暂时记下,以备后用。1.wire与reg之外的数据类型不要在verilog代码中出现。2.assign(组合逻辑)与always之外的语句不要在verilog代码中出现。3.一个module最好一个always,再加若干assign,这样便于控制。4.verilog中无函数调用及函数传递,都转化成input、output接口。5.不建议使用for循环,因为看不到其电路是什么样子。For可以
阅读全文
摘要:Description本文主要是收集一些重要的Verilog coding style。一个好的coding style可以减少错误的发生,增加电路的效能,以及较好的可读性。TextThe order of module signals一个module signal顺序如下 (由左至右):Inputclock signals(clk_*)set/reset signals(set_*, rst_*)enable/disble signals(en_*, dis_*)read/write enable signals(we_*, re_*, rw_*)control signals(i_*)ad
阅读全文
摘要:1、语法声明:parameter xx = yy;`define XX YY使用:xx`XX2、作用域parameter作用于声明的那个文件;`define从编译器读到这条指令开始到编译结束都有效,或者遇到`undef命令使之失效。如果想让parameter或`define作用于整个项目,可以将如下声明写于单独文件,并用`include让每个文件都包含声明文件:`ifndef xx`define xx yy // or parameter xx = yy;`endif`define也可以写在编译器最先编译的文件顶部。通常编译器都可以定义编译顺序,或者从最底层模块开始编译。因此写在最底层就可以了
阅读全文
摘要:自己学习Verilog 和FPGA已经一学期了,期间自己也算是做了不少的FPGA实验,也写了一些代码,期间自己感触最深的就是当你的代码出现错误时你应改怎么快速又准确的解决这些Bug,并同时也应该想想为什么会出现这些Bug,到底是当初那些原因导致这些Bug的产生等等。 我感觉自己犯的都是很低级的错误,其实说白了就两句话: 1、永远要对你的设计的每一个细节了如指掌。 2、做好版本管理,对你的每一个修改都要有记录,本版本的主要的特点、更改的地方等。 3、认真、仔细、小心的完成你的每一个步骤,只有这样才能减少那些低级错误的发生,很多时候这些低级错误会让你浪费大量的时间。 4、要时刻清楚你的代
阅读全文
摘要:1. OPENCORES.ORG这里提供非常多,非常好的PLD了内核,8051内核就可以在里面找到。进入后,选择project或者由http//www.opencores.org/browse.cgi/by_category进入。对于想了解这个行业动态人可以看看它的投票调查。http://www.opencores.org/polls.cgi/listOpenCores is a loose collection of people who are interested in developing hardware, with a similar ethos to the free softw
阅读全文
摘要:verilog语法学习心得1.数字电路基础知识: 布尔代数、门级电路的内部晶体管结构、组合逻辑电路分析与设计、触发器、时序逻辑电路分析与设计2.数字系统的构成: 传感器 AD 数字处理器 DA 执行部件3.程序通在硬件上的执行过程: C语言(经过编译)--该处理器的机器语言(放入存储器)--按时钟的节拍,逐条取出指令、分析指令、执行指令4.DSP处理是个广泛概念,统指在数字系统中做的变换(DFT)、滤波、编码解码、加密解密、压缩解压等处理5.数字处理器包括两部分:高速数据通道接口逻辑、高速算法电路逻辑6.当前,IC产业包括IC制造和IC设计两部分,IC设计技术发展速度高于IC设计7.FPG
阅读全文
摘要:Veriloginout双向口使用和仿真(2008-07-23 14:55:52)芯片外部引脚很多都使用inout类型的,为的是节省管腿。一般信号线用做总线等双向数据传输的时候就要用到INOUT类型了。就是一个端口同时做输入和输出。 inout在具体实现上一般用三态门来实现。三态门的第三个状态就是高阻'Z'。当inout端口不输出时,将三态门置高阻。这样信号就不会因为两端同时输出而出错了,更详细的内容可以搜索一下三态门tri-state的资料.1 使用inout类型数据,可以用如下写法:inout data_inout;input data_in;reg data_reg;//data_ino
阅读全文
摘要:这些天一直苦于没有一个很好的verilog 编辑工具,最近才看到UltraEdit添加一些文件可以做到,所以就搜了网上一些文章,搞定了。 其实很简单,安装好UltraEdit后去官网上下载一个文件就ok了,链接如下:http://www.ultraedit.com/files/wf/verilog2001.uew(后来在我的使用过程中发现官网上的这个文件可能用问题,后来在网上搜了一个比较好一点的,贴在下面(见附),里面的设置很全面)我用的是verilog2001,官网上还有一个verilog.uew,不过不知道他们有什么区别。将网页内容全选,拷贝到一个文件里,后缀名改为.uew(如veril.
阅读全文