随笔分类 -  Verilog

quartus II输入原理图及仿真步骤
摘要:在Quartus II中输入原理图以及实现仿真是学习基本数字电路的好方法。下面以一个基本的D锁存器为例,在quartus II 13.0中一步一步来实现原理图输入以及仿真过程。1,创建工程 指定工程名字以及顶层文件名跳过。。。。我用的是小梅哥的AC620开发板,按下面的图进行选择:因为输入原理图以及用波形文件来仿真,所以EDA工具-simulation中选None点finish,... 阅读全文

posted @ 2019-01-08 10:51 迈克老狼2012 阅读(22615) 评论(0) 推荐(1) 编辑

触发器的时序参数与时序分析
摘要:一、概念 在实际电路中,必须考虑传输延迟的影响。比如D锁存器,在时钟信号从1变成0时,它把当前输出的值储存在锁存器中。如果输入D稳定,则电路可以稳定工作,如果在时钟跳变时候D的内容也正好发生变化,则可能产生不可预知的结果。所以电路设计者必须保证时钟信号跳变时后,输入信号是稳定的。 下图中标示了一些关键时间区间,这些区间和工艺有关。集成电路制造厂家都会提供这个参数。 建立... 阅读全文

posted @ 2018-12-30 20:56 迈克老狼2012 阅读(5266) 评论(0) 推荐(1) 编辑

verilog语法实例学习(13)
摘要:verilog代码编写指南变量及信号命名规范 1. 系统级信号的命名。 系统级信号指复位信号,置位信号,时钟信号等需要输送到各个模块的全局信号;系统信号以字符串Sys开头。 2. 低电平有效的信号后一律加下划线和字母n。如:SysRst_n;FifoFull_n; 3. 经过锁存器锁存后的信号,后加下划线和字母r,与锁存前的信号区别 如CpuRamRd信号,经锁存后应... 阅读全文

posted @ 2018-12-29 20:14 迈克老狼2012 阅读(729) 评论(0) 推荐(0) 编辑

verilog语法实例学习(12)
摘要:verilog中的综合和不可综合总结Verilog中综合的概念 综合就是EDA工具或者说综合工具把我们编写的verilog代码转化成具体电路的过程。Verilog中有很多语法,结构,过程,语句,有些是可以综合的,有些是不可以综合的,不可综合的语句或者语法通常用在testbench中,只是用来仿真验证。(1)所有综合工具都支持的结构:always,assign,begin,end,case... 阅读全文

posted @ 2018-12-29 20:12 迈克老狼2012 阅读(810) 评论(0) 推荐(0) 编辑

verilog语法实例学习(11)
摘要:同步时序电路的一般形式 时序电路由组合逻辑以及一个或多个触发器实现。一般的架构如下图所示:W为输入,Z为输出,触发器中存储的状态为Q。在时钟信号的控制下,触发器通过加在其输入端的组合逻辑输入,使得电路从一个状态变成另一个状态。采用边沿触发的触发器可以确保一个时钟周期内只发生一次状态变化。它们可以由时钟上升沿或下降沿触发,产生这种状态变化的时钟边沿称为有效时钟边沿。 发器有两路组... 阅读全文

posted @ 2018-12-29 20:10 迈克老狼2012 阅读(844) 评论(0) 推荐(0) 编辑

verilog语法实例学习(10)
摘要:常用的时序电路介绍T触发器和JK触发器 在D触发器输入端添加一些简单的逻辑电路,可以生成另一种类型的存储元件。比如下图所示的T触发器。该电路有一个上升沿触发的触发器和两个与门,一个或门,以及一个反相器组成。 在时钟上升沿到来之时,若T=0,则D=Q,若T=1,则D=~Q,因此,若T=0,在上升沿,电路保持当前状态,若T=1,则当前状态反转。 T触发器特性表图下,T触发器是... 阅读全文

posted @ 2018-12-29 19:59 迈克老狼2012 阅读(1655) 评论(0) 推荐(0) 编辑

