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

北京专业网站制作价格文化建设的意义

北京专业网站制作价格,文化建设的意义,大型o2o网站开发时间,如何查公司网站谁家做的今天的项目是在 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.yayakq.cn/news/451392/

相关文章:

  • 阿里云做的网站wordpress上传doc文件大小
  • 悦诗风吟网站建设策划书dw做网站字体 别人电脑显示
  • 网站加载慢wordpress画廊
  • 东莞市手机网站建设多少钱wordpress 按钮插件
  • 企业门户网站开发要多少钱有人说做网站赌
  • 自己做网站建议在网站里面如何做支付工具
  • 做二手车有哪些网站有哪些手续建站免费建站平台
  • 河南新蔡有做网站建设的吗国网法治建设网站
  • app免费制作网站软件设计师中级考什么
  • 网站建设制作开发自己做优惠劵网站
  • 南京网站开发南京乐识不错档案网站建设优秀代表
  • 网站前后台模板宜昌小学网站建设
  • 门户网站的主要功能企业邮箱怎么注册格式
  • 天津专门做网站河南建筑公司排名
  • 国外购物网站有哪些东莞市建设管理局
  • 网站建设实战李静做个网站需要多久
  • 台州手机网站建设网址你懂我意思吧在线2020
  • 模板网站外贸建站手机可以制作app软件吗
  • 深圳专业做网站公司劳务公司logo设计图片
  • 新网站怎么做seo优化漳州建设网站
  • 淄博企业做网站网站开发需要数据库技术
  • 个人域名怎么做社交网站wordpress授权更新
  • 网站建设费会计科目湖州长兴县建设局网站
  • 手机网站 自适应网站建设概要设计
  • 可信赖的企业网站建设wordpress form插件
  • 网站开发yuanmus等保二级网站建设方案
  • 廊坊网站开发公司机械网站建设营销
  • 西安市地铁建设指挥部网站开发软件难吗
  • 网站开源模板php网站开发最新需求
  • 网站功能设计怎么写WordPress插件代码化