您的位置:技术中心首页 > 硬件语言 >> Verilog HDL >> Verilog 脉冲发生器程序

Verilog 脉冲发生器程序

作者:万雪松   时间:2007-09-29 11:27:49  来自:网上转载  浏览次数:0  文字大小:【】【】【

/***************************************************************************************
实现功能简述
本模块主要功能是产生一个确定时钟周期长度(最长为256个时钟周期)的脉冲信号,可以自己设定脉冲长度,输出的脉冲信号与时钟上升沿同步
脉冲宽度 = pulsewide + 1 时钟周期;

输入一个启动信号后,可以产生一个固定时钟周期长度的脉冲信号,与启动信号的长短无关!脉冲宽度可调!

1、可以调整输出脉冲宽度
2、只要输入一个启动信号,不论启动信号宽度——需要能够触发设计,就输出脉冲
3、再输出一个完整的脉冲过程中,不论输入多少个启动信号,都只会输出一个脉冲
4、不论启动脉冲的宽度多大,输出的脉冲宽度恒定
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
***************************************************************************************/
module confirmpulse ( clk, reset, start, pulse, pulsewide );

 input clk, reset, start;
 input [7:0] pulsewide;
 output pulse;
 
 reg pulse;
 
 reg counten;
 reg [7:0] count;

 //计数器启动标记,表示一次延时计数开始
 always @ ( posedge clk )
 begin
 if ( reset == 'b0 )
  counten <= 'b0;
 else
  begin
  if ( start == 'b1 )
   counten <= 'b1;
  else if ( start == 'b0 && count > pulsewide )
   counten <= 'b0;
  end
 end
 
 //延时计数器,保证延时 pulsewide 个时钟周期
 always @ ( posedge clk )
 begin
 if ( reset == 'b0 )
  count <= 'b00000000;
 else
  begin
  if ( counten == 'b0 )
   count <= 'b00000000;
  else if ( counten == 'b1 && count <= pulsewide )
   count <= count + 1;
  else if ( counten == 'b0 && start == 'b0 )
   count <= 'b00000000;
  end
 end
 
 //输出定宽脉冲
 always @ ( negedge clk )
 begin
 if ( reset == 'b0 || count >= pulsewide )
  pulse <= 'b0;
 else if ( counten == 'b1 )
   pulse <= 'b1;
 end

endmodule

责任编辑:5life

更多相关 Verilog pulse 的文章

Verilog 电梯控制器设计 [2007-09-29]
Verilog学习心得 [2007-09-29]
Verilog交通灯控制器程序 [2007-09-29]
一种基于移位寄存器的CAM的Verilog HDL实现 [2007-09-29]
SPI串行总线接口的Verilog实现 [2007-09-29]
Verilog HDL代码描述对状态机综合的研究 [2007-09-29]
SDRAM控制器软核的Verilog设计 [2007-09-29]
Verilog语言综合问题研究 [2007-09-29]
仿真工作流程(Verilog/Modelsim+Debussy) [2007-05-14]
Verilog 的些许经验 [2006-09-05]
本文共有0条评论,现在显示最新的5条。

栏目导航

电路基础
硬件语言
逻辑验证
电路综合
后端设计
可测设计
基本逻辑
制造工艺
书籍精选
说文解字
工具学习
数字滤波
趣闻逸事
数字锁相
设计杂项
低耗设计

站点最新

更多相关链接

  Verilog 脉冲发生器程序
  Verilog 电梯控制器设计
  Verilog学习心得
  Verilog交通灯控制器程序
  一种基于移位寄存器的CA...
  SPI串行总线接口的Veril...
  Verilog HDL代码描述对状...
  SDRAM控制器软核的Veril...
  Verilog语言综合问题研究
  Verilog 的些许经验

栏目最新

更多相关链接

  Verilog 脉冲发生器程序
  Verilog 电梯控制器设计
  Verilog学习心得
  Verilog交通灯控制器程序
  一种基于移位寄存器的CA...
  SPI串行总线接口的Veril...
  Verilog HDL代码描述对状...
  SDRAM控制器软核的Veril...
  Verilog语言综合问题研究
  Verilog 的些许经验

热点文章

更多相关链接

  中文版Verilog HDL简明教程
  Verilog HDL的基础知识
  Verilog学习笔记(More)
  Verilog 的些许经验
  verilog HDL笔记
  Verilog设计经验点滴
  阻塞式赋值与非阻塞式赋值
  硬件描述语言(HDL)的基础知识...
  SDRAM控制器软核的Verilog设计
  一种基于移位寄存器的CAM的V...