eda¼¼Êõ¼°Ó¦ÓÿκóϰÌâ´ð°¸ ÏÂÔØ±¾ÎÄ

eda¼¼Êõ¼°Ó¦ÓÿκóϰÌâ´ð°¸

¡¾ÆªÒ»£ºeda¼¼ÊõʵÓý̳Ì(µÚËİæ)¡·Ï°Ìâ´ð°¸¡¿

ss=txt>1 ϰ Ìâ

1-1 eda¼¼ÊõÓëasicÉè¼ÆºÍfpga¿ª·¢ÓÐʲô¹ØÏµ£¿fpgaÔÚasicÉè¼ÆÖÐÓÐʲôÓÃ;£¿p3~4

1-2 ÓëÈí¼þÃèÊöÓïÑÔÏà±È£¬vhdlÓÐÊ²Ã´ÌØµã? p6

l-3 ʲôÊÇ×ÛºÏ?ÓÐÄÄЩÀàÐÍ?×ÛºÏÔÚµç×ÓÉè¼Æ×Ô¶¯»¯ÖеĵØÎ»ÊÇʲô? p5

1-4 ÔÚeda¼¼ÊõÖУ¬×Ô¶¥ÏòϵÄÉè¼Æ·½·¨µÄÖØÒªÒâÒåÊÇʲô? p7~10

1-5 ipÔÚeda¼¼ÊõµÄÓ¦Óúͷ¢Õ¹ÖеÄÒâÒåÊÇʲô? p22~14

1-6 ÐðÊöedaµÄfpga/cpldÉè¼ÆÁ÷³Ì£¬ÒÔ¼°Éæ¼°µÄeda¹¤¾ß¼°ÆäÔÚÕû¸öÁ÷³ÌÖеÄ×÷Óᣠ(p11~13) 2 ϰ Ìâ

2-1 olmc£¨Êä³öÂß¼­ºêµ¥Ôª£©Óкι¦ÄÜ?˵Ã÷galÊÇÔõÑùʵÏֿɱà³Ì×éºÏµç·ÓëʱÐòµç·µÄ¡£ p34~36

2-2 ʲôÊÇ»ùÓڳ˻ýÏîµÄ¿É±à³ÌÂß¼­½á¹¹? p33~34£¬40 ʲôÊÇ»ùÓÚ²éÕÒ±íµÄ¿É±à³ÌÂß¼­½á¹¹? p40~41

2-3 fpgaϵÁÐÆ÷¼þÖеÄlabÓкÎ×÷ÓÃ? p43~45 2-5 ½âÊͱà³ÌÓëÅäÖÃÕâÁ½¸ö¸ÅÄî¡£ p58

2-6 Çë²ÎÔÄÏà¹Ø×ÊÁÏ£¬²¢»Ø´ðÎÊÌ⣺°´±¾Õ¸ø³öµÄ¹éÀ෽ʽ£¬½«»ùÓڳ˻ýÏîµÄ¿É±à³ÌÂß¼­½á¹¹µÄpldÆ÷¼þ¹éÀàΪcpld£»½«»ùÓÚ²éÕÒ±íµÄ¿É±à³ÌÂß¼­½á¹¹µÄpldÆ÷ʲ¹éÀàΪfpga£¬ÄÇô£¬apexϵÁÐÊôÓÚʲôÀàÐÍpldÆ÷¼þ? max iiϵÁÐÓÖÊôÓÚʲôÀàÐ͵ÄpldÆ÷¼þ?Ϊʲô? p54~56 3 ϰ Ìâ

3-1 »­³öÓëÒÔÏÂʵÌåÃèÊö¶ÔÓ¦µÄÔ­Àíͼ·ûºÅÔª¼þ: entity buf3s is --ʵÌå1:Èý̬»º³åÆ÷ port(input:in std_logic; --ÊäÈë¶Ë enable:in std_logic; --ʹÄÜ¶Ë output:out std_logic); --Êä³ö¶Ë end buf3s ;

entity mux21 is --ʵÌå2: 2Ñ¡1¶à·ѡÔñÆ÷ port(in0, in1,sel: in std_logic;

output:out std_logic);

3-2 ͼ3-16ËùʾµÄÊÇ4Ñ¡1¶à·ѡÔñÆ÷,ÊÔ·Ö±ðÓÃif_thenÓï¾äºÍcaseÓï¾äµÄ±í´ï·½Ê½Ð´³ö´Ëµç·µÄvhdl³ÌÐò,Ñ¡Ôñ¿ØÖÆÐźÅs1ºÍ

s0µÄÊý¾ÝÀàÐÍΪstd_logic_vector;µ±s1=¡¯0¡¯,s0=¡¯0¡¯£»s1=¡¯0¡¯,s0=¡¯1¡¯£»s1=¡¯1¡¯,s0=¡¯0¡¯ºÍs1=¡¯1¡¯,s0=¡¯1¡¯Ê±,·Ö±ðÖ´ÐÐy=a¡¢y=b¡¢y=c¡¢y=d¡£ ͼ3-16 4Ñ¡1¶à·ѡÔñÆ÷

--½â1£ºÓÃif_thenÓï¾äʵÏÖ4Ñ¡1¶à·ѡÔñÆ÷ library ieee;

use ieee.std_logic_1164.all; entity mux41 is

port (a,b,c,d: in std_logic; s0:in std_logic; s1:in std_logic; y: out std_logic); end entity mux41;

