可控脉冲发生器VHDL代码Quartus仿真

名称:可控脉冲发生器VHDL代码Quartus仿真

软件:Quartus

语言:VHDL

代码功能:

可控脉冲发生器

一.目的

1.了解可控脉冲发生器的实现原理

2.学习用VHDL编写复杂功能的代码。

二.简单设计原理

脉冲发生器就是要产生一个脉冲波形,而可控脉冲发生器则是要产生一个周

期和占空比可变的脉冲波形。可控脉冲发生器的实现原理比较简单,可以理解为计数器对输入的时钟信号进行分频的过程。通过改变计数器的上限值来达到改变周期的目的,通过改变电平翻转的阈值来达到改变占空比的目的

三.课题内容

1.查找资料,理解设计原理

2.用VHDL语言设计可控脉冲发生器(周期和占空比由设计者自行设定)

3.在 Quartusll上完成设计输入、全程编译和功能仿真


FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com


演示视频:

设计文档:

设计文档.doc

1. 设计思路

采用1KHz的工作时钟,脉冲周期为0.5s~6s,占空比10%~90%。复位后初始周期为2.5s,占空比50%。

2. 工程文件

3. 程序文件

4. 程序编译

5. 仿真图

仿真设置

仿真图


部分代码展示:

LIBRARY ieee;
   USE ieee.std_logic_1164.all;
   USE ieee.std_logic_unsigned.all;
   USE ieee.std_logic_arith.all;
--周期,占空比均可调的脉冲发生器
ENTITY pulse_ctrl IS
   PORT (
      clk            : IN STD_LOGIC;--工作时钟1KHz,一周期1ms
      reset          : IN STD_LOGIC;--复位,用于初始化
      period_in      : IN STD_LOGIC_VECTOR(12 DOWNTO 0);--周期控制,0.5~6s--period对应500~6000
      Duty_cycle_in  : IN STD_LOGIC_VECTOR(6 DOWNTO 0);--占空比控制,10%~90%
      pulse_wave     : OUT STD_LOGIC--脉冲波输出
   );
END pulse_ctrl;
ARCHITECTURE behave OF pulse_ctrl IS
   
   SIGNAL period     : INTEGER;--周期控制,0.5~6s--period对应500~6000
   SIGNAL Duty_cycle : INTEGER;--占空比控制,10%~90%
   SIGNAL count      : INTEGER:= 0;
   SIGNAL high_cnt   : INTEGER;
BEGIN
   PROCESS (clk, reset)
   BEGIN
      IF (reset = '1') THEN--复位
         period <= 2500;--初始化周期为2.5s ,单位ms
         Duty_cycle <= 50;--初始化占空比50%
      ELSIF (clk'EVENT AND clk = '1') THEN
         period <= Conv_Integer(period_in);--转换为int类型
         Duty_cycle <= Conv_Integer(Duty_cycle_in);--转换为int类型
      END IF;
   END PROCESS;

代码文件(付费下载):



1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 可控脉冲发生器VHDL代码Quartus仿真

发表评论

模板文件不存在: ./template/plugins/comment/pc/index.htm

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员