当前位置: 首页 > news >正文

牛商营销型网站建设方案搜索引擎排名查询工具

牛商营销型网站建设方案,搜索引擎排名查询工具,成都网站关键字优化,政府网站建设评语今天的项目是在 Verilog HDL 中实现可编程数字延迟定时器。完整呈现了延迟定时器的 Verilog 代码。 所实现的数字延迟定时器是 CMOS IC LS7212,用于生成可编程延迟。延迟定时器的规格可以在这里轻松找到。基本上,延迟定时器有 4 种操作模式:…

今天的项目是在 Verilog HDL 中实现可编程数字延迟定时器。完整呈现了延迟定时器的 Verilog 代码。
在这里插入图片描述
所实现的数字延迟定时器是 CMOS IC LS7212,用于生成可编程延迟。延迟定时器的规格可以在这里轻松找到。基本上,延迟定时器有 4 种操作模式:一次性 (OS)、延迟操作 (DO)、延迟释放 (DR)、双延迟 (DD)。这四种模式将通过输入 mode_a 和 mode_b 选择。
在这里插入图片描述
wb[7:0] 输入用于根据延迟定时器规范中给定的方程对延迟进行编程。要了解更多它在每种模式下的工作原理以及输入如何控制延迟,请参阅其数据表。以下波形显示了每种模式下延迟的产生方式。

在这里插入图片描述
以下是可编程数字延迟定时器 LS7212 的 Verilog 代码。

//fpga4student.com: FPga projects, Verilog projects, VHDL projects// Verilog project: Verilog code for delay timer LS7212 module delay_timer_ls7212  (   input [7:0] wb, // weighting bits  input clk, // clock inputinput reset, // timer reset  input trigger, // trigger input  input mode_a, mode_b, // mode bits A and B  output reg delay_out_n // delay output, active low  );  reg[7:0] PULSE_WIDTH ;  reg [7:0] DELAY;  reg [7:0] TIMER=0;  reg trigger_sync_1=0,trigger_sync_2=0;  wire trigger_rising,trigger_falling;  reg timer_start=0,out_low=0;  wire timer_clear2,timer_clear3,timer_clear;  reg [1:0] mode;  reg reset_timer1=0,reset_timer2=0,reset_timer=0;  wire reset_timer3,reset_det;  reg reset_det1=0,reset_det2=0;  
//fpga4student.com: FPga projects, Verilog projects, VHDL projectsalways @(posedge clk)  begin  trigger_sync_1 <= trigger; // the first Flip-Flop  trigger_sync_2 <= trigger_sync_1;// the second Flip-Flop  reset_timer1 <= reset_timer;  reset_timer2 <= reset_timer1;  reset_det1 <= reset;  reset_det2 <= reset_det1;  end  // Identify the zero to one transitions on trigger signal  assign trigger_rising = trigger_sync_1 & (~trigger_sync_2);   assign trigger_falling = trigger_sync_2 & (~trigger_sync_1);   assign reset_timer3 = reset_timer1 & (~reset_timer2);  assign reset_det = reset_det2 & (~reset_det1);  // sample Mode and wb  always @(trigger_rising,trigger_falling,mode_a,mode_b,wb)  begin  if(trigger_falling == 1 || trigger_rising == 1) begin  PULSE_WIDTH = wb;  DELAY = (2*wb + 1)/2;  mode = {mode_a,mode_b};  end  end  // modes  always @(mode,reset,trigger_falling,trigger_rising,TIMER,reset,trigger,PULSE_WIDTH,DELAY,reset_det)  begin  case(mode)  2'b00: // One-Shot Mode  begin  if(reset) begin  out_low <= 0;  timer_start <= 0;  reset_timer <= 1;  end  else if(trigger_rising==1) begin  out_low <= 1;  timer_start <= 1;  reset_timer <= 1;  end  else if(TIMER>=PULSE_WIDTH) begin  out_low <= 0;  timer_start <= 0;  reset_timer <= 1;  end  end  2'b01: // Delayed Operate Mode  begin  if(reset) begin  out_low <= 0;  timer_start <= 0;  reset_timer <= 1;  end  else if(reset_det==1 && trigger==1) begin  timer_start <= 1;  reset_timer <= 0;  end  else if(trigger_rising==1) begin  timer_start <= 1;  reset_timer <= 0;  end  else if(trigger_falling==1 || trigger == 0) begin  out_low <= 0;  reset_timer <= 1;  timer_start <= 0;  end  else if(TIMER >= DELAY) begin  out_low <= 1;  timer_start <= 0;  reset_timer <= 1;  end  //else  //     reset_timer <= 0;  end       2'b10: // Delayed Release Mode  begin  if(reset) begin  out_low <= 0;  timer_start <= 0;  reset_timer <= 1;  end  else if(trigger_rising==1 || trigger == 1) begin  out_low <= 1;  end  else if(trigger_falling==1 ) begin  timer_start <= 1;  reset_timer <= 0;  end  else if(TIMER>=DELAY) begin  out_low <= 0;  timer_start <= 0;  reset_timer <= 1;  end  end       2'b11: // Delayed Dual Mode  begin  if(reset) begin  out_low <= 0;  timer_start <= 0;  reset_timer <= 1;  end  else if(reset_det==1 && trigger==1) begin  timer_start <= 1;  reset_timer <= 0;  end  else if(trigger_falling==1 || trigger_rising==1 ) begin  timer_start <= 1;  reset_timer <= 0;  end  else if(TIMER>=DELAY) begin  out_low <= trigger;  timer_start <= 0;  reset_timer <= 1;  end  end  endcase  end  
//fpga4student.com: FPga projects, Verilog projects, VHDL projects// timer  always @(posedge clk or posedge timer_clear)  begin  if(timer_clear)   TIMER <= 0;  else if(timer_start)  TIMER <= TIMER + 1;  end  assign timer_clear = reset_timer3 | trigger_rising == 1 | timer_clear3 ;  assign timer_clear2 = (trigger_rising == 1)|(trigger_falling == 1);  assign timer_clear3 = timer_clear2 & (mode == 2'b11);  //delay output  always @(posedge clk)  begin  if(out_low == 1)  delay_out_n <= 0;  else  delay_out_n <= 1;  end  endmodule  

