Digitala it elektroniksystem t Professor Per Larsson-Edefors perla@chalmers.se Digital- och datorteknik, 101122, Per Larsson-Edefors Sida 1
Introduktion Konstruktionsalternativ Kretskort med diskreta standardkomponenter. Utvecklingskostnad och prestanda låga. Rekonfigurerbara kretsar. Utvecklingskostnad och prestanda medelhöga. Applikationsspecifika kretsar. Utvecklingskostnad och prestanda höga -> stora serier. Hög integration (System på kisel), digitalt och analogt. Digital- och datorteknik, 101122, Per Larsson-Edefors Sida 2
Introduktion Moderkort med processor Digital- och datorteknik, 101122, Per Larsson-Edefors Sida 3
Introduktion Processorn hjärnan i systemen Digital- och datorteknik, 101122, Per Larsson-Edefors Sida 4
Introduktion 45-nm X4 i7-2008 Source: Intel Digital- och datorteknik, 101122, Per Larsson-Edefors Sida 5
Introduktion 65-nm SOI X4 Phenom - 2008 Source: AMD Digital- och datorteknik, 101122, Per Larsson-Edefors Sida 6
Introduktion FlexCore en Chalmersprocessor Digital- och datorteknik, 101122, Per Larsson-Edefors Sida 7
Introduktion Utbyggbar processor Digital- och datorteknik, 101122, Per Larsson-Edefors Sida 8
Introduktion FlexCore-chip Digital- och datorteknik, 101122, Per Larsson-Edefors Sida 9
Konstruktion av digital hårdvara Hårdvarubeskrivande språk: Ett mjukvaruliknande språk som beskriver hårdvaran funktionellt/logiskt. VHDL, Verilog, etc. Konstruktionsmetodik Låt oss bygga en ALU Digital- och datorteknik, 101122, Per Larsson-Edefors Sida 10
Konstruktionsmetodik Specifikation 0000: Signed add A B Add 0101: A OR B Op Logic Outs Clk Reset Shift Skift-operationer Digital- och datorteknik, 101122, Per Larsson-Edefors Sida 11
Konstruktionsmetodik In- och utregister Inregister ALU Utregister Digital- och datorteknik, 101122, Per Larsson-Edefors Sida 12
Konstruktionsmetodik VHDL öppna ALUns portar entity ALU is port(clk : in std_logic; Reset : in std_logic; A : in std_logic_vector(31 downto 0); B : in std_logic_vector(31 downto 0); Op : in std_logic_vector(3 downto 0); Outs : out std_logic_vector(31 downto 0)); end ALU; Digital- och datorteknik, 101122, Per Larsson-Edefors Sida 13
Konstruktionsmetodik VHDL inkludera adderare architecture t RTL of ALU is component Adder port ( OpA : in std_logic_vector(31 downto 0); OpB : in std_logic_vector(31 downto 0); Cin : in std_logic; Cout : out std_logic; Result : out std_logic_vector(31 t downto 0)); end component; Digital- och datorteknik, 101122, Per Larsson-Edefors Sida 14
Konstruktionsmetodik VHDL definiera register process begin if Reset='1' then ALU_inA <= (others => '0'); ALU_inB <= (others => '0'); elsif rising_edge(clk) then ALU_inA <= A; ALU_inB <= B; end if; end process; Digital- och datorteknik, 101122, Per Larsson-Edefors Sida 15
Konstruktionsmetodik VHDL definiera logik process begin case ALU_ op is when "0000" => ALU_Out <= Add_Out;... when "0101" => ALU_Out <= ALU_InA or ALU_InB; Digital- och datorteknik, 101122, Per Larsson-Edefors Sida 16
Konstruktionsmetodik Verifiering Simulering av hårdvarubeskrivningen avslöjar om vi konstruerat det vi avsett, om specifikationen och VHDL-implementationen överensstämmer. Digital- och datorteknik, 101122, Per Larsson-Edefors Sida 17
Konstruktionsmetodik Simulering Digital- och datorteknik, 101122, Per Larsson-Edefors Sida 18
Konstruktionsmetodik Fler datorhjälpmedel När vår beskrivning är korrekt, omvandlar CAD-verktyg denna beskrivning till fysiska kretsar, under villkor på fördröjning mellan register. Digital- och datorteknik, 101122, Per Larsson-Edefors Sida 19
Konstruktionsmetodik ASIC Design Flow Digital- och datorteknik, 101122, Per Larsson-Edefors Sida 20
Konstruktionsmetodik Standardcells-konstruktion Digital- och datorteknik, 101122, Per Larsson-Edefors Sida 21
Konstruktionsmetodik Slutresultatet Digital- och datorteknik, 101122, Per Larsson-Edefors Sida 22
Addition i hårdvara Adderare i processorer Digital- och datorteknik, 101122, Per Larsson-Edefors Sida 23
Addition i hårdvara Addition 111111111111111111111111111 + 000000000000000000000000001 1000000000000000000000000000 Vi måste alltid konstruera för de värsta fallen som kan hända! Längst fördröjning = en carrybit i LSB ripplar ända till MSB. Digital- och datorteknik, 101122, Per Larsson-Edefors Sida 24
Addition i hårdvara Ripple-Carry Adder a N-1 b N-1 a 1 b 1 a 0 b 0 0 C N-1 C 1 C 0 + + + S N-1 S 1 S 0 Ripple-carry-adderare adderare (RCA): längsta fördröjningen beror linjärt av ordlängden. Digital- och datorteknik, 101122, Per Larsson-Edefors Sida 25
Addition i hårdvara Heladderaren Digital- och datorteknik, 101122, Per Larsson-Edefors Sida 26
Addition i hårdvara Transistorkrets för heladderare a b c c a b b b c a C a c a a a b b b a b c c S Digital- och datorteknik, 101122, Per Larsson-Edefors Sida 27
Addition i hårdvara Titta speciellt på carryvägen a 1 b 1 b 1 a 1 a 0 b 0 b 0 a 0 b 1 a 1 b 1 a 1 a 0 a 0 b 0 a 0 b 0 Det finns nu onödiga inverterare i kritiska vägen. Digital- och datorteknik, 101122, Per Larsson-Edefors Sida 28
Addition i hårdvara En snabbare carryväg a 1 b 1 b 1 a 0 b 0 b 0 a 1 C ut1 a 0 C ut0 b 1 a 1 b 1 a 1 a 0 a 0 b 0 a 0 b 0 Utnyttjar att C (a, b, c) = C(a, b, c ) Digital- och datorteknik, 101122, Per Larsson-Edefors Sida 29
Addition i hårdvara Bättre, men fortfarande N a 2 b a 0 b a 2 0 3 b 3 a 1 b 1 C 3 C 2 + + + + C 1 C 0 S 3 S 2 S 1 S 0 Digital- och datorteknik, 101122, Per Larsson-Edefors Sida 30
Addition i hårdvara Studera ingångarna! a N-1 b N-1 a 1 b 1 a 0 b 0 0 C N-1 C 1 C 0 + + + S N-1 S 1 S 0 a och b ansluter till heladderarna utifrån. c kommer från annan heladderare. Gör förbearbetning, utanför kritiska vägen: Generate (a b) och Propagate (a + b) Digital- och datorteknik, 101122, Per Larsson-Edefors Sida 31
Addition i hårdvara Använda P och G i en krets G P Färre transistorer ger lägre grindfördröjning. G = ab P = a + b P G Digital- och datorteknik, 101122, Per Larsson-Edefors Sida 32
Addition i hårdvara En ny operator, istället för + (G 1, P 1 ) (G 0, P 0 ) (G 0 + P 0 G 1, P 0 P 1 ) 0 0 1 0 1 Den s.k. dot-operatorn ger oss möjlighet att bygga associativa funktioner. Digital- och datorteknik, 101122, Per Larsson-Edefors Sida 33
Addition i hårdvara Exempel på addition En 4-bitars addition: (C 3 = G 3, P 3 ) (G 2, P 2 ) (C 2 = G 2 + P 2 G 3, P 2 P 3 ) C 1 = G 1 + P 1 (G 2 + P 2 G 3 ) P 1 P 2 P 3 (G 1, P 1 ) (G 0, P 0 ) C 0 = [G 0 + P 0 G 1 ] + [P 0 P 1 ] (G 2 + P 2 G 3 ) P 0 P 1 P 2 P 3 (G 0 + P 0 G 1, P 0 P 1 ) Digital- och datorteknik, 101122, Per Larsson-Edefors Sida 34
Addition i hårdvara 64-bitars processoradderare position 0 MSB g i =a i &b i old (g =i+1 i, p i ) (g x, p x ), där x i+1, i+2, i+4,... p i = a i b i new g i = old g i (old p i & g x ) x i = a i XOR b i new (g i, p i ) new p i = old p i & p x s i = x i-1 XOR nyast g i utom: s 0 = nyast g 0 utom: s 64 = x 63 position 63 LSB s 0 s 10 s 20 s 30 s 40 s 50 s 60 s 64 Digital- och datorteknik, 101122, Per Larsson-Edefors Sida 35
Addition i hårdvara Logikdjup = 8 (jfr. 64 för RCA) position 0 MSB g i =a i &b i old (g =i+1 i, p i ) (g x, p x ), där x i+1, i+2, i+4,... p i = a i b i new g i = old g i (old p i & g x ) x i = a i XOR b i new (g i, p i ) new p i = old p i & p x s i = x i-1 XOR nyast g i utom: s 0 = nyast g 0 utom: s 64 = x 63 position 63 LSB s 0 s 10 s 20 s 30 s 40 s 50 s 60 s 64 Digital- och datorteknik, 101122, Per Larsson-Edefors Sida 36
Addition i hårdvara Layout för halvadderare Digital- och datorteknik, 101122, Per Larsson-Edefors Sida 37
Addition i hårdvara Layout för heladderare Digital- och datorteknik, 101122, Per Larsson-Edefors Sida 38
Addition i hårdvara Den integrerade kretsen Digital- och datorteknik, 101122, Per Larsson-Edefors Sida 39
Skiss på 16-bitars multiplikator Multiplikation i hårdvara Digital- och datorteknik, 101122, Per Larsson-Edefors Sida 40
Multiplikation i hårdvara Layout av 16 16-bitars bitars multiplikator Digital- och datorteknik, 101122, Per Larsson-Edefors Sida 41
Avslutning Många konstruktionsalternativ! Olika teknologiplattformar. ASIC, FPGA, standardkomponenter. Olika konstruktionsmetoder. Manuell design blandat med CAD-stödd design. Utmaningen: Komplexa system krävs för hög funktionalitet och hög prestanda. Hur konstruerar man dessa? Digital- och datorteknik, 101122, Per Larsson-Edefors Sida 42