随笔分类 - verilog
摘要:programmable language interface这里就说给verilog用的一些系统函数,还是无双大大的帖子首先介绍了怎么让你自己写的pli系统函数在ncverilog里面可以成功调用。http://www.cnblogs.com/oomusou/archive/2009/03/25/verilog_hello_world.html接着,一个不是特别麻烦的例子说明了c和verilog怎么互相传递参数变量http://www.cnblogs.com/oomusou/archive/2009/03/30/verilog_pli_show_value.html
阅读全文
摘要:原理如下图(为了方便简洁,去掉了rst_n)波形是这样的代码就是根据电路图写的 1 /////////////////////////////////////////////////////////////////////////////////////////// 2 // DATE : Wed Jun 6 23:31:57 CST 2012 3 /////////////////////////////////////////////////////////////////////////////////////////// 4 module clk_sw( 5 in...
阅读全文
摘要:这个就是原理图,奉上代码 1 ///////////////////////////////////////////////////////////////////////////// 2 // DATE : Wed Jun 6 22:58:17 CST 2012 3 ///////////////////////////////////////////////////////////////////////////// 4 module clk_mul( 5 input wire clk 6 , input wire ...
阅读全文
摘要:1. $skew是Verilog所提供的專門用來做timing check的system task,可以檢查兩個信號間最大的延遲,若兩個信號間的skew大於我們所指定的需求,將產生violation warning。比如下面的这个例子,表示從posedge wire_a到posedge wire_b間的skew limit為4 ns,若skew大於4 ns,將產生timing violation warning。此外,Verilog規定timing check類的system task,一定要放在specify block內。1 specify2 $skew(posedge wire_a,..
阅读全文
摘要:转自无双大大的博客http://www.cnblogs.com/oomusou/archive/2010/08/04/timing_slack.htmlhttp://www.cnblogs.com/oomusou/archive/2010/08/04/fmax.htmlhttp://www.cnblogs.com/oomusou/archive/2009/10/31/verilog_signed_overflow.html不转过来实在对不起大大第一篇 非常详尽的阐述了什么是setup time 和 hold time 以及 time slack 是什么东东第二篇 给出了计算Fmax的公式第三篇
阅读全文
摘要:从上次的经验教训,对同步reset和异步reset基本有了一个比较清醒的认识,这次正好在eetop上面看到了一个讨论的帖子,这里再说一下这个东西到底是怎么弄的,一般的工业界的硬件的reset是不会真的接给内部模块的rst_n的,而是同步过之后再给内部的模块,这样的话基本就不会有上次提到的removal_time的约束了,所以呢,这里介绍一下通用的电路结构是什么样的。如图这个电路的仿真结果(发出的rst_n_async是用$random函数生成的不规律信号)可以看到这个电路输出的rst_n_sync还是比较令人满意的,代码很简单,如下module rst_n_proc( input w...
阅读全文
摘要:关于一般的门控时钟结构,首先来看看为什么要有门控时钟Clock tree consume more than 50 % of dynamic power. The components of this power are:1) Power consumed by combinatorial logic whose values are changing on each clock edge 2) Power consumed by flip-flops and 3) The power consumed by the clock buffer tree in the design.通常用的门控
阅读全文
摘要:转自OO无双大大的博客 顿首(本文生动形象的讲述了在ieee订立的verilog标准里面blocking/non-blocking 与各种系统函数的执行顺序,读后会对每个数字设计的略糊涂人员有种醍醐灌顶之感,请进)我用的环境还是NC+Debussy主要说的是blocking/non-blocking 和各种仿真时会用到的一些函数和#0的执行时刻module nb_schedule1; reg a, b; integer fp; initial begin fp = $fopen("log.txt","w"); a = 0; b = 0; #1; a...
阅读全文
摘要:今天不知怎么的,正好提到了这个问题所以再说一下。一般的外部reset,对于内部的模块来说,是需要处理过再接入的,所以一般的情况就是,用几个寄存器给rst_n打上几拍,去掉不稳定的状态和短于一个clock的noise,再用个majority的逻辑去一下毛刺,注意这几个处理rst_n的寄存器是不要reset的,之后处理完毕的rst_n和clk就可以配套的接给模块内部的所有寄存器使用了。
阅读全文
摘要:Question:Theexamplebelowmodelsaflip-flopwithasynchronousset/resetlogic(activelow).Themodelsynthesizescorrectly,butthereisacornercasewheresimulationresultsareincorrect. Whatisthecornercase?always_ff @( posedge clk or negedge rst_n or negedge set_n) begin if(!rst_n) q_out <= '0; else if(!set_n)
阅读全文
摘要:豪斯医生里面这女子真是感觉越来越好看了,唉~白天一直在写代码,感觉自己非常2B,选择了一个非常臃肿容易出错的方式来完成一个本来很容易的问题。那就是用状态机嵌套,大的状态机来操作整个模块的动作是没有错误的,但是完全不用搞一大堆别的什么状态机来嵌套进来只为了完成一些时序上面的生成波形,简直笨透了。不过大概了解了状态机嵌套的写法,基本思路就是用一个母状态机信号来激发子状态机跳转,同时母状态机停在这个状态等待子状态机的一个返回结果来继续进行母状态机的正常运转,八过比较容易的步骤还是用一些很容易的组合逻辑和时序电路就能实现了,就别乱搞了,不然真是看起来又臭又长。结果晚上已经不想再看到自己写的2bveri
阅读全文
摘要:首先定义自己要支持的功能,用寄存器来配置再加上读写的两个FIFO。打算支持的功能有可选的数据位数,支持速率从1200 到115200,包括了1200,2400,4800,9600,14400,19200,38400,57600,115200这里的波特率和bit/s其实没啥区别,所以峰值速率也就是10K左右(因为要考虑开始,截止和校验位)支持7bit or 8bit,支持校验位有odd or even or no, 支持停止位1 or 1.5 or 2对了,还要加上tx和rx的完成中断大概就这么多,再加上收发两个8byte的FIFO,基本就是这样,从头做起
阅读全文
摘要:一周多的时间,新的任务基本告一段落了,其实我也没干什么,缺少的I2C的东西零零碎碎的凑了上去,在原来的基础上加上了结果不好用,不知道为什么,重新又挂了一次就好使了,之后用了系统组的一块板子来验证I2C通讯,确实没问题,单读单写,连读连写都没问题,就算是过了,一星期啊,各种2B问题唉,反正是糊里糊涂的就好了。接着DR写的DMA模块和时序转换的模块,我写了一个DUMMY的FIFO来像要用的USB2.0芯片上面的那个一样来模拟一个写入的过程,这周一开始弄弄到今天是弄好了,大概花了一天的时间来理解时序问题,一天多的时间来把memory挂载BUS上面来弄,其实要是昨天不上课,下午上政治,晚上上英语,如果
阅读全文
摘要:自verilog coding style from belab1.portiability最基本的就是用`ifdef,还有要用相对路径不要用绝对路径,别人的IP尤其是memory用的时候打上一个wrapper,里面放上自己需要的功能比如bist和scan 什么的。2.modularity & partitioning比如top里面应该只有模块相连的关系,而不要有logic;datapath和Control logic应该分离在不同的module里面,data path是timing-optimized而Control logic是area-optimized。在datapath里面应
阅读全文

浙公网安备 33010602011771号