电子科技大学现代电子技术综合实验考试(2012.9)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

考试要求输出如下图led1,led2,led3信号。

已知FPGA的外部晶振48M,led1的信号0.5Hz。

分析:led2,led3信号是0.5Hz信号的三分频,占空比都是5/6,为了方便分频,把48M信号先分频得到1Hz信号,如上图clk1hz。

由1Hz信号2分频得到0.5Hz信号,1Hz信号6分频得到1/6Hz信号(0.5Hz信号的三分频)。

给6个状态赋值,实现5/6的占空比。

难点:本次考试只给出上图led1,led2,led3的波形,很容易想到把48M分频得到0.5Hz,再由0.5Hz得到led2和led3,这样就不可避免要去数0.5Hz信号的上升沿和下降沿,导致程序复杂,容易出错。

附本题VHDL程序
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity led is
Port ( clk : in STD_LOGIC:='0';
led1 : out STD_LOGIC;
led2 : out STD_LOGIC;
led3 : out STD_LOGIC);
end led;
architecture Behavioral of led is
signal clk1hz:std_logic:='0';
signal led1_reg:std_logic:='0';
signal cnt1:integer range 0 to 5:=0;
begin
process(clk)
variable cnt:integer range 1 to 24000000:=1;
begin
if rising_edge(clk) then
if cnt=24000000 then cnt:=1;clk1hz<=not clk1hz;
else cnt:=cnt+1;
end if;
end if;
end process;
process(clk1hz)
begin
if falling_edge(clk1hz) then
led1_reg<=not led1_reg;
if cnt1=5 then cnt1<=0;
else cnt1<=cnt1+1;
end if;
end if;
end process;
led1<=led1_reg;
led2<='0' when cnt1=5 else '1'; led3<='0' when cnt1=0 else '1'; end Behavioral;。

相关文档
最新文档