原创 VHDL 50%占空比奇数分频器之方法一,程序引发的器件资源消耗的问题与FPGA资源利用问题

2009-2-4 10:26 6125 8 8 分类: FPGA/CPLD

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;


entity fredivn1 is
 GENERIC(N:integer:=7); --可以是3,5,7,9,11,。。。
  port(clk:in std_logic;
    outclk:out std_logic);
end fredivn1;


architecture rtl of fredivn1 is
 signal count1,count2:integer range 0 to N;
 signal q,outclk1,outclk2:std_logic;
begin
 q<=outclk1 and outclk2;
    outclk<=q xor outclk1;
process(clk)
begin
 if(clk'event and clk='1') then
  if(count1=N-1) then
   count1<=0;
  else
   count1<=count1+1;
  if count1<(integer(N/2)) then
   outclk1<='0';
  else
   outclk1<='1';
  end if;
  end if;
 end if;
end process;


process(clk)
begin
 if(clk'event and clk='0') then
  if(count2=N-1) then
   count2<=0;
  else
   count2<=count2+1;
  if count2<(integer(N/2)) then
   outclk2<='1';
  else
   outclk2<='0';
  end if;
  end if;
 end if;
end process;


end rtl;


程序出自《CPLD/FPGA 常用模块与综合系统设计 实例精讲》 作者 罗苑棠


电子工业出版社


本人对程序中粗体字部分进行了修改 ,既


signal count1,count2:integer range 0 to N;


原书为signal count1,count2:integer ;


本人用Quartus II 发现如果 使用原书为signal count1,count2:integer ;则


count1,count2 默认生成32位长度,同时count1,count2自累加也是32位长度;消耗141个LE;仿真时间长度不够出来结果也是有问题;


如果改成signal count1,count2:integer range 0 to N;


如果改成signal count1,count2:integer :=0; 但是


count1,count2 默认生成32位长度,同时count1,count2自累加也是32位长度;消耗139个LE;仿真也正确;


所以大家在使用integer时,对数据进行范围限制;这样可可好的节约器件资源。。。


解决问题;


VHDL 50%占空比奇数分频器 总结:


1.对输入时钟上升沿进行计数,然后让一个内部信号在前一半时间里为低,后一半时间为高


  if count1<(integer(N/2)) then  --integer(N/2),这里的N=7;integer(N/2)=3,
   outclk1<='0';                        --当N<3输出0
  else
   outclk1<='1';                       --当N>=3输出1;


2.对输入时钟下降沿进行计数,然后让一个内部信号在前一半时间里为高,后一半时间为低


if count2<(integer(N/2)) then   --当N<3输出高
   outclk2<='1';
  else
   outclk2<='0';                     --当N>=3输出低


3.把1和2信号波形相与,得到一个半CLK周期的高电平信号


4.把3的信号与1的信号相异或就可得到占空比我1:1的7分频奇数分频时钟;


下面是modelsim 6.1g的仿真波形(3分频,50%占空比)


https://static.assets-stash.eet-china.com/album/old-resources/2009/2/4/13ce1ebb-0aff-4573-8131-cb1ff35e5c97.rar 里面是modelsim仿真波形图片在PDF里面


 


下面是图片,点击图片然后展开图片就可以了


点击开大图


仿真波形outclk有毛刺,实测输出来能良好,器件为EPM570T144C5,经24M 3 分频,8分频,50M 5分频,24.576M,3分频,8分频。70M 7分频效果良好。。。

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
8
关闭 站长推荐上一条 /3 下一条