以文本方式查看主題

-  曙海教育集團(tuán)論壇  (http://www.scb-ycwb.com/bbs/index.asp)
--  FPGA初中級(jí)  (http://www.scb-ycwb.com/bbs/list.asp?boardid=25)
----  FPGA 時(shí)鐘問(wèn)題  (http://www.scb-ycwb.com/bbs/dispbbs.asp?boardid=25&id=2775)

--  作者:wangxinxin
--  發(fā)布時(shí)間:2010-12-19 14:00:46
--  FPGA 時(shí)鐘問(wèn)題
剛學(xué)不久~

我要做24H製的時(shí)鐘~但我一直DEBUG~一直用不出來(lái)~

Xilinx ISE 8.2i軟體~

請(qǐng)會(huì)的人幫我看一下哪出錯(cuò)了~謝



library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;


---- Uncomment the following library declaration if instantiating

---- any Xilinx primitives in this code.

--library UNISIM;

--use UNISIM.VComponents.all;


entity CLOCK_00_60 is

    Port ( CLK : in  STD_LOGIC;

           RESET : in  STD_LOGIC;

           ENABLE : out  STD_LOGIC_VECTOR (6 downto 0);

           SEGMENT : out  STD_LOGIC_VECTOR (6 downto 0));

end CLOCK_00_60;


architecture Behavioral of CLOCK_00_60 is

signal SCAN_CLK :STD_LOGIC;

signal COUNT_CLK :STD_LOGIC;

signal DECODE_BCD :STD_LOGIC_VECTOR (3 downto 0);

signal mineable :STD_LOGIC;

signal hreable :STD_LOGIC;

signal POSITION:STD_LOGIC_VECTOR (6 downto 0);

signal DIVIDER:STD_LOGIC_VECTOR (29 downto 1);

signal COUNT_BCD:STD_LOGIC_VECTOR (23 downto 0);


begin

-------------------------------------------------

process (CLK,RESET)

begin

if RESET = \'0\' then

 DIVIDER <= ( others => \'0\');

elsif CLK\' event and CLK = \'1\' then

 DIVIDER <= DIVIDER + 1 ;

end if;

end process;

COUNT_CLK<=DIVIDER(24);

SCAN_CLK<=DIVIDER(15);

------------------------------------------------秒

process(RESET,SCAN_CLK)

begin

if RESET = \'0\' then

 COUNT_BCD <= ( others => \'0\');

elsif SCAN_CLK\' event and SCAN_CLK = \'1\' then

 if   COUNT_BCD(3 downto 0)= x"9" then

    COUNT_BCD(3 downto 0)<= x"0";

    COUNT_BCD(7 downto 4)<= COUNT_BCD(7 downto 4)+1;

 else

   COUNT_BCD(3 downto 0)<= COUNT_BCD(3 downto 0)+1;

 end if;

end if;

end process;

mineable <= \'1\' when COUNT_BCD(7 downto 0) = x"59" else \'0\';

----------------------------------------------------------分


process(RESET,SCAN_CLK)

begin

if RESET = \'0\' then

 COUNT_BCD <= ( others => \'0\');

 if mineable = \'1\' then

elsif SCAN_CLK\' event and SCAN_CLK = \'1\' then

 if   COUNT_BCD(11 downto 8)= x"9" then

    COUNT_BCD(11 downto 8)<= x"0";

    COUNT_BCD(15 downto 12)<= COUNT_BCD(15 downto 12)+1;

 else

   COUNT_BCD(11 downto 8)<= COUNT_BCD(11 downto 8)+1;

 end if;

end if;

end if;

end process;

hreable <= \'1\' when COUNT_BCD(15 downto 8) = x"59" else \'0\';

-------------------------------------------------------------時(shí)

process(RESET,SCAN_CLK)

begin

if RESET = \'0\' then

 COUNT_BCD <= ( others => \'0\');

  if mineable = \'1\' and hreable = \'1\' then

elsif SCAN_CLK\' event and SCAN_CLK = \'1\' then

 if   COUNT_BCD(19 downto 16)= x"9" then

    COUNT_BCD(19 downto 16)<= x"0";

    COUNT_BCD(23 downto 20)<= COUNT_BCD(23 downto 20)+1;

  if   COUNT_BCD(19 downto 16)= x"2" then

   COUNT_BCD(23 downto 20)<= x"0";

 else

   COUNT_BCD(19 downto 16)<= COUNT_BCD(19 downto 16)+1;

  end if;

 end if;

  end if;

end if;

end process;



process(RESET,SCAN_CLK)

begin

if RESET = \'0\' then

 POSITION <= "1111110";

elsif SCAN_CLK\' event and SCAN_CLK = \'1\' then

 POSITION<="111111"&POSITION(0);

end if;

end process;

ENABLE<=POSITION;

-----------------------------------------------------------

process(POSITION,SCAN_CLK)

begin

case POSITION is

 when "1111110" => DECODE_BCD <=COUNT_BCD(3 downto 0);    --秒

 when "1111101" => DECODE_BCD <=COUNT_BCD(7 downto 4);    --秒

 when "1111011" => DECODE_BCD <=COUNT_BCD(11 downto 8);   --分

 when "1110111" => DECODE_BCD <=COUNT_BCD(15 downto 12);   --分

   when "1101111" => DECODE_BCD <=COUNT_BCD(19 downto 16);   --時(shí)

   when "1011111" => DECODE_BCD <=COUNT_BCD(23 downto 20);   --時(shí)

 when others => null;

end case;

end process;

 

with DECODE_BCD Select

SEGMENT<= "1000000" when X"0",

  "1111001" when X"1",

  "0100100" when X"2",

  "0110000" when X"3",

  "0011001" when X"4",

  "0010010" when X"5",

  "0000010" when X"6",

  "1111000" when X"7",

  "0000000" when X"8",

  "0010000" when X"9",

  "1111111" when others;


end Behavioral;

主站蜘蛛池模板: 中文字幕在线播放视频 | 国产亚洲欧美在线播放网站| 波多野结衣不打码视频| 三上悠亚在线观看视频| 和桃子视频入口网址在线观看| 无限看片在线版免费视频大全| 麻豆精产国品一二三产品区| 久久精品男人影院| 国产成人a毛片在线| 日本高清不卡码| 自慰被室友看见强行嗯啊男男| 久久国内精品自在自线软件| 国产丝袜第一页| 女人扒开裤子让男人捅| 波多野结衣搜查官| 2021国产麻豆剧传媒官网| 亚洲专区区免费| 国产女王丨vk| 怡红院亚洲怡红院首页| 热久久最新视频| 1000部拍拍拍18勿入免费凤凰福利| 久久精品a亚洲国产v高清不卡| 国产传媒在线播放| 妲己丰满人熟妇大尺度人体艺| 欧美牲交a欧美牲交aⅴ图片| 国产一卡二卡四卡免费| 中文字幕yellow在线资源| 人妻av无码一区二区三区| 国产精品久久久久三级| 无码av天天av天天爽| 熟女性饥渴一区二区三区| 日本尤物精品视频在线看| 中文字幕免费观看| 亚洲成人第一页| 囯产精品一品二区三区| 国产麻豆剧果冻传媒免精品费网站| 星空无限传媒xk8046| 男操女视频网站| 高清破外女出血视频| avaaddamshdxxx| 久久九九久精品国产免费直播|