PIC单片机及FPGA实验系统设计 第28页
时序仿真:
附录(十九):
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity fenpin is
port(clk : in std_logic;
clk_div2 : out std_logic;
clk_div4 : out std_logic;
clk_div8 : out std_logic;
clk_div16 : out std_logic);
end fenpin;
architecture rtl of fenpin is
signal count : std_logic_vector(3 downto 0);
begin
process(clk)
begin
if clk'event and clk='1' then
if count="1111" then
count<="0000";
else
count<=count+1;
end if;
end if;
end process;
clk_div2<=count(0);
clk_div4<=count(1);
clk_div8<=count(2);
clk_div16<=count(3);
end rtl;
附录(二十)
功能仿真:
时序仿真:
附录(二十一):
--前面两个分频器的例子描述的将时钟信号进行分频,
--分频后得到的时钟信号的占空比为 1 : 1 。
--在进行硬件设计的时候,往往要求得到一个占空比不是 1 : 1 的分频信号,
--这时仍采用计数器的方法来产生占空比不是 1 : 1 的分频信号。
--下面源代码描述的是这样一个分频器:将输入的时钟信号进行 16 分频,
--分频信号的占空比为 1 : 15 ,也就是说,其中高电位的脉冲宽度为输入时--钟信号的一个周期。
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity fenpin2 is
port(clk : in std_logic;
clk_div16 : out std_logic);
end fenpin2;
architecture rtl of fenpin2 is
signal count : std_logic_vector(3 downto 0);
begin
process(clk)
begin
if clk'event and clk='1' then
if count="1111" then
count<="0000";
else
count<=count+1;
end if;
end if;
end process;
process(clk)
begin
if clk'event and clk='1' then
if count="1111" then
Clk_div16<='1';
else
Clk_div16<='0';
end if;
end if;
end process;
end rtl;
附录(二十二):
功能仿真:时序仿真
<< 上一页 [21] [22] [23] [24] [25] [26] [27] [28]
PIC单片机及FPGA实验系统设计 第28页下载如图片无法显示或论文不完整,请联系qq752018766