verilog语法实例学习(9)
摘要:常用的时序电路介绍寄存器 一个触发器可以存储一位数据,由n个触发器组成的电路可以存储n位数据,我们把这一组触发器叫做寄存器。寄存器中每个触发器共用同一个时钟。 下面是n位寄存器的代码,我们通过一个参数定义n,在实例化时传入参数n。module regne (D, clk,Rst_n,E,Q); parameter n=4; input [n-1:0] D; input clk... 阅读全文

posted @ 2018-12-29 19:57 迈克老狼2012 阅读(830) 评论(0) 推荐(0) 编辑

verilog语法实例学习(8)
摘要:常用的时序电路介绍 在电平敏感的锁存器时钟信号有效期(高电平)期间,锁存器的状态随着输入信号的变化而变化。有时候,我们需要存储器的状态在一个时钟周期只改变一次,这个时候就用到了触发器。触发器(flipflop)这个术语表示在时钟的边沿时刻改变状态的存储元件。下面分别是D锁存器,D触发器(正边沿,上升沿触发),D触发器(负边沿,下降沿触发)的图形符号。图中用>表示边沿触发,小圆圈表示该触发... 阅读全文

posted @ 2018-12-27 10:32 迈克老狼2012 阅读(2158) 评论(0) 推荐(0) 编辑

verilog语法实例学习(7)
摘要:常用的时序电路介绍 组合电路:这类电路的输出信号值仅却决于输入端信号值。 时序电路:时序电路的输出值不仅取决于当前的输入值,还取决于电路的历史状态,所以时序逻辑电路中包含保存逻辑信号值的存储元件,存储元件中的值代表了当前电路的状态。当电路的的输入信号值发生改变时,新输入的信号值可能使电路保持同样的状态,也可能使电路进入另一种状态,随着时间推移,输入信号值的变化导致电... 阅读全文

posted @ 2018-12-27 10:30 迈克老狼2012 阅读(1331) 评论(0) 推荐(0) 编辑

verilog语法实例学习(6)
摘要:函数和任务函数https://wenku.baidu.com/view/d31d1ba8dd3383c4bb4cd283.htmlverilog中函数的目的是允许代码写成模块的方式而不是定义独立的模块。函数通常用于计算或描述组合逻辑。如果在模块内定义一个函数,则既可以用连续赋值语句,也可以用过程赋值语句调用。函数可以有不只一个输入,但只能有一个输出,因为函数名本身就充当输出变量。verilog中函... 阅读全文

posted @ 2018-12-27 10:29 迈克老狼2012 阅读(2192) 评论(0) 推荐(0) 编辑

