集大集成软件设计,电子钟设计
九、设计各个模块的功能: 1.second计时模块:
begin
process(clks,sets,ss) begin
if sets='1' then if ss=0 then qs<=qs; else qs<=ss; end if;
elsif(clks'event and clks='1') then if(qs=59) then qs<=0; clk1<='1';
elsif qs<59 then qs<=qs+1; clk1<='0'; end if; end if; end process;
当clk上升沿来临时,second模块开始从0计数到59,并输出一个控制信号clk1控制minute模块,此时clk1=1 ,并回到0然后循环计数,此时clk1=0。当需要设置时间时,即sets=‘1’,则把预定好的初值ss赋给输出信号qs。
2、minute模块
begin
process(clkmn,setmn,mns) begin
if setmn='1' then
if mns=0 then qmn<=qmn; else
qmn<=mns; end if;
elsif(clkmn'event and clkmn='1') then if(qmn=59) then qmn<=0; clk2<='1';
elsif qmn<59 then qmn<=qmn+1; clk2<='0'; end if;
当clk上升沿来临时,minute模块开始从0计数到59,并输出一个控制信号clk1控制minute模块,此时clk1=1 ,并回到0然后循环计数,此时clk1=0。当需要设置时间时,即setmn=‘1’,则把预定好的初值ss赋给中间信号qmn。