architecture if_mux41 of mux41 is

signal s0s1 : std_logic_vector(1 downto 0);--¶¨Òå±ê×¼Âß¼­Î»Ê¸Á¿Êý¾Ý begin

s0s1=s1s0; --s1Ïಢs0,¼´s1Óës0²¢ÖòÙ×÷ process(s0s1,a,b,c,d) begin

if s0s1 = 00 then y = a;

elsif s0s1 = 01 then y = b; elsif s0s1 = 10 then y = c; else y = d; end if;

end process;

end architecture if_mux41;

--½â2£ºÓÃcaseÓï¾äʵÏÖ4Ñ¡1¶à·ѡÔñÆ÷ library ieee;

use ieee.std_logic_1164.all; entity mux41 is

port (a,b,c,d: in std_logic; s0:in std_logic; s1:in std_logic; y:out std_logic); end entity mux41;

architecture case_mux41 of mux41 is

signal s0s1 : std_logic_vector(1 downto 0);--¶¨Òå±ê×¼Âß¼­Î»Ê¸Á¿Êý¾ÝÀàÐÍ begin

s0s1=s1s0;--s1Ïಢs0,¼´s1Óës0²¢ÖòÙ×÷ process(s0s1,a,b,c,d) begin

case s0s1 is --ÀàËÆÓÚÕæÖµ±íµÄcaseÓï¾ä when 00 = y = a; when 01 = y = b; when 10 = y = c; when 11 = y = d; when others =null ; end case;

end process;

end architecture case_mux41;

3-3 ͼ3-17ËùʾµÄÊÇË«2Ñ¡1¶à·ѡÔñÆ÷¹¹³ÉµÄµç·muxk,¶ÔÓÚÆäÖÐmux21a,µ±s=¡¯0¡¯ºÍs=¡¯1¡¯Ê±,·Ö±ðÓÐy=¡®a¡¯ºÍy=¡¯b¡¯¡£ÊÔÔÚÒ»¸ö½á¹¹ÌåÖÐÓÃÁ½¸ö½ø³ÌÀ´±í´ï´Ëµç·,ÿ¸ö½ø³ÌÖÐÓÃcaseÓï¾äÃèÊöÒ»¸ö2Ñ¡1¶à·ѡÔñÆ÷mux21a¡£

ͼ3-17 º¬2Ñ¡1¶à·ѡÔñÆ÷µÄÄ£¿é

--½â£ºÓÃcaseÓï¾äʵÏÖͼ4-18ËùʾµÄÊÇË«2Ñ¡1¶à·ѡÔñÆ÷¹¹³ÉµÄµç·

library ieee;

use ieee.std_logic_1164.all; entity mux31 is

port(a1,a2,a3,s0,s1: in std_logic; outy:out std_logic); end entity mux31;

architecture case_mux31 of mux31 is signal y : std_logic; begin

u1: process(s0,a1,a2,a3) begin

case s0 is --ÀàËÆÓÚÕæÖµ±íµÄcaseÓï¾ä when 0 = y = a2; when 1 = y = a3; when others =null ; end case;

end process;

u2: process(s1,a1,a2,a3,y) begin

case s1 is --ÀàËÆÓÚÕæÖµ±íµÄcaseÓï¾ä when 0 = outy = a1; when 1 = outy = y; when others =null ; end case;

end process;

end architecture case_mux31;

3-4 ½«Àý3-20³ÌÐòµÄ¼ÆÊýÆ÷¸ÄΪʮ¶þ½øÖƼÆÊýÆ÷£¬³ÌÐòÓÃÀý3-21µÄ·½Ê½±íÊö£¬²¢ÇÒ½«¸´Î»rst¸ÄΪͬ²½ÇåÁã¿ØÖÆ£¬¼ÓÔØÐźÅload¸ÄΪÒì²½¿ØÖÆ·½Ê½¡£ÌÖÂÛÀý3-20ÓëÀý3-21µÄÒìͬµã¡£ --½â£ºÊ®¶þ½øÖƼÆÊýÆ÷vhdl³ÌÐòÉè¼Æ¡£ library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all; entity cnt12 is port(c

lk,rst,en,load : in std_logic;

data:in std_logic_vector(3 downto 0); --4λԤÖÃÊý dout : out std_logic_vector(3 downto 0);--¼ÆÊýÖµÊä³ö cout : out std_logic); --¼ÆÊý½øÎ»Êä³ö end cnt12;

architecture behav of cnt12 is

signal q : std_logic_vector(3 downto 0); begin

reg: process(clk,rst,en,load,q) begin

if load=0 then q=data;--ÔÊÐí¼ÓÔØ

elsif clkevent and clk=1 then --¼ì²âʱÖÓÉÏÉýÑØ if rst=0 then q=(others =0); --¼ÆÊýÆ÷Òì²½¸´Î» else

if en=1 then --¼ì²âÊÇ·ñÔÊÐí¼ÆÊý»ò¼ÓÔØ£¨Í¬²½Ê¹ÄÜ£© if load=0 then q=data;--ÔÊÐí¼ÓÔØ else

if q12 then q=q+1; --ÔÊÐí¼ÆÊý,¼ì²âÊÇ·ñСÓÚ9 else q=(others=0); --´óÓÚµÈÓÚ9ʱ£¬¼ÆÊýÖµÇåÁã end if;