verilog语法实例学习(5)
摘要:子电路模块子电路模块的使用 一个verilog模块能够作为一个子电路包含在另一个模块中。采用这种方式,所有的模块都必须定义在一个文件中,那么verilog编译器就必须被告知每个模块的所属。模块例化的通用形式和门例化语句类似。 modulename [#(parameter overrides)] instance_name( port_name([express... 阅读全文

posted @ 2018-12-27 10:24 迈克老狼2012 阅读(2098) 评论(0) 推荐(0) 编辑

verilog语法实例学习(4)
摘要:Verilog模块Verilog中代码描述的电路叫模块,模块具有以下的结构:module module_name[ (portname {, portname})]; //端口列表[parameter declarations] //参数定义[input declarations] // I/O定义[output declarations][inout declarations][wire or ... 阅读全文

posted @ 2018-12-27 10:22 迈克老狼2012 阅读(5815) 评论(0) 推荐(0) 编辑

verilog语法实例学习(3)
摘要:Verilog 操作运算符算术运算符+,-,*,/,**(加/减/乘/除/幂运算),乘法运算的结果的位宽是乘数和被乘数位宽的和。在进行整数的除法运算时,结果要略去小数部分,只取整数部分;而进行取模运算时(%,亦称作求余运算符)结果的符号位采用模运算符中第一个操作数的符号。-10%3 =-1 11%-3 结果为2注意:在进行算术运算时,如果某一个操作数有不确定的值x,则整个结果也为不确定值x。下面的... 阅读全文

posted @ 2018-12-27 10:01 迈克老狼2012 阅读(2777) 评论(0) 推荐(0) 编辑

verilog语法实例学习(2)
摘要:Verilog中的信号类型线网类型 线网类型表示一个或多个门或者其它类型的信号源驱动的硬件连线。如果没有驱动源,则线网的默认值为z。verilog中定义的线网类型有以下几种: wire,tri,wor,trior,wand,triand,trireg,tri1,tri0,supply0,supply1。其中最主要的是wire/tri,其它的类型都是综合中用不到的线网。wire线网... 阅读全文

posted @ 2018-12-27 09:49 迈克老狼2012 阅读(7512) 评论(0) 推荐(1) 编辑

verilog语法实例学习(1)
摘要:本文档中通过verilog实例来学习verilog语法。Verilog是一种硬件描述语言,它具有并发性和时序性。并发性是指不同硬件模块的同时操作,时序性是指信号的赋值或操作在时钟的边沿进行。由于作者本身也是一个初学者,所以尽量用简单明了的例子介绍Verilog语法。Verilog中的注释 Verilog代码中的注释和c++语言相同,分为短注释(//)和长注释(/* … */)。短... 阅读全文

posted @ 2018-12-27 09:31 迈克老狼2012 阅读(10171) 评论(0) 推荐(0) 编辑

verilog语法学习目录
摘要:verilog语法实例学习(1) Verilog中的注释Verilog中的信号标识符信号的值Verilog中的数字Verilog中的参数 verilog语法实例学习(2)线网类型变量类型有符号数数组wire和reg类型的区别verilog语法实例学习(3) Verilog 操作运算符verilog语法实例学习(4) Verilog模块 并行语句: 连续赋值语句门实例化语... 阅读全文

posted @ 2018-12-27 09:02 迈克老狼2012 阅读(1180) 评论(0) 推荐(1) 编辑

在testbench从文件读入激励
摘要:在验证verilog逻辑模块功能时候,我们可以从文件中读入激励,便于大规模的验证。文件中的数据我们可以用c++编写程序产生。第一种读入文件的方法是用系统函数:$readmemb, readmemh, 第一个函数是读入二进制的字符串,第二个是读入16进制的字符串。我们准备两个文本文件x1.txt1111101011100001y1.txt1101010110100001我们验证一个四位的加法器加法器... 阅读全文

posted @ 2018-12-21 19:36 迈克老狼2012 阅读(2285) 评论(0) 推荐(1) 编辑

Verilog 加法器和减法器(7)
摘要:在计算机中浮点数 表示通常采用IEEE754规定的格式,具体参考以下文章。https://www.cnblogs.com/mikewolf2002/p/10095995.html下面我们在Verilog中用状态机实现单精度浮点数的加减法功能。这个实现是多周期的单精度浮点加法。浮点加法分为以下几个步骤:1.初始化阶段,分离指数和尾数以及符号位。判断加数和被加数是否是规约浮点数,不是话,直接置over... 阅读全文

posted @ 2018-12-18 19:58 迈克老狼2012 阅读(2436) 评论(0) 推荐(0) 编辑

Verilog 加法器和减法器(6)
摘要:为了减小行波进位加法器中进位传播延迟的影响,可以尝试在每一级中快速计算进位,如果能在较短时间完成计算,则可以提高加法器性能。 我们可以进行如下的推导: 设 gi=xi&yi, pi = xi +y i ci+1 = xi&y i+x i&ci+yi&ci=xi&yi + (xi+yi)&ci=g i+pi&c i = gi+pi&(gi-1+pi-1&ci-1)=... 阅读全文

posted @ 2018-12-08 19:08 迈克老狼2012 阅读(1571) 评论(0) 推荐(1) 编辑

Verilog 加法器和减法器(5)
摘要:前面二进制加法运算,我们并没有提操作数是有符号数,还是无符号数。其实前面的二进制加法对于有符号数和无符号数都成立。比如前面的8位二进制加法运算,第一张图我们选radix是unsigned,表示无符号加法,第二张图我们选radix是decimal,表示有符号数,从图中可知结果都是正确的。对于有符号数来说,负数默认是补码的形式存在。假设二进制数是n位,则对于无符号数来说,表示范围是0~(2... 阅读全文

posted @ 2018-12-08 09:19 迈克老狼2012 阅读(4997) 评论(0) 推荐(1) 编辑

导航