延迟定时器的 Testbench Verilog 代码:

`timescale 1ns / 1ps  
//fpga4student.com: FPga projects, Verilog projects, VHDL projects
// Testbench Verilog code for delay timermodule tb_ls7212;  // Inputs  reg [7:0] wb;  reg clk;  reg reset;  reg trigger;  reg mode_a;  reg mode_b;  // Outputs  wire delay_out_n;  //fpga4student.com: FPga projects, Verilog projects, VHDL projects// Instantiate the Unit Under Test (UUT)  delay_timer_ls7212 uut (  .wb(wb),   .clk(clk),   .reset(reset),   .trigger(trigger),   .mode_a(mode_a),   .mode_b(mode_b),   .delay_out_n(delay_out_n)  );  initial begin  // Initialize Inputs  wb = 10;  mode_a = 0;  mode_b = 0;  reset = 0;  trigger = 0;  #500;  trigger = 1;  #15000;  trigger = 0;  #15000;  trigger = 1;  #2000;  trigger = 0;  #2000;  trigger = 1;       #2000;  trigger = 0;       #20000;  trigger = 1;            #30000;  trigger = 0;  #2000;  trigger = 1;  #2000;  trigger = 0;       #4000;  trigger = 1;       #10000;  reset = 1;  #10000;  reset = 0;  // Delay Operate  // Add stimulus here  end  initial begin   clk = 0;  forever #500 clk = ~clk;  end  endmodule  
//fpga4student.com: FPga projects, Verilog projects, VHDL projects

Verilog 中数字延迟定时器的仿真波形
One-Shot Mode
在这里插入图片描述

Delayed Operate Mode
delay timer in Verilog

Delayed Release Mode
delay timer in Verilog

Delay Dual Mode
delay timer in Verilog

可编程延迟定时器的 Verilog 代码是可综合的,并且可以在 FPGA 上实现。

http://www.hkea.cn/news/843425/

相关文章:

  • 哪家专门做特卖网站平台连接
  • 衢州网站推广最近发生的重大新闻
  • 网页设计的网站配色方案seo基础培训机构
  • 维护网站是什么工作淄博网站制作
  • 做电影下载网站成本淘宝关键词排名
  • 企业h5网站建设百度推广电话是多少
  • 中国保密在线网站培训系统软文怎么做
  • 山西住房城乡建设部网站整合网络营销是什么
  • 做美图网站有哪些东西吗个人博客seo
  • 南昌专业做网站公司竞价托管怎么做
  • 网站产品展示怎么做微信小程序建站
  • dw做网站的流程客户引流的最快方法是什么
  • 做网站app优惠活动的交换链接营销成功案例
  • 企业公示信息查询系统山西上海百度推广优化公司
  • 上海网站排名优化价格武汉百度快照优化排名
  • 做网站小程序如何做广告宣传与推广
  • 网站建设背景朝阳百度新闻网页
  • 专门做拼团的网站西安网站开发
  • 怎么看网站开发语言太原seo推广
  • 什么网站做宣传好新乡网站seo
  • 济南网站制作服务价格信息流优化师前景
  • 新手制作网站工具bt磁力猪
  • 怎么做网站系统深圳头条新闻
  • 北京网站设计公司新鸿儒seo公司的选上海百首网络
  • 百姓网二手拖拉机百度seo优化排名客服电话
  • 北京南站是丰台站吗seo优化什么意思
  • 外贸营销型建站关键词全网搜索工具
  • 有什么网站可以做扣扣头像腾讯企点app下载安装
  • 网站设计怎么做链接拉新推广怎么快速拉人
  • 怎么自己做礼品网站补肾壮阳吃什么药效果好