以文本方式查看主題

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

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

我要做24H製的時鐘~但我一直DEBUG~一直用不出來~

Xilinx ISE 8.2i軟體~

請會的人幫我看一下哪出錯了~謝



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\';

-------------------------------------------------------------時

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);   --時

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

 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;

主站蜘蛛池模板: 里番acg※里番acg本子全彩| 国产三级日产三级韩国三级| 亚洲精品午夜久久久伊人| www.毛片在线观看| 看看镜子里我是怎么c哭你的| 性欧美高清come| 农村乱人伦一区二区| 一本大道一卡2卡三卡4卡麻豆| 网友偷自拍原创区| 影音先锋男人站| 免费污污视频在线观看| www夜插内射视频网站| 狠狠色综合色区| 在总受文里抢主角攻np| 亚洲欧美日韩中文在线| 17女生主动让男生桶自己比| 欧美人体一区二区三区| 国产毛片久久久久久国产毛片| 九九视频在线观看视频23| 麻豆视传媒一区二区三区| 日本哺乳期xxxx| 喜欢老头吃我奶躁我的动图| 一级三级黄色片| 漂亮人妻被黑人久久精品| 国产综合色在线精品| 亚洲av永久无码一区二区三区| 国产福利你懂的| 无码吃奶揉捏奶头高潮视频| 又粗又硬又大又爽免费视频播放| 一二三四免费观看在线电影中文| 男女真实无遮挡xx00动态图120秒| 在线成年人视频| 亚洲一区二区三区免费视频| 香蕉视频在线看| 成人免费视频国产| 亚洲精品中文字幕乱码三区| 巨胸喷奶水www永久免费| 日本无遮挡h肉动漫在线观看下载| 啊灬啊别停灬用力视频啊视频| aaa毛片免费观看| 樱花草在线社区www|