verilog
文章平均质量分 60
mikiah
这个作者很懒,什么都没留下…
展开
-
verilog描述锁存器和触发器
1。门口D锁存器代码:module D_latch(clk,D,Q); input clk,D; output reg Q; always @(clk,D) //注:这里的敏感信号为clk和D,因为D也引起Q的变化。当clk为高点评时,D的变化也引起输出Q的变化。 if(clk==1) Q=D;endmodule2.D触发器代码:module D_flipflop(clk,D,Q); //触发器的英文为flipflop. input clk,D; o原创 2010-07-28 23:03:00 · 7226 阅读 · 0 评论 -
分频电路(转)
各种分频电路偶数分频: 偶数分频电路比较简单,需要使用计数器即可实现50%占空比的分频电路。 下面是一个N分频的偶数分频电路Verilog代码:module N_bit_even_divider ( input i_clk, input rst_n, output reg o_clk); parameter N转载 2012-09-07 18:25:05 · 4198 阅读 · 0 评论 -
Verilog的数据类型
1 整数、实数和时间寄存器类型整数是一种通用的寄存器数据类型,用于对数量进行操作,使用integer进行声明。integer counter; //一般用途的变量用作计数器initial counter = -1; //把-1存储到寄存器中实数:实常量和实数寄存器数据类型使用关键字real来声明,可以用十进制或科学计数法来转载 2012-09-07 18:22:58 · 2271 阅读 · 0 评论 -
如何编写testbench的总结(非常实用的总结)
1.激励的设置相应于被测试模块的输入激励设置为reg型,输出相应设置为wire类型,双向端口inout在测试中需要进行处理。方法1:为双向端口设置中间变量inout_reg作为该inout的输出寄存,inout口在testbench中要定义为wire型变量,然后用输出使能转载 2011-09-20 14:11:34 · 11487 阅读 · 0 评论 -
用Verilog描述组合逻辑电路
1。选择器//2选1多路选择器module mux2to1(w0,w1,s,f); input w0,w1,s; output f; assign f=s?w0:w1; endmodul原创 2010-07-28 10:49:00 · 2777 阅读 · 0 评论 -
杂谈Verilog
组合电路可以用assign连续赋值语句和过程性语句建模。而时序电路只可以用过程性语句建模。Verilog 语法需要一个包含全部是沿敏感的事件,或者全部是电平敏感的事件,但不能是两者混合的敏感列表//书本315页图8-3 。。。。。。。 摩尔型的。。。。。。。。modu原创 2010-08-01 22:57:00 · 925 阅读 · 0 评论 -
Verilog中的函数和任务
在高级编程语言中,为了避免在程序中多次重复编写特定的例行程序,可以使用子程序和函数。Verilog语言也提供类似的功能,即Verilog的函数和任务。。它可以把大型程序模块化,从而使代码更加容易理解。。 1。Verilog任务 任务用关键词task声明,以end原创 2010-07-28 11:25:00 · 5220 阅读 · 0 评论 -
设计可综合状态机指导原则
1。因为大多数FPGA内部的触发器数目相当多,又加上杜热码状态机的译码逻辑最为简单,所以在设计FPGA实现的状态机时,往往采用独热码状态机。2。建议用case,casex,casez语句来建立状态机的模型,因为这些语句清新明了,可以方便地从当前分支转向下一个状态并设置输出。 不要忘记写上case语句的最后一个分支default,并将状态变量设为'bx,这就等于告诉综合器:case语句已经指定了所有的状态。这样综合器就可以删除不需要的译码电路,使生成的电路简洁,并与设计要求一致。3。如果要为电平敏感的锁存原创 2010-08-06 20:57:00 · 795 阅读 · 0 评论 -
FPGA开发流程
学习fpga应该从xilinx和altera器件的入手,这是当今世界最大的两家可编程器件供应商,当然学习fpga应该你具备一定的Verilog的基础。我们就用xilinx作为例子来讲解吧。 fpga的开发流程,首先是综合,布局布线,生成bit文件,最后下载。 综合,可以用synplify,也可以用synopsys的fpga compiler,当然也可以用ISE自带的综合工具,Mentor也提供fpga开发的工具。作为入门,synplify是一个很好的选择,第一,可以熟悉电路结构,第二,作为入门你可以在s转载 2010-07-30 20:09:00 · 5568 阅读 · 0 评论 -
Verilog中关于总线的代码
书第271页1。n位寄存器代码:module regn(R,Rin,clk,Q);//Rin含义:若Rin=1,则组成寄存器的n个触发器被来自于输入信号R的n个数位加载,否则这n个触发器保持当前数据不变。 parameter n=8; input [n-1:0] R; input Rin,clk; output [n-1:0] reg Q; always @(posedge clk) if(Rin) Qendmodule2.n位三态原创 2010-07-29 21:01:00 · 7700 阅读 · 2 评论 -
寄存器Verilog
1。有异步清零端的n位寄存器:module regn(D,clk,reset,Q); parameter n=16; input [n-1] D; input clk,reset; output [n-1] reg Q; always @(negedge reset,posedge clk) if(!reset) //复位端reset低电平有效 Q else Qendmodule2.D输入端有2选1多路器的D触发器:module mux原创 2010-07-29 14:36:00 · 11448 阅读 · 0 评论 -
边沿检测(转)
脉冲边沿检测 在很多时候都要对输入脉冲进行边沿检测,如PS/2时序,ps2_data数据在ps2_clk时钟下降沿接收。 边沿检测Verilog程序代码: 布线布局后仿真波形如下图: 可以注意到其中的移位寄存器用了非阻塞赋值(转载 2012-09-07 18:26:57 · 2267 阅读 · 0 评论