PWM控制电路基本原理与FPGA (2)
2009-01-09 15:28:03 作者:殷文春, 袁继侠, 高慧斌, 来源:国外电子元器件
2 电路设计
本设计采用的是Lattice半导体公司推出的is-plever开发平台,该开发平台定位于复杂设计的简单工具.它采用简明的设计流程并完整地集成了Leonardo Spectrum的VHDL综合工具和ispVMTM系统,因此,无须第三方设计工具便可完成整个设计流程.在原理设计方面,本设计采用自顶向下、层次化、模块化的设计思想,这种设计思想的优点是符合人们先抽象后具体,先整体后局部的思维习惯.其设计出的模块修改方便,不影响其它模块,且可重复使用,利用率高.本文仅就原理图中的I12计数器模块和I11延迟模块进行讨论.
计数器模块的VHDL程序设计如下:
entity counter is
port(clk: in std logic;
Q : out std logic vector(7 downto 0);
cao: out std_logic);
end counter;
architecture a_counter of counter is
signal Qs: std_logic_vector(7 downto 0);
signal reset: std_logic;
signal caolock: std_logic;
begin
process(clk,reset)
begin
if(reset=‘1)then
Qs<=“00000000”;
elsif clkevent and clk=‘1 then
Qs<=Qs+‘1;
end if;
end process;
reset<=‘1 when Qs=255 else
‘0;
caolock<=‘1 when Qs=0 else
‘0;
Q<=Qs;
cao<=reset or caolock;
end a_counter;
在原理图中,延迟模块必不可少,其功能是对PWM波形的上升沿进行延时,而不影响下降沿,从而确保桥路同侧不会发生短路.其模块的VHDL程序如下:
entity delay is
port(clk: in std_logic;
input: in std_logic_vector(1 downto 0);
output:out std_logic_vector(1 downto 0)
end delay;
architecture a_delay of delay is
signal Q1,Q2,Q3,Q4: std_logic;
begin
process(clk)
begin
if clkevent and clk=‘1 then
Q3<=Q2;
Q2<=Q1;
Q1<=input(1);
end if;
end process;
Q4<=not Q3;
output(1)<=input(1)and Q3;
output(0)<=input(0)and Q4;
end a_delay;
3 结束语
采用可编程逻辑器件和硬件描述语言,同时利用其供应商提供的开发工具可大大缩短数字系统的设计时间,节约新产品的开发成本,另外,还具有设计灵活,集成度高,可靠性好,抗干能力强等特点.本文设计的PWM控制电路用于某光测设备的传动装置时,取得了良好的效果.

[
1]
[2] 
- 相关阅读
- 赛灵思隆重发布嵌入式FPGA程序员双认证项目
2012-01-12
- 赛灵思 7 系列 FPGA 强大系统集成能力
2012-01-06
- 基于FPGA的行间转移面阵CCD驱动电路设计
2011-12-28
- 基于FPGA的AMLCD控制器的设计
2011-12-28
- 基于FPGA的8PSK软解调的研究与实现
2011-12-27
- 基于FPGA的宽带数字信道化接收机的设计
2011-12-27
- 基于FPGA的智能仪器远程控制系统设计
2011-12-27
- 一种基于FPGA的无线射频读卡器开发与设计
2011-12-27
- 简述DDS原理及其基于FPGA的实现
2011-12-27
- 基于FPGA与RS422的MⅢ总线转换板的设计与实现
2011-12-27
- 基于FPGA与RS422的MⅢ总线转换板的设计与实现
2011-12-27
- 编辑:冀凯
- 本文引用地址: http://www.eeworld.com.cn/FPGA/2009/0109/article_427.html
- [发表评论]
- [加入收藏]
- [告诉好友]
- [打印本页]
- [关闭窗口]
- [返回顶部]
- [RSS订阅]