• 【连载】 FPGA Verilog HDL 系列实例序列信号发生器


    【连载】 FPGA Verilog HDL 系列实例  

    Verilog HDL 之 序列信号发生器

    一、原理

      在数字电路中, 序列信号是指在同步脉冲作用下循环地产生一串周期性的二进制信号.能产生这种信号的逻辑器件就称为序列信号发生器.根据结构不同,它可分为反馈移位型和计数型两种。
    移位型序列信号发生器是由移位寄存器和组合电路两部分构成,组合电路的输出,作为移位寄存器的串行输入。
      计数型序列信号发生器能产生多组序列信号,这是移位型发生器所没有的功能.计数型序列信号发生器是由计数器和组合电路构成的。
      本实验的目的就是设计一个序列信号发生器。设计产生序列11100100、11100100、···的计数型序列信号发生器电路。

    二、实现

    在设计文件中输入Verilog代码

     防抖模块

     1  /****************************** 分频模块  *************************************/
    2
    3 `timescale 1 ns / 1 ps
    4 module qu_dou ( clk ,rst , a ,b );
    5
    6 input clk ;
    7 wire clk ;
    8 input rst ;
    9 input a ;
    10 wire a ;
    11
    12 output b ;
    13 reg b ;
    14
    15 reg [31:0] cnt ;
    16 reg clkout ;
    17 always @ ( posedge clk or negedge rst )
    18 begin
    19 if ( rst == 1'b0 )
    20 cnt <= 0 ;
    21 else begin if ( a==1'b1 ) begin
    22 if ( cnt >= 32'd3000000 )
    23 b <= 1 ;
    24 else
    25 cnt <= cnt + 1'b1 ;
    26
    27 end
    28 else begin b <= 1'b0 ;
    29 cnt <= 0 ;
    30 end
    31 end
    32 end
    33
    34
    35 endmodule

    功能实现

     1  `timescale 1 ns / 1 ps
    2
    3 module xlgen ( Q ,clk ,res ,rst ,sysclk );
    4
    5 input clk ;
    6 wire clk ;
    7 input res ;
    8 wire res ;
    9 input sysclk ;
    10 input rst ;
    11
    12 output Q ;
    13 reg Q ;
    14 reg [7:0] Q_r ;
    15
    16 /***************** 例化去抖模块 *************************************/
    17 wire clk_r ;
    18 qu_dou qu_dou (
    19 .clk (sysclk) ,
    20 .rst (rst) ,
    21 .a (clk),
    22 .b (clk_r));
    23
    24 //********************************************************************
    25
    26 always @( posedge clk_r or posedge res)
    27 begin
    28
    29 if (res ==1) begin
    30 Q <= 1'b0;
    31 Q_r <= 8'b11100100 ;
    32 end
    33 else
    34 begin
    35 Q <= Q_r[7];
    36 Q_r <= Q_r<<1;
    37 Q_r[0] <=Q;
    38 end
    39 end
    40
    41 endmodule

     

     

     

  • 相关阅读:
    家目录,Linux常用命令概述
    Day003_Linux基础——系统目录结构
    Day002_LInux基础_常用命令_001
    Day002_LInux基础_常用命令
    Linux_Day001-002章常用命令
    Linux基础Day001-001章
    pycharm单行及多行注释快捷键
    配置ospf的路由器连通配置静态路由的路由器
    python--闭包
    主机数和可用主机数计算
  • 原文地址:https://www.cnblogs.com/kongtiao/p/2151957.html
Copyright © 2020-2023  润新知