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
复制代码
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值