差别

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

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
book_excise_pulse_generator [2020/11/01 14:24]
gongyu
book_excise_pulse_generator [2021/08/17 16:50] (当前版本)
zili
行 1: 行 1:
-### 脉冲发生器实验+## 脉冲发生器实验
  
-#### 1. 实验内容 +### 1. 实验内容 
-本实验设计一个可变频率和可变占空比的方波,要求可以通过控制按键和开关来改变方波的频率和占空比,开关控制要求表71如所示。+本实验设计一个可变频率和可变占空比的方波,要求可以通过控制按键和开关来改变方波的频率和占空比,开关控制要求表7-1如所示。\\ 
 +<WRAP centeralign>​ 
 +**表7 1  脉冲发生器开关控制要求** 
 +</​WRAP>​
 |SW3 SW2 SW1|频率| |SW3 SW2 SW1|频率|
 |000|2分频,50/​2 MHz| |000|2分频,50/​2 MHz|
行 16: 行 19:
 |1|0|1:8| |1|0|1:8|
 |1|1|3:8| |1|1|3:8|
 +\\
 +\\
 +### 2. 实验原理
 +首先介绍占空比的概念,占空比指在一串理想的脉冲序列中,正脉冲的持续时间与脉冲总周期的比值。在图72所示的波形中,占空比等于t/​T。例如,脉冲宽度10μs,信号周期40μs的脉冲序列占空比为0.25。\\
 +{{ :​图7-2_占空比的定义.png |图7-2 ​ 占空比的定义}}
 +<WRAP centeralign>​
 +图7-2 ​ 占空比的定义
 +</​WRAP>​
  
  
-#### 2. 验原理 +方波一般通过对一个高频的脉冲信号进行分频来生成。分频比指方波的周期和高频信号周期之间的比例关系,通过控制分频比来现不同频率的方波。例如,开发系统上的时钟是50MHz,​如果要生成10MHz的方波,则分频为5。根据输入时钟及要输出方波的频率计算出分频比通过计数器的值来控制输出方波的频率。对于一定频率的方波,通过另一个计数器来控制占空比。例如,时钟是50MHz,要求生成频率为10MHz,占空比为1/​5方波,那么分频比为5,方波的周期为5个时钟周期,正脉冲的持续时间为1个时钟周期(图7-3) 
-首先介绍占空比的概念,占空比指在串理想脉冲序列中,正脉冲的持续时间与脉冲总周期的比值图72所示的波形中,占空比等于t/T。例如,脉冲宽度10μs,信号周期40μs脉冲序列占空比为0.25。+{{ :图7-3.png |图7-3 ​ 频率为10MHz,占空比为1/5方波}} 
 +<WRAP centeralign>​ 
 +图7-3 ​ 频率为10MHz,占空比为1/​5的方波 
 +</​WRAP>​
  
-图72 ​ 占空比的定义 +\\ 
- +\\ 
-方波一般通过对一个高频的脉冲信号进行分频来生成。分频比指方波的周期和高频信号周期之间的比例关系,通过控制分频比来实现不同频率的方波。例如,开发系统上的时钟是50MHz,​如果要生成10MHz的方波,则分频比为5。根据输入时钟及要输出的方波的频率计算出分频比,通过计数器的值来控制输出方波的频率。对于一定频率的方波,通过另一个计数器来控制占空比。例如,时钟是50MHz,要求生成一频率为10MHz,占空比为1/​5的方波,那么分频比为5,方波的周期为5个时钟周期,正脉冲的持续时间为1个时钟周期(图73)。 +### 3. 程序设计
- +
-图73 ​ 频率为10MHz,占空比为1/​5的方波 +
- +
-#### 3. 程序设计+
 输入输出信号 输入输出信号
 程序有4个输入信号和1个输出信号: 程序有4个输入信号和1个输出信号:
-input clk,​reset;​ //​时钟和复位信号,时钟为50MHz。 +<code verilog>​ 
-input [4:​0]I1;​ //​SW5、SW4、SW3、SW2和SW1输入,用于控制分频比。 +input clk,​reset;​ //​时钟和复位信号,时钟为50MHz。 
-input [2:​0]I2;​ //​SW8、SW7和SW6输入,用于控制占空比。 +input [4:​0]I1;​ //​SW5、SW4、SW3、SW2和SW1输入,用于控制分频比。 
-output clkout;​ //​方波输出。+input [2:​0]I2;​ //​SW8、SW7和SW6输入,用于控制占空比。 
 +output clkout;​ //​方波输出。 
 +</​code>​ 
 主要寄存器 主要寄存器
 +<code verilog>
 Division:分频比。根据SW5到SW1来决定分频比: Division:分频比。根据SW5到SW1来决定分频比:
 always @* begin always @* begin
行 46: 行 60:
 endcase endcase
  end   end
 +</​code>​
 pulse: 正脉冲的时钟周期数,根据占空比决定正脉冲时钟周期数: pulse: 正脉冲的时钟周期数,根据占空比决定正脉冲时钟周期数:
-正脉冲时钟周期数=分频比*占空比+正脉冲时钟周期数 = 分频比 * 占空比 
 + 
 +<code verilog>
 always @* begin always @* begin
  case( I2 )  case( I2 )
行 54: 行 71:
  3'​b011:​ pulse = division*3/​8; ​ // 占空比:3/​8  3'​b011:​ pulse = division*3/​8; ​ // 占空比:3/​8
  default: pulse = division/​2; ​  // 占空比:1/​2   default: pulse = division/​2; ​  // 占空比:1/​2
-endcase +                ​endcase 
- end+end 
 +</​code>​ 
 3)方波生成 3)方波生成
 +<code verilog>
 always @ (posedge clk or negedge reset) begin always @ (posedge clk or negedge reset) begin
  if( !reset ) begin // 复位  if( !reset ) begin // 复位
行 71: 行 91:
  clkout <= 1; // 当counter为0时,输出信号为1。  clkout <= 1; // 当counter为0时,输出信号为1。
  else if ( count >= pulse )  else if ( count >= pulse )
- clkout <= 0; // 当counter大于正脉冲时周期数时, + clkout <= 0; // 当counter大于正脉冲时周期数时,输出信号为0。
-//输出信号为0。 +
  end  end
- end  + end 
 +</​code>​  
 +
 从上述代码可以看出,正脉冲的宽度至少为一个时钟周期。如果分频比为2,占空比为1/​4,​则正脉冲时钟周期为2×1/​4=1/​2,非整数时钟周期脉冲宽度是无法实现,所以正脉冲时钟周期数为1。 从上述代码可以看出,正脉冲的宽度至少为一个时钟周期。如果分频比为2,占空比为1/​4,​则正脉冲时钟周期为2×1/​4=1/​2,非整数时钟周期脉冲宽度是无法实现,所以正脉冲时钟周期数为1。
 +\\
 +\\
 +### 4. 仿真结果
 +用Modelsim对程序进行仿真,仿真文件为test_pulse.v。图 74为仿真结果,Squ_wave为输出方波。I=000时,占空比为1/​2;dvd=00000时,分频比为2;dvd=00001时,分频比为4。\\
 +{{ :图7-4.png |图 7-4 方波发生器仿真结果}}  ​
 +<WRAP centeralign>​
 +图 7-4 方波发生器仿真结果
 +</​WRAP>​
  
 +把程序下载到开发系统上,用SignalTap逻辑分析仪观察输出的波形。I1和I2分别控制分频比和占空比,Clkout为方波输出。图75为当分频比为16、占空比为1/​4是的方波输出结果。\\
 +{{ :图7-5.png |图7-5 ​ 分频比为16,占空比为1/​4时的方波输出}}
 +<WRAP centeralign>​
 +图7-5 ​ 分频比为16,占空比为1/​4时的方波输出
 +</​WRAP>​
 +图7-6为当分频比为16、占空比为3/​8时的方波输出结果。
 +{{ :图7-6.png |图7-6 ​ 分频比为16,占空比为1/​4时的方波输出}}
 +<WRAP centeralign>​
 +图7-6 ​ 分频比为16,占空比为1/​4时的方波输出
 +</​WRAP>​
  
-#### 4. 仿真结果 +\\ 
-用Modelsim对程序进行仿真,仿真文件为test_pulse.v。图 74为仿真结果,Squ_wave为输出方波。I=000时,占空比为1/​2;dvd=00000时,分频比为2;dvd=00001时,分频比为4。 +\\ 
- +### 5. 演示程序文件说明
-图 74  方波发生器仿真结果 +
-把程序下载到开发系统上,用SignalTap逻辑分析仪观察输出的波形。I1和I2分别控制分频比和占空比,Clkout为方波输出。图75为当分频比为16、占空比为1/​4是的方波输出结果。 +
- +
-图75 ​ 分频比为16,占空比为1/​4时的方波输出 +
-图76为当分频比为16、占空比为3/​8时的方波输出结果。 +
- +
-图76 ​ 分频比为16,占空比为1/​4时的方波输出 +
- +
- +
-#### 5. 演示程序文件说明+
 |文件名|功能| |文件名|功能|
-|Pulse_gen.v|主程序| +|PulseGen.v|主程序| 
-|Test_pulse.v|Modelsim仿真程序| +|TestPulse.v|Modelsim仿真程序| 
-|Pulsesim.mpf|ModelSim仿真工程| +|PulseSim.mpf|ModelSim仿真工程| 
- +\\ 
- +\\ 
-#### 6. 演示程序使用 +### 6. 演示程序使用 
-演示设备:核心网、扩展板。 +  演示设备:核心网、扩展板。 
-演示方法:把程序下载到开发系统上后,由扩展板的{SW3,​SW2,​SW1}控制分频比,{SW7,​SW6}控制占空比,通过SignalTap观测输出。核心板上的reset键为复位键。+  演示方法:把程序下载到开发系统上后,由扩展板的{SW3,​SW2,​SW1}控制分频比,{SW7,​SW6}控制占空比,通过SignalTap观测输出。核心板上的reset键为复位键。 
 +\\ 
 +\\