原创 FPGA学习之时序逻辑设计范例

2011-2-26 18:56 1727 9 9 分类: FPGA/CPLD

前面介绍了触发器的设计,下面介绍常用的时序逻辑电路设计范例:

序列信号发生器:(VHDL

序列信号发生器是指在系统时钟的作用下面能够循环产生一组或者多组序列信号的电路。下面的代码设计在系统时钟下面产生序列信号“10110001”。

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity xl_generate is

port(clk: in std_logic;

      clr: in std_logic;

      dout: out std_logic);

end;

architecture one of xl_generate is

      signal reg: std_logic_vector(7 downto 0);

begin

process(clk,clr)

begin

      if clk'event and clk='1' then

           if clr='1' then

                 dout<='0';

                 reg<="10110001";

           else

                 dout<=reg(7);

                 reg<=reg(6 downto 0)&reg(7);

           end if;

      end if;

end process;

end;

 

分频器:在数字电路中,分频器是一种应用十分广泛的电路,器功能是对较高频率的信号进行分频。通常来说,分频器常常用来对数字电路中的时钟信号进行分频,用以得到较低频率的时钟信号、选通信号、中断信号等。(VHDL)

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity div248 is

port(clk: in std_logic;

      div2: out std_logic;

      div4: out std_logic;

      div8: out std_logic);

end;

architecture one of div248 is

      signal cnt: std_logic_vector(2 downto 0);

begin

process(clk)

begin

      if clk'event and clk='1' then

           cnt<=cnt+1;

      end if;

end process;

div2<=cnt(0);

div4<=cnt(1);

div8<=cnt(2);

end;

 

 

参考资料:《基于Quartsu IIFPGA/CPLD数字系统设计实例》

          周润景图雅张丽敏  编著


PARTNER CONTENT

文章评论0条评论)

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