差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
脉冲发生器 [2016/06/14 14:35]
anran [参考文档]
脉冲发生器 [2021/09/13 10:56]
gongyu 移除
行 24: 行 24:
 脉冲发生一般通过对一个高频的脉冲信号进行分频来生成。 脉冲发生一般通过对一个高频的脉冲信号进行分频来生成。
  
-分频比:指方波的周期和高频信号手气之间发的比例关系,通过控制分频比来生成不同频率的方波。例如,开发系统上的时钟频率是25MHz,如果要生成5MHz的方波,则分频比为5。+分频比:指方波的周期和高频信号周期之间发的比例关系,通过控制分频比来生成不同频率的方波。例如,开发系统上的时钟频率是25MHz,如果要生成5MHz的方波,则分频比为5。
  
  
行 62: 行 62:
 </​code>​ </​code>​
  
-本设计中我们用到三个按键作为输入,需要对按键输入做消抖处理,消抖模块的原理及设计请参考[[按键消抖]]设计,这里我们以key_menu消抖为例调用按键消抖模块,如下:+本设计中我们用到三个按键作为输入,需要对按键输入做消抖处理,消抖模块的原理及设计请参考[[按键消抖]]设计,这里我们增加了按键输入信号位宽,同时对三路按键输入做消抖处理  ​,如下:
  
 <code verilog> <code verilog>
-//Debounce for key_menu +//Debounce for key 
-Debounce Debounce_menu(.clk(clk_in),​.rst_n(rst_n_in),​.key_n(key_menu),​.key_state(menu_state)); +wire [2:0] key_state,​key_pulse;​ 
 +Debounce1 Debounce_uut 
 +( 
 +.clk(clk_in),​ 
 +.rst_n(rst_n_in),​ 
 +.key_n({key_menu,​key_up,​key_down}), 
 +.key_state(key_state)
 +.key_pulse(key_pulse) 
 +);  
 + 
 +wire menu_state = key_state[0];​ 
 +wire up_pulse = key_pulse[1];​ 
 +wire down_pulse = key_pulse[2];
 </​code>​ </​code>​
  
-对三路按键做消抖后的信号可以实现周期和脉宽的控制,本设计中我们的分频比范围为2~16分级可调,0%<​脉宽<​100%分级可调,控制脉宽参数duty要始终小于周期参数cycle,实现方法如下:+对三路按键做消抖后的信号可以实现周期和脉宽的控制,本设计中我们的分频比范围为2~16分级可调,0%<​脉宽<​100%分级可调,控制脉宽参数duty要始终小于周期参数cycle, 
 +{{ ::​脉冲发生器原理.jpg |脉冲发生器原理}} 
 +实现方法如下:
  
 <code verilog> <code verilog>
行 128: 行 142:
  
 ^ 资源 | 数量 ​ | 比例 ​ | 说明 ​ | ^ 资源 | 数量 ​ | 比例 ​ | 说明 ​ |
-^ LUTs | 61   | 10  ​|   |  +^ LUTs | 65   | 5   |   |  
-^ 寄存器 | 80    ​| ​5% |   |+^ 寄存器 | 42    ​| ​3% |   |
 ^ 存储器 | 0  | 0%   ​| ​   | ^ 存储器 | 0  | 0%   ​| ​   |
 ^ IO管脚 ​  | 7 |   ​| ​   | ^ IO管脚 ​  | 7 |   ​| ​   |
行 142: 行 156:
  
 ====参考文档==== ====参考文档====
-  * {{:​machxo2familydatasheet.pdf|Lattice MachXO2数据手册}} 
   * [[按键消抖]]   * [[按键消抖]]
 +  * {{:​machxo2familydatasheet.pdf|Lattice MachXO2数据手册}}
 +
    
  
行 149: 行 164:
  
 ^ **文件名称** ​ | **功能** | ^ **文件名称** ​ | **功能** |
-^ **[[Serial_Detect.v]]** | **流水灯** | +^ **[[Pulse_gen.v]]** | **脉冲发生器TOP文件** | 
-^ **[[Serial_Detect_test.v]]** | **测试文件** |+^ **[[Debounce1.v]]** | **按键消抖** |