• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

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

07/15 08:03
252
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-240130152AX63.doc

共1个文件

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

软件:Quartus

语言:VHDL

代码功能:

可控脉冲发生器

一.目的

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

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

二.简单设计原理

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

三.课题内容

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

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

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

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

演示视频:

设计文档:

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;

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=639

  • 2-240130152AX63.doc
    下载

相关推荐