Układy mnoŝące H D L. dr inŝ. Paweł Tomaszewicz Instytut Telekomunikacji Politechnika Warszawska

Wielkość: px
Rozpocząć pokaz od strony:

Download "Układy mnoŝące H D L. dr inŝ. Paweł Tomaszewicz Instytut Telekomunikacji Politechnika Warszawska"

Transkrypt

1 Układy mnoŝące 1

2 MnoŜenie w układzie sekwencyjnym P = A X = N 1 k = 0 k a k 2 X MnoŜenie szeregowo-równoległe równoległe Czynnik X jest przesuwany o k pozycji: jeŝeli a k 0 to X*2 k jest dodawane i zapisywane w rejestrze (akumulatorze), jeŝeli a k = 0 to dodawanie jest pomijane. 2

3 Układ mnoŝący sekwencyjny V WAIT UNTI clk = '1'; width := n-1; PACKAGE const IS CASE state IS CONSTANT n : integer := 4; WEN s0 => EN PACKAGE const; state <= s1; IBRARY work; count := 0; USE work.const.a; p := 0; IBRARY ieee; t := b; USE ieee.std_logic_1164.a; WEN s1 => USE ieee.std_logic_arith.a; IF a(count) = '1' TEN p := p + t; ENTITY mul_reg IS EN IF; PORT (clk : IN ST_OGIC; t := t * 2; a : IN ST_OGIC_VECTOR(n-1 OWNTO 0); IF count = width TEN b : IN INTEGER RANGE 0 TO (2**n)-1; state <= s2; y : OUT INTEGER RANGE 0 TO (2**(2*n))-1); ESE EN mul_reg; count := count + 1; state <= s1; ARCITECTURE arch_mult OF mul_reg IS EN IF; TYPE STATE_TYPE IS (s0, s1, s2); WEN s2 => SIGNA state : STATE_TYPE; y <= p; BEGIN state <= s0; States: PROCESS EN CASE; VARIABE p, t : INTEGER RANGE 0 TO (2**(2*n))-1; EN PROCESS States; VARIABE count, width : INTEGER RANGE 0 TO n+1; EN arch_mult; BEGIN 3

4 Układ mnoŝący sekwencyjny Verilog // serial multiplication module mul_reg(clk, a, b, y); parameter n = 8; input clk; input [n-1:0] a,b; output [2*n-1:0] y; s1: begin if (a[count]==1) p <= p + t; reg [2*n-1:0] y; t <= t<<1; if (count == n-1) always@(posedge clk) begin : fsm parameter s0=0,s1=1,s2=2; reg [1:0] state; reg [2*n-1:0] p, t; reg [3:0] count; case(state) s0: begin state <= s1; count <= 0; p <= 0; t <= b; end state <= s2; else begin count <= count + 1; state <= s1; end end s2: begin y <= p; state <= s0; end endcase end endmodule 4

5 MnoŜenie w układzie sekwencyjnym - symulacja Realizacja w FPGA: Altera Flex10K70 EPF10K70RC240-4 komórek f [Mz] t_clk [ns] (przerzutników) 4 bit 50 (29) 53,19 18,8 8 bit 105 (55) 38,91 25,7 5

6 MnoŜenie w układzie macierzowym (kombinacyjnym) a 3 a 2 a 1 a 0 b 3 b 2 b 1 b a 3 b 0 a 2 b 0 a 1 b 0 a 0 b 0 M a 3 b 1 a 2 b 1 a 1 b 1 a 0 b 1 0 M a 3 b 2 a 2 b 2 a 1 b 2 a 0 b M 2 0 a 3 b 3 a 2 b 3 a 1 b 3 a 0 b M 3 p 7 p 6 p 5 p 4 p 3 p 2 p 1 p 0 P = A B, n = 4 M i = A b i 2 i 6

7 MnoŜenie macierzowe 4-bitowe MnoŜenie równoległo-równoległe 7

8 IBRARY work; USE work.fa_package.a; IBRARY ieee; USE ieee.std_logic_1164.a; ENTITY mul_fa IS GENERIC (n : INTEGER := 4); MnoŜenie macierzowe MnoŜenie 4-bitowe - realizacja macierzowe 4-bitowe V PORT ( a_in, b_in : IN ST_OGIC_VECTOR(n-1 OWNTO 0); clk : IN ST_OGIC; p_out : OUT ST_OGIC_VECTOR(2*n-1 OWNTO 0)); EN mul_fa; ARCITECTURE mul_arch OF mul_fa IS SIGNA a : ST_OGIC_VECTOR(n-1 OWNTO 0); SIGNA b : ST_OGIC_VECTOR(n-1 OWNTO 0); SIGNA p : ST_OGIC_VECTOR(2*n-1 OWNTO 0); SIGNA s0 : ST_OGIC_VECTOR(n-2 OWNTO 0); SIGNA s1 : ST_OGIC_VECTOR(n-2 OWNTO 0); SIGNA s2 : ST_OGIC_VECTOR(n-2 OWNTO 0); SIGNA s3 : ST_OGIC_VECTOR(n-2 OWNTO 0); SIGNA c0 : ST_OGIC_VECTOR(n-2 OWNTO 0); SIGNA c1 : ST_OGIC_VECTOR(n-2 OWNTO 0); SIGNA c2 : ST_OGIC_VECTOR(n-2 OWNTO 0); SIGNA c3 : ST_OGIC_VECTOR(n-2 OWNTO 0); SIGNA m0 : ST_OGIC_VECTOR(n-1 OWNTO 0); SIGNA m1 : ST_OGIC_VECTOR(n-1 OWNTO 0); SIGNA m2 : ST_OGIC_VECTOR(n-1 OWNTO 0); SIGNA m3 : ST_OGIC_VECTOR(n-1 OWNTO 0); 8

9 MnoŜenie macierzowe 4-bitowe realizacja V BEGIN Reg: PROCESS (clk) BEGIN IF clk'event AN (clk = '1') TEN a <= a_in; b <= b_in; p_out <= p; EN IF; EN PROCESS Reg; m_0: FOR i IN n-1 OWNTO 0 GENERATE m0(i) <= a(i) AN b(0); EN GENERATE; m_1: FOR i IN n-1 OWNTO 0 GENERATE m1(i) <= a(i) AN b(1); EN GENERATE; m_2: FOR i IN n-1 OWNTO 0 GENERATE m2(i) <= a(i) AN b(2); EN GENERATE; m_3: FOR i IN n-1 OWNTO 0 GENERATE m3(i) <= a(i) AN b(3); EN GENERATE; 9

10 MnoŜenie macierzowe 4-bitowe - realizacja ha0_0: ha PORT MAP (a => m0(1), b => m1(0), s => s0(0), cout => c0(0)); ha0_1: ha PORT MAP (a => m0(2), b => m1(1), s => s0(1), cout => c0(1)); ha0_2: ha PORT MAP (a => m0(3), b => m1(2), s => s0(2), cout => c0(2)); fa1_0: fa PORT MAP (a => s0(1), b => m2(0), cin => c0(0), s => s1(0), cout => c1(0)); fa1_1: fa PORT MAP (a => s0(2), b => m2(1), cin => c0(1), s => s1(1), cout => c1(1)); fa1_2: fa PORT MAP (a => m1(3), b => m2(2), cin => c0(2), s => s1(2), cout => c1(2)); fa2_0: fa PORT MAP (a => s1(1), b => m3(0), cin => c1(0), s => s2(0), cout => c2(0)); fa2_1: fa PORT MAP (a => s1(2), b => m3(1), cin => c1(1), s => s2(1), cout => c2(1)); fa2_2: fa PORT MAP (a => m2(3), b => m3(2), cin => c1(2), s => s2(2), cout => c2(2)); ha3_0: ha PORT MAP (a => c2(0), b => s2(1), s => s3(0), cout => c3(0)); fa3_1: fa PORT MAP (a => c2(1), b => s2(2), cin => c3(0), s => s3(1), cout => c3(1)); fa3_2: fa PORT MAP (a => c2(2), b => m3(3), cin => c3(1), s => s3(2), cout => c3(2)); p(0) <= m0(0); p(1) <= s0(0); p(2) <= s1(0); p(3) <= s2(0); p(4) <= s3(0); p(5) <= s3(1); p(6) <= s3(2); p(7) <= c3(2); EN mul_arch; 10

11 MnoŜenie macierzowe 4-bitowe Verilog // 4-bit multiplier (fa) //'include "fa.v"; //'include "ha.v"; module mul_fa(clk,a_in,b_in,p_out); parameter n=4; input clk; input [n-1:0] a_in, b_in; output [2*n-1:0] p_out; genvar i; generate for (i = 0; i < n; i=i+1) begin : m_i assign m0[i] = a[i] & b[0]; assign m1[i] = a[i] & b[1]; assign m2[i] = a[i] & b[2]; assign m3[i] = a[i] & b[3]; end endgenerate reg [2*n-1:0] p_out; reg [n-1:0] a, b; wire [2*n-1:0] p; wire [n-2:0] s0,s1,s2,s3; wire [n-2:0] c0,c1,c2,c3; wire [n-1:0] m0,m1,m2,m3; always@(posedge clk) begin a <= a_in; b <= b_in; p_out <= p; end 11

12 MnoŜenie macierzowe 4-bitowe Verilog ha ha_0 (.a(m0[1]),.b(m1[0]),.s(s0[0]),.cout(c0[0])); ha ha_1 (.a(m0[2]),.b(m1[1]),.s(s0[1]),.cout(c0[1])); ha ha_2 (.a(m0[3]),.b(m1[2]),.s(s0[2]),.cout(c0[2])); fa fa1_0 (.a(s0[1]),.b(m2[0]),.cin(c0[0]),.s(s1[0]),.cout(c1[0])); fa fa1_1 (.a(s0[2]),.b(m2[1]),.cin(c0[1]),.s(s1[1]),.cout(c1[1])); fa fa1_2 (.a(m1[3]),.b(m2[2]),.cin(c0[2]),.s(s1[2]),.cout(c1[2])); fa fa2_0 (.a(s1[1]),.b(m3[0]),.cin(c1[0]),.s(s2[0]),.cout(c2[0])); fa fa2_1 (.a(s1[2]),.b(m3[1]),.cin(c1[1]),.s(s2[1]),.cout(c2[1])); fa fa2_2 (.a(m2[3]),.b(m3[2]),.cin(c1[2]),.s(s2[2]),.cout(c2[2])); ha ha3_0 (.a(c2[0]),.b(s2[1]),.s(s3[0]),.cout(c3[0])); fa fa3_1 (.a(c2[1]),.b(s2[2]),.cin(c3[0]),.s(s3[1]),.cout(c3[1])); fa fa3_2 (.a(c2[2]),.b(m3[3]),.cin(c3[1]),.s(s3[2]),.cout(c3[2])); endmodule assign p = {c3[2],s3[2],s3[1],s3[0],s2[0],s1[0],s0[0],m0[0]}; 12

13 MnoŜenie macierzowe - symulacja komórek przerzutników f [Mz] t_clk [ns] ,5 24,7 13

14 MnoŜenie macierzowe sumator równoległy CSA Sumator równoległy bez propagacji przeniesienia Carry-Save Adder MnoŜenie jest rozłoŝone na operacje sumowania, więc moŝna wykorzystać bloki CSA sumowanie bez uwzględniania przeniesienia 14

15 MnoŜenie macierzowe sumator równoległy CSA V -- Carry Save Adder IBRARY ieee; USE ieee.std_logic_1164.a; ENTITY csa IS GENERIC (n : INTEGER := 4); PORT ( a, b, cin : IN ST_OGIC_VECTOR(n-1 OWNTO 0); s, cout : OUT ST_OGIC_VECTOR(n-1 OWNTO 0)); EN csa; ARCITECTURE csa_arch OF csa IS BEGIN csa: FOR i IN n-1 OWNTO 0 GENERATE s(i) <= a(i) XOR b(i) XOR cin(i); cout(i) <= (a(i) AN b(i)) OR (a(i) AN cin(i)) OR (b(i) AN cin(i)); EN GENERATE; EN csa_arch; 15

16 MnoŜenie macierzowe sumator równoległy CSA Verilog // Carry Save Adder module csa(a, b, cin, s, cout); parameter n = 4; input [n-1:0] a, b, cin; output [n-1:0] s, cout; genvar i; generate for (i = 0; i < n; i=i+1) begin : csa assign s[i] = a[i] ^ b[i] ^ cin[i]; assign cout[i] = a[i] & b[i] a[i] & cin[i] b[i] & cin[i]; end endgenerate endmodule 16

17 MnoŜenie CSA 4-bitowe n-2 poziomów CSA C* przesunięte o 1 bit w lewo CPA Carry Propagate Adder 17

18 MnoŜenie CSA 4-bitowe sumator CPA V ENTITY cpa IS --- Carry Propagate Adder GENERIC(n : INTEGER := 8); PORT(s: IN ST_OGIC_VECTOR(n-1 OWNTO 0); EN cpa; c :IN ST_OGIC_VECTOR(n-1 OWNTO 0); p: OUT ST_OGIC_VECTOR(n-1 OWNTO 0)); ARCITECTURE cpa_arch OF cpa IS SIGNA cout_cin : ST_OGIC_VECTOR(n-2 OWNTO 1); BEGIN p(0) <= s(0); EN cpa_arch; Blok potrzebny do wyznaczenia sumy na ostatnim poziomie ha1: ha PORT MAP(a => s(1), b => c(0), s => p(1), cout => cout_cin(1)); fa_n: FOR i IN 2 TO n-2 GENERATE fa_n: fa PORT MAP(a => s(i), b => c(i-1), cin => cout_cin(i-1), s => p(i), cout => cout_cin(i)); EN GENERATE; p(n-1) <= cout_cin(n-2) XOR s(n-1) XOR c(n-2); 18

19 MnoŜenie CSA 4-bitowe sumator CPA Verilog // Carry Propagate Adder module cpa(s,c,p); parameter n = 8; input [n-1:0] s, c; output [n-1:0] p; Blok potrzebny do wyznaczenia sumy na ostatnim poziomie wire [n-2:0] cout_cin; assign p[0] = s[0]; ha ha1(.a(s[1]),.b(c[0]),.s(p[1]),.cout(cout_cin[1])); genvar i; generate for (i = 2; i <= n-2; i=i+1) begin : fa_i fa fa_n(.a(s[i]),.b(c[i-1]),.cin(cout_cin[i-1]),.s(p[i]),.cout(cout_cin[i])); end endgenerate assign p[n-1] = cout_cin[n-2] ^ s[n-1] ^ c[n-2]; endmodule 19

20 MnoŜenie CSA 4-bitowe V IBRARY ieee; USE ieee.std_logic_1164.a; PACKAGE csa_package IS... EN csa_package; IBRARY work; USE work.csa_package.a; IBRARY ieee; USE ieee.std_logic_1164.a; ENTITY mul_csa IS GENERIC (n : INTEGER := 4); PORT (a, b : IN ST_OGIC_VECTOR(n-1 OWNTO 0); clk : IN ST_OGIC; p : OUT ST_OGIC_VECTOR(2*n-1 OWNTO 0)); EN mul_csa; ARCITECTURE mul_arch OF mul_csa IS SIGNA a_r, b_r : ST_OGIC_VECTOR(n-1 OWNTO 0); SIGNA p_r : ST_OGIC_VECTOR(2*n-1 OWNTO 0); SIGNA s0, s1 : ST_OGIC_VECTOR(2*n-1 OWNTO 0); SIGNA c0, c0_out, c1 : ST_OGIC_VECTOR(2*n-1 OWNTO 0); SIGNA m0, m1, m2, m3 : ST_OGIC_VECTOR(2*n-1 OWNTO 0); 20

21 MnoŜenie CSA 4-bitowe V m2(1 OWNTO 0) <= "00"; m_2: FOR i IN 5 OWNTO 2 GENERATE BEGIN m2(i) <= a_r(i-2) AN b_r(2); Reg: PROCESS (clk) EN GENERATE; BEGIN m_2msb: FOR i IN 2*n-1 OWNTO 6 GENERATE IF clk'event AN (clk = '1') TEN m2(i) <= '0'; a_r <= a; EN GENERATE; b_r <= b; m3(2 OWNTO 0) <= "000"; p <= p_r; m_3: FOR i IN 6 OWNTO 3 GENERATE EN IF; m3(i) <= a_r(i-3) AN b_r(3); EN PROCESS Reg; EN GENERATE; m_3msb: FOR i IN 2*n-1 OWNTO 7 GENERATE m_0: FOR i IN 3 OWNTO 0 GENERATE m3(i) <= '0'; m0(i) <= a_r(i) AN b_r(0); EN GENERATE; EN GENERATE; m_0msb: FOR i IN 2*n-1 OWNTO 4 GENERATE csa0: csa m0(i) <= '0'; PORT MAP (a => m2, b => m1, cin => m0, EN GENERATE; s => s0, cout => c0); m1(0) <= '0'; c0_out <= c0(2*n-2 OWNTO 0) & '0'; m_1: FOR i IN 4 OWNTO 1 GENERATE csa1: csa m1(i) <= a_r(i-1) AN b_r(1); PORT MAP (a => m3, b => c0_out, cin => s0, EN GENERATE; s => s1, cout => c1); m_1msb: FOR i IN 2*n-1 OWNTO 5 GENERATE cpa_end: cpa m1(i) <= '0'; PORT MAP (s => s1, c => c1, p => p_r); EN GENERATE; EN mul_arch; 21

22 MnoŜenie CSA 4-bitowe Verilog // 4-bit multiplier (csa) module mul_csa(a,b,clk,p); parameter n=4; input clk; input [n-1:0] a,b; output [2*n-1:0] p; reg [2*n-1:0] p; reg [n-1:0] a_r, b_r; wire [2*n-1:0] p_r; wire [2*n-1:0] s0, s1; wire [2*n-1:0] c0, c0_out, c1; wire [2*n-1:0] m0, m1, m2, m3; clk) begin a_r <= a; b_r <= b; p <= p_r; end assign m0 = {4'b0000,a_r[3] & b_r[0],a_r[2] & b_r[0],a_r[1] & b_r[0],a_r[0] & b_r[0]}; assign m1 = {3'b000,a_r[3] & b_r[1],a_r[2] & b_r[1],a_r[1] & b_r[1],a_r[0] & b_r[1],1'b0}; assign m2 = {2'b00,a_r[3] & b_r[2],a_r[2] & b_r[2],a_r[1] & b_r[2],a_r[0] & b_r[2],2'b00}; assign m3 = {1'b0,a_r[3] & b_r[3],a_r[2] & b_r[3],a_r[1] & b_r[3],a_r[0] & b_r[3],3'b000}; csa csa0(.a(m2),.b(m1),.cin(m0),.s(s0),.cout(c0)); defparam csa0.n=2*n; assign c0_out = {c0[2*n-2:0],1'b0}; csa csa1(.a(m3),.b(c0_out),.cin(s0),.s(s1),.cout(c1)); defparam csa1.n=2*n; cpa cpa_end(.s(s1),.c(c1),.p(p_r)); endmodule 22

23 MnoŜenie CSA 4-bitowe Verilog clk) begin a_r <= a; b_r <= b; p <= p_r; end assign m0 = {4'b0000,a_r[3] & b_r[0],a_r[2] & b_r[0],a_r[1] & b_r[0],a_r[0] & b_r[0]}; assign m1 = {3'b000,a_r[3] & b_r[1],a_r[2] & b_r[1],a_r[1] & b_r[1],a_r[0] & b_r[1],1'b0}; assign m2 = {2'b00,a_r[3] & b_r[2],a_r[2] & b_r[2],a_r[1] & b_r[2],a_r[0] & b_r[2],2'b00}; assign m3 = {1'b0,a_r[3] & b_r[3],a_r[2] & b_r[3],a_r[1] & b_r[3],a_r[0] & b_r[3],3'b000}; csa csa0(.a(m2),.b(m1),.cin(m0),.s(s0),.cout(c0)); defparam csa0.n=2*n; assign c0_out = {c0[2*n-2:0],1'b0}; csa csa1(.a(m3),.b(c0_out),.cin(s0),.s(s1),.cout(c1)); defparam csa1.n=2*n; cpa cpa_end(.s(s1),.c(c1),.p(p_r)); endmodule 23

24 MnoŜenie CSA 4-bitowe komórek przerzutników f [Mz] t_clk [ns] ,46 28,2 24

25 MnoŜenie UT 4-bitowe MnoŜenie z wykorzystaniem pamięci UT (A(4 bity), B(4 bity)) * słowo P (8 bitów) = 2048 bitów latego pamięci EAB w Flex10K mają rozmiar 2048 bitów 25

26 MnoŜenie UT 4-bitowe -- 4x4 bit multiplication depth= 256; width = 8; address_radix = bin; data_radix = dec; content begin : 000 ; : 000 ; : 000 ; : 000 ; : 000 ; : 000 ; : 150 ; : 165 ; : 180 ; : 195 ; : 210 ; : 225 ; end; Plik konfiguracyjny pamięci UT: 4x4_mult.mif 26

27 MnoŜenie UT 4-bitowe V IBRARY ieee; USE ieee.std_logic_1164.a; PACKAGE ram_constants IS CONSTANT ATA_WIT : INTEGER := 8; CONSTANT AR_WIT : INTEGER := 8; EN ram_constants; IBRARY ieee; USE ieee.std_logic_1164.a; IBRARY lpm; USE lpm.lpm_components.a; IBRARY work; USE work.ram_constants.a; ENTITY mul_rom4b IS GENERIC (n : INTEGER := 4); PORT (a, b : IN ST_OGIC_VECTOR(n-1 OWNTO 0); clk : IN ST_OGIC; p : OUT ST_OGIC_VECTOR(2*n-1 OWNTO 0)); EN mul_rom4b; ARCITECTURE mul_arch OF mul_rom4b IS SIGNA address : ST_OGIC_VECTOR(2*n-1 OWNTO 0); BEGIN address <= a & b; rom4b: lpm_rom GENERIC MAP (PM_WIT => ATA_WIT, PM_WITA => AR_WIT, PM_FIE => "4x4_mult.mif", PM_ARESS_CONTRO => "REGISTERE", PM_OUTATA => "REGISTERE") PORT MAP (address => address, inclock => clk, outclock => clk, q => p); EN mul_arch; 27

28 MnoŜenie UT 4-bitowe Verilog // 4bit ROM-based multiplier module mul_rom4b(a,b,clk,p); parameter n=4; parameter data_width=2*n; parameter addr_width=2*n; input clk; input [n-1:0] a,b; output [2*n-1:0] p; reg [2*n-1:0] p; wire [2*n-1:0] address; assign address = {a, b}; lpm_rom rom4b(.address(address),.inclock(clk),.outclock(clk),.q(p)); defparam rom4b.lpm_width=data_width; defparam rom4b.lpm_widthad=addr_width; defparam rom4b.lpm_file="4x4_mult.mif"; defparam rom4b.lpm_address_control="registere"; defparam rom4b.lpm_outdata="registere"; endmodule; 28

29 MnoŜenie UT 4-bitowe pamięci EAB komórek przerzutników f [Mz] t_clk [ns] 1 (2048 bitów) ,34 13,1 29

30 MnoŜenie UT 8-bitowe MnoŜenie z wykorzystaniem pamięci UT 2kbit: P = A B = (A 1 2 n + A 0 ) (B 1 2 n + B 0 ) = A 1 B 1 2 2n + (A 1 B 0 + A 0 B 1 ) 2 n + A 0 B 0 30

31 MnoŜenie UT 8-bitowe V IBRARY ieee; USE ieee.std_logic_1164.a; PACKAGE ram_constants IS CONSTANT ATA_WIT : INTEGER := 8; CONSTANT AR_WIT : INTEGER := 8; EN ram_constants; IBRARY ieee; USE ieee.std_logic_1164.a; IBRARY lpm; USE lpm.lpm_components.a; IBRARY work; USE work.ram_constants.a; ENTITY mul_rom8b IS GENERIC (n : INTEGER := 8); PORT (a, b : IN ST_OGIC_VECTOR(n-1 OWNTO 0); clk : IN ST_OGIC; p : OUT ST_OGIC_VECTOR(2*n-1 OWNTO 0)); EN mul_rom8b; ARCITECTURE mul_arch OF mul_rom8b IS SIGNA address0, address1, address2, address3 : ST_OGIC_VECTOR(n-1 OWNTO 0); SIGNA p0, p1, p2, p3 : ST_OGIC_VECTOR(n-1 OWNTO 0); SIGNA s0, s1, s2, s3, s4, s5 : ST_OGIC_VECTOR((n+n/2-1) OWNTO 0); SIGNA s6, s7, p_r : ST_OGIC_VECTOR(2*n-1 OWNTO 0); 31

32 MnoŜenie UT 8-bitowe V BEGIN Reg: PROCESS (clk) BEGIN IF clk'event AN (clk = '1') TEN p <= p_r; EN IF; EN PROCESS Reg; address0 <= a(n/2-1 OWNTO 0) & b(n/2-1 OWNTO 0); address1 <= a(n/2-1 OWNTO 0) & b(n-1 OWNTO n/2); address2 <= a(n-1 OWNTO n/2) & b(n/2-1 OWNTO 0); address3 <= a(n-1 OWNTO n/2) & b(n-1 OWNTO n/2); rom4b_0: lpm_rom GENERIC MAP (PM_WIT => ATA_WIT, PM_WITA => AR_WIT, PM_FIE => "4x4_mult.mif", PM_ARESS_CONTRO => "REGISTERE", PM_OUTATA => "REGISTERE") PORT MAP (address => address0, inclock => clk, outclock => clk, q => p0); rom4b_1: lpm_rom GENERIC MAP (PM_WIT => ATA_WIT, PM_WITA => AR_WIT, PM_FIE => "4x4_mult.mif", PM_ARESS_CONTRO => "REGISTERE", PM_OUTATA => "REGISTERE") PORT MAP (address => address1, inclock => clk, outclock => clk, q => p1); rom4b_2: lpm_rom GENERIC MAP (PM_WIT => ATA_WIT, PM_WITA => AR_WIT, PM_FIE => "4x4_mult.mif", PM_ARESS_CONTRO => "REGISTERE", PM_OUTATA => "REGISTERE") dr inŝ. Paweł PORT Tomaszewicz MAP (address => address2, inclock => clk, outclock => clk, q => p2); 32

33 MnoŜenie UT 8-bitowe V rom4b_3: lpm_rom GENERIC MAP (PM_WIT => ATA_WIT, PM_WITA => AR_WIT, PM_FIE => "4x4_mult.mif", PM_ARESS_CONTRO => "REGISTERE", PM_OUTATA => "REGISTERE") PORT MAP (address => address3, inclock => clk, outclock => clk, q => p3); s0 <= "0000" & p0; s1 <= p1 & "0000"; sum0: lpm_add_sub GENERIC MAP (PM_WIT => 12, PM_REPRESENTATION => "UNSIGNE", PM_IRECTION => "A") PORT MAP (dataa => s0, datab => s1, result => s4); s2 <= "0000" & p2; s3 <= p3 & "0000"; sum1: lpm_add_sub GENERIC MAP (PM_WIT => 12, PM_REPRESENTATION => "UNSIGNE", PM_IRECTION => "A") PORT MAP (dataa => s2, datab => s3, result => s5); s6 <= "0000" & s4; s7 <= s5 & "0000"; sum2: lpm_add_sub GENERIC MAP (PM_WIT => 16, PM_REPRESENTATION => "UNSIGNE", PM_IRECTION => "A") PORT MAP (dataa => s6, datab => s7, result => p_r); EN mul_arch; 33

34 MnoŜenie UT 8-bitowe Verilog // 4bit ROM-based multiplier // P = X * Y = (Y2 * 2^N + Y1)*(X2 * 2^N + X1) // = Y2X2 * 2^2N + (Y2X1 + Y1X2)*2^N + Y1X1 module mul_rom8b(a,b,clk,p); parameter n=8; parameter data_width=8; parameter addr_width=8; input clk; input [n-1:0] a,b; output [2*n-1:0] p; reg [2*n-1:0] p; wire [n-1:0] address0,address1,address2,address3; wire [n-1:0] p0, p1, p2, p3; wire [n+n/2-1:0] s0, s1, s2, s3, s4, s5; wire [2*n-1:0] s6, s7, p_r; always@(posedge clk) begin p <= p_r; end 34

35 MnoŜenie UT 8-bitowe Verilog assign address0 = {a[n/2-1:0], b[n/2-1:0]}; assign address1 = {a[n/2-1:0], b[n-1:n/2]}; assign address2 = {a[n-1:n/2], b[n/2-1:0]}; assign address3 = {a[n-1:n/2], b[n-1:n/2]}; lpm_rom rom4b_0(.address(address0),.inclock(clk),.outclock(clk),.q(p0)); defparam rom4b_0.lpm_width=data_width; defparam rom4b_0.lpm_widthad=addr_width; defparam rom4b_0.lpm_file="4x4_mult.mif"; defparam rom4b_0.lpm_address_control="registere"; defparam rom4b_0.lpm_outdata="registere"; lpm_rom rom4b_1(.address(address1),.inclock(clk),.outclock(clk),.q(p1)); defparam rom4b_1.lpm_width=data_width; defparam rom4b_1.lpm_widthad=addr_width; defparam rom4b_1.lpm_file="4x4_mult.mif"; defparam rom4b_1.lpm_address_control="registere"; defparam rom4b_1.lpm_outdata="registere"; lpm_rom rom4b_2(.address(address2),.inclock(clk),.outclock(clk),.q(p2)); defparam rom4b_2.lpm_width=data_width; defparam rom4b_2.lpm_widthad=addr_width; defparam rom4b_2.lpm_file="4x4_mult.mif"; defparam rom4b_2.lpm_address_control="registere"; defparam rom4b_2.lpm_outdata="registere"; lpm_rom rom4b_3(.address(address3),.inclock(clk),.outclock(clk),.q(p3)); defparam rom4b_3.lpm_width=data_width; defparam rom4b_3.lpm_widthad=addr_width; defparam rom4b_3.lpm_file="4x4_mult.mif"; defparam rom4b_3.lpm_address_control="registere"; defparam rom4b_3.lpm_outdata="registere"; 35

36 MnoŜenie UT 8-bitowe Verilog assign s0 = {4'b0000, p0}; assign s1 = {p1, 4'b0000}; lpm_add_sub sum0(.dataa(s0),.datab(s1),.result(s4)); defparam sum0.lpm_width=12; defparam sum0.lpm_representation="unsigned"; defparam sum0.lpm_direction="add"; assign s2 = {4'b0000, p2}; assign s3 = {p3, 4'b0000}; lpm_add_sub sum1(.dataa(s2),.datab(s3),.result(s5)); defparam sum1.lpm_width=12; defparam sum1.lpm_representation="unsigned"; defparam sum1.lpm_direction="add"; assign s6 = {4'b0000, s4}; assign s7 = {s5, 4'b0000}; lpm_add_sub sum2(.dataa(s6),.datab(s7),.result(p_r)); defparam sum2.lpm_width=16; defparam sum2.lpm_representation="unsigned"; defparam sum2.lpm_direction="add"; endmodule 36

37 MnoŜenie UT 8-bitowe opcje kompilatora pamięci EAB komórek przerzutników f [Mz] t_clk [ns] pamięć UT z we/wy rejestrowymi z CarryChain 4 (8192 bity) ,31 26,1 bez CarryChain 4 (8192 bity) ,69 46,1 pamięć UT tylko z we rejestrowymi z CarryChain 4 (8192 bity) ,04 38,4 bez CarryChain 4 (8192 bity) ,06 58,6 Widać na tym przykładzie jaki wpływ ma stosowanie CARRY Chain! 37

38 Szybkie mnoŝenie FastArray macierzowe 8-bitowe W pierwszym kroku dodać dwa sąsiadujące czynniki a n B 2 n + a n+1 B 2 n+1 cpa_1shl.vhd cpa_2shl.vhd cpa_2.vhd cpa_4.vhd log 2 (N) poziomów N=8, 3 poziomy 38

39 MnoŜenie macierzowe 8-bitowe N-2 poziomów CSA N=8, 6+1 poziomów 39

40 MnoŜenie macierzowe 8bit drzewo Wallace a N=8, 4+1 poziomów Architektury typu Wallacetree, Booth są rzadko spotykane w FPGA (często uŝywane w układach ASIC) 40

41 MnoŜenie 8-bitowe potokowe vs kombinacyjne model komórek przerzutników stopni f [Mz] t_clk [ns] potoku fast ,5 33,9 CSA ,97 28,6 Wallace ,07 34,4 fast ,2 65,8 CSA ,06 66,4 Wallace ,23 61,6 W układzie Szybkiego MnoŜenia (Fast Array) dodanie potokowości nie kosztuje prawie Ŝadnych dodatkowych zasobów a przepustowość wzrosła dwukrotnie Układy moŝna by zoptymalizować (a szczególnie CSA) jeŝeli uwzględnimy fakt, Ŝe w cząstkowych iloczynach M połowa wektora wejściowego to są zera 41

42 IBRARY ieee; USE ieee.std_logic_1164.a; IBRARY lpm; USE lpm.lpm_components.a; ENTITY mul_lpm IS GENERIC (n : INTEGER := 8); PORT (a, b : IN ST_OGIC_VECTOR(n-1 OWNTO 0); clk EN mul_lpm; MnoŜenie 8-bitowe PM V : IN ST_OGIC; p : OUT ST_OGIC_VECTOR(2*n-1 OWNTO 0)); ARCITECTURE mul_arch OF mul_lpm IS BEGIN SIGNA a_r, b_r : ST_OGIC_VECTOR(n-1 OWNTO 0); SIGNA p_r : ST_OGIC_VECTOR(2*n-1 OWNTO 0); Reg: PROCESS (clk) BEGIN IF clk'event AN (clk = '1') TEN EN IF; EN PROCESS Reg; mul: lpm_mult a_r <= a; b_r <= b; p <= p_r; GENERIC MAP (PM_WITA => n, PM_WITB => n, PM_WITS => n, PM_WITP => 2*n, PM_PIPEINE => 3) PORT MAP (dataa => a_r, datab => b_r, result => p_r, clock => clk); EN mul_arch; 42

43 MnoŜenie 8-bitowe PM Verilog // 8-bit PM multiplier module mul_lpm(a,b,clk,p); parameter n=8; input clk; input [n-1:0] a,b; output [2*n-1:0] p; reg [n-1:0] a_r,b_r; reg [2*n-1:0] p; reg [2*n-1:0] p_r; clk) begin a_r <= a; b_r <= b; p <= p_r; end lpm_mult mult(.dataa(a_r),.datab(b_r),.result(p_r),.clock(clk)); defparam mult.lpm_widtha=n; defparam mult.lpm_widthb=n; defparam mult.lpm_widths=1; defparam mult.lpm_widthp=2*n; defparam mult.lpm_pipeline=1; endmodule 43

44 MnoŜenie 8-bitowe PM_MUT stopni potoku komórek przerzutników f [Mz] t_clk [ns] -* ,77 67, ,49 24, ,98 52, ,18 17, ,5 17, ,56 18,0 * wejścia/wyjścia rejestrowe Najlepsza realizacja (szybkość/zajętość) jest dla 3 stopni potoku. 44

Sumatory H D L. dr inŝ. Paweł Tomaszewicz Instytut Telekomunikacji Politechnika Warszawska

Sumatory H D L. dr inŝ. Paweł Tomaszewicz Instytut Telekomunikacji Politechnika Warszawska Sumatory 1 Sumator 1-bitowy full adder Równanie boolowskie sumy: s k = a k XOR b k XOR c k = a k b k c k Równanie boolowskie przeniesienia: c k+1 = (a k AN b k ) OR (a k AN c k ) OR (b k AN c k ) = (a

Bardziej szczegółowo

Układy kryptograficzne z uŝyciem rejestrów LFSR

Układy kryptograficzne z uŝyciem rejestrów LFSR Układy kryptograficzne z uŝyciem rejestrów FSR Algorytmy kryptograficzne uŝywane w systemach telekomunikacyjnych własność modulo 2 funkcji XOR P K K = P = P 2 Rejestr z liniowym sprzęŝeniem zwrotnym FSR

Bardziej szczegółowo

Filtry cyfrowe o skończonej odpowiedzi impulsowej FIR

Filtry cyfrowe o skończonej odpowiedzi impulsowej FIR Filtry cyfrowe o skończonej odpowiedzi impulsowej FIR 1 FPGA zalety i wady Ogromny wzrost wydajności niektórych algorytmów Elastyczność architektury MoŜliwości znacznego zrównoleglenia algorytmów ostosowanie

Bardziej szczegółowo

Język AHDL. Synteza strukturalna. dr inŝ. Paweł Tomaszewicz Instytut Telekomunikacji Politechnika Warszawska H D L

Język AHDL. Synteza strukturalna. dr inŝ. Paweł Tomaszewicz Instytut Telekomunikacji Politechnika Warszawska H D L Język A Synteza strukturalna 1 Synteza strukturalna icznik Rejestr B l o k i F u n k c j o n a l n e 1. Składamy układ z bloków funkcjonalnych 2. Odwzorowanie technologiczne 2 Komponent Wyboru odpowiedniej

Bardziej szczegółowo

Filtry cyfrowe o skończonej odpowiedzi impulsowej FIR - realizacje

Filtry cyfrowe o skończonej odpowiedzi impulsowej FIR - realizacje Filtry cyfrowe o skończonej odpowiedzi impulsowej FIR - realizacje wersja: 01.2015 1 FPGA zalety i wady Ogromny wzrost wydajności niektórych algorytmów Elastyczność architektury Możliwości znacznego zrównoleglenia

Bardziej szczegółowo

Sposoby projektowania systemów w cyfrowych

Sposoby projektowania systemów w cyfrowych Sposoby projektowania systemów w cyfrowych Top-down Idea całości projektu Dekompozycja na mniejsze bloki Projekt i rafinacja podbloków Łączenie bloków w całość PRZYKŁAD (sumator kaskadowy) zdefiniowanie

Bardziej szczegółowo

Język HDL - VERILOG. (Syntetyzowalna warstwa języka) Hardware Description Language Krzysztof Jasiński PRUS PRUS

Język HDL - VERILOG. (Syntetyzowalna warstwa języka) Hardware Description Language Krzysztof Jasiński PRUS PRUS Język HDL - VERLOG Hardware Description Language (Syntetyzowalna warstwa języka) RUS RUS VERLOG rzegląd zagadnień RUS RUS prowadzenie do języka Reprezentacja układu cyfrowego w Verilogu opis strukturalny

Bardziej szczegółowo

Projektowanie Scalonych Systemów Wbudowanych VERILOG

Projektowanie Scalonych Systemów Wbudowanych VERILOG Projektowanie Scalonych Systemów Wbudowanych VERILOG OPIS BEHAWIORALNY proces Proces wątek sterowania lub przetwarzania danych, niezależny w sensie czasu wykonania, ale komunikujący się z innymi procesami.

Bardziej szczegółowo

Projektowanie Urządzeń Cyfrowych

Projektowanie Urządzeń Cyfrowych Projektowanie Urządzeń Cyfrowych Laboratorium 2 Przykład prostego ALU Opracował: mgr inż. Leszek Ciopiński Wstęp: Magistrale: Program MAX+plus II umożliwia tworzenie magistral. Magistrale są to grupy przewodów

Bardziej szczegółowo

Układy reprogramowalne i SoC Implementacja w układach FPGA

Układy reprogramowalne i SoC Implementacja w układach FPGA Układy reprogramowalne i SoC Implementacja w układach FPGA Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez

Bardziej szczegółowo

Język HDL - VERILOG. (Syntetyzowalna warstwa języka) Hardware Description Language Krzysztof Jasiński PRUS PRUS

Język HDL - VERILOG. (Syntetyzowalna warstwa języka) Hardware Description Language Krzysztof Jasiński PRUS PRUS Język HDL - VERLOG Hardware Description Language (Syntetyzowalna warstwa języka) RUS RUS Język VERLOG w praktyce RUS RUS VERLOG Specyfikacja układów kombinacyjnych RUS RUS Operator warunkowy Conditional_expression?

Bardziej szczegółowo

PUCY Kolos 2: Reloaded

PUCY Kolos 2: Reloaded PUCY Kolos 2: Reloaded 1) Narysować schemat układu mikroprogramowalnego z licznikiem rozkazów. 2) Narysować schemat elementu ścieżki cyklicznej dla sygnału kombinacyjnego 3) Narysować schemat elementu

Bardziej szczegółowo

Architektura systemów komputerowych. Poziom układów logicznych. Układy mnoŝące i dzielące

Architektura systemów komputerowych. Poziom układów logicznych. Układy mnoŝące i dzielące Architektura systemów komputerowych Poziom układów logicznych. Układy mnoŝące i dzielące Cezary Bolek Katedra Informatyki Plan wykładu Układy mnoŝące liczby całkowite MnoŜenie liczb bez znaku MnoŜarka

Bardziej szczegółowo

Programowalne układy logiczne kod kursu: ETD Podstawy języka Verilog W

Programowalne układy logiczne kod kursu: ETD Podstawy języka Verilog W Programowalne układy logiczne kod kursu: ETD008270 Podstawy języka Verilog W2 2.03.2018 mgr inż. Maciej Rudek 2 Tematyka kursu wykład Poziom abstrakcji systemów opisu sprzętu Historia Verilog został stworzony

Bardziej szczegółowo

Projekt prostego procesora

Projekt prostego procesora Projekt prostego procesora Opracowany przez Rafała Walkowiaka dla zajęć z PTC 2012/2013 w oparciu o Laboratory Exercise 9 Altera Corporation Rysunek 1 przedstawia schemat układu cyfrowego stanowiącego

Bardziej szczegółowo

Układy cyfrowe w Verilog HDL. Elementy języka z przykładami. wersja: cz.3

Układy cyfrowe w Verilog HDL. Elementy języka z przykładami. wersja: cz.3 Układy cyfrowe w Verilog Elementy języka z przykładami wersja: 10.2009 cz.3 1 Układy sekwencyjne Układy sekwencyjne mają pamięć Układy synchroniczne najczęściej spotykane wszystkie elementy są kontrolowane

Bardziej szczegółowo

Architektura komputerów, Informatyka, sem.iii. Sumatory

Architektura komputerów, Informatyka, sem.iii. Sumatory Sumatory Architektury sumatorów (zarys) Sumatory 1-bitowe Sumatory z propagacją Przeniesień CPA (Carry Propagate Adders) Sumatory wieloargumentowe 3-argumentowe Half Adder HA Macierz sumatorów RCA Full

Bardziej szczegółowo

Specyfika projektowania Mariusz Rawski

Specyfika projektowania Mariusz Rawski CAD Specyfika projektowania Mariusz Rawski rawski@tele.pw.edu.pl http://rawski.zpt.tele.pw.edu.pl/ System cyfrowy pierwsze skojarzenie Urządzenia wprowadzania danych: klawiatury czytniki urządzenia przetwarzania

Bardziej szczegółowo

Altera Quartus II. Opis niektórych komponentów dostarczanych razem ze środowiskiem. Opracował: mgr inż. Leszek Ciopiński

Altera Quartus II. Opis niektórych komponentów dostarczanych razem ze środowiskiem. Opracował: mgr inż. Leszek Ciopiński Altera Quartus II Opis niektórych komponentów dostarczanych razem ze środowiskiem Opracował: mgr inż. Leszek Ciopiński Spis treści Opis wybranych zagadnień obsługi środowiska Altera Quartus II:...1 Magistrale:...

Bardziej szczegółowo

Laboratorium 10 Temat: Zaawansowane jednostki testowe. Operacje na plikach. Funkcje.

Laboratorium 10 Temat: Zaawansowane jednostki testowe. Operacje na plikach. Funkcje. Laboratorium 10 Temat: Zaawansowane jednostki testowe. Operacje na plikach. Funkcje. 1. W języku VHDL zdefiniowano mechanizm odczytywania i zapisywania danych z i do plików. Pliki te mogą być wykorzystywane

Bardziej szczegółowo

Plan wykładu. Architektura systemów komputerowych. MnoŜenie realizacja sprzętowa (wersja 1) Układy mnoŝące liczby całkowite.

Plan wykładu. Architektura systemów komputerowych. MnoŜenie realizacja sprzętowa (wersja 1) Układy mnoŝące liczby całkowite. Plan wykładu rchitektura systemów komputerowych Poziom układów logicznych. Układy mnoŝące i dzielące Cezary Bolek Katedra Informatyki Układy mnoŝące liczby całkowite MnoŜenie liczb bez znaku MnoŜarka sekwencyjna

Bardziej szczegółowo

Krótkie wprowadzenie do ModelSim i Quartus2

Krótkie wprowadzenie do ModelSim i Quartus2 Krótkie wprowadzenie do ModelSim i Quartus2 wersja 04.2011 1 Plan Oprogramowanie Pliki źródłowe Scenariusze użycia 2 Programy Programy w wersji darmowej do pobrania ze strony www.altera.com ModelSim-Altera

Bardziej szczegółowo

Laboratorium Projektowania Systemów VLSI-ASIC Katedra Elektroniki Akademia Górniczo-Hutnicza

Laboratorium Projektowania Systemów VLSI-ASIC Katedra Elektroniki Akademia Górniczo-Hutnicza Laboratorium Projektowania Systemów VLSI-ASIC Katedra Elektroniki Akademia Górniczo-Hutnicza Projektowanie układów VLSI-ASIC za pomocą techniki komórek standardowych przy użyciu pakietu Cadence Programowanie,

Bardziej szczegółowo

Technika cyfrowa projekt: Sumator 4 bitowy równoległy

Technika cyfrowa projekt: Sumator 4 bitowy równoległy Technika cyfrowa projekt: Sumator 4 bitowy równoległy Autorzy: Paweł Bara Robert Boczek Przebieg prac projektowych: Zadany układ dostaje na wejściu dwie czterobitowe liczby naturalne, sumuje je, po czym

Bardziej szczegółowo

(przykład uogólniony)

(przykład uogólniony) Serial Peripheral Interface (przykład uogólniony) Brak standardu. Inne stosowane nazwy: Synchronous Serial Port (SSP), 4 wire SSI (Synchronous Serial Interface, Texas Instrument), Microwire (National Semiconductor).

Bardziej szczegółowo

VHDL. Zebrał i opracował R.Walkowiak PTC wykład 2013/2014

VHDL. Zebrał i opracował R.Walkowiak PTC wykład 2013/2014 VHDL przykłady rozwiązań Zebrał i opracował R.Walkowiak PTC wykład 2013/2014 for generate Tworzenie wektora obiektów : for in generate -- wyrażenia równoległe end

Bardziej szczegółowo

Podział sumatorów. Równoległe: Szeregowe (układy sekwencyjne) Z przeniesieniem szeregowym Z przeniesieniem równoległym. Zwykłe Akumulujące

Podział sumatorów. Równoległe: Szeregowe (układy sekwencyjne) Z przeniesieniem szeregowym Z przeniesieniem równoległym. Zwykłe Akumulujące Podział sumatorów Równoległe: Z przeniesieniem szeregowym Z przeniesieniem równoległym Szeregowe (układy sekwencyjne) Zwykłe Akumulujące 1 Sumator z przeniesieniami równoległymi G i - Warunek generacji

Bardziej szczegółowo

Cyfrowe przetwarzanie sygnałów Mariusz Rawski

Cyfrowe przetwarzanie sygnałów Mariusz Rawski CAD Cyfrowe przetwarzanie sygnałów Mariusz Rawski rawski@tele.pw.edu.pl http://rawski.zpt.tele.pw.edu.pl/ Cyfrowe przetwarzanie sygnału A/D konwersja sygnału analogowego na cyfrowy (próbkowanie, kwantyzacja,

Bardziej szczegółowo

Układy reprogramowalne i SoC Język VHDL (część 3)

Układy reprogramowalne i SoC Język VHDL (część 3) Układy reprogramowalne i SoC Język VHDL (część 3) Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez ograniczeń

Bardziej szczegółowo

Modelowanie złożonych układów cyfrowych (1)

Modelowanie złożonych układów cyfrowych (1) Modelowanie złożonych układów cyfrowych () funkcje i procedury przykłady (przerzutniki, rejestry) style programowania kombinacyjne bloki funkcjonalne bufory trójstanowe multipleksery kodery priorytetowe

Bardziej szczegółowo

Układy reprogramowalne i SoC Specjalizowane moduły FPGA

Układy reprogramowalne i SoC Specjalizowane moduły FPGA Specjalizowane moduły FPGA Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez ograniczeń - zintegrowany rozwój

Bardziej szczegółowo

Układy reprogramowalne i SoC Język VHDL (część 4)

Układy reprogramowalne i SoC Język VHDL (część 4) Język VHDL (część 4) Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez ograniczeń - zintegrowany rozwój Politechniki

Bardziej szczegółowo

1. ISE WebPack i VHDL Xilinx ISE Design Suite 10.1 VHDL Tworzenie projektu Project Navigator Xilinx ISE Design Suite 10.1 File

1. ISE WebPack i VHDL Xilinx ISE Design Suite 10.1 VHDL Tworzenie projektu Project Navigator Xilinx ISE Design Suite 10.1 File 1. ISE WebPack i VHDL Celem ćwiczenia jest szybkie zaznajomienie się ze środowiskiem projektowym Xilinx ISE Design Suite 10.1 oraz językiem opisu sprzętu VHDL. Tworzenie projektu Uruchom program Project

Bardziej szczegółowo

Systemy wbudowane. Projektowanie systemów wbudowanych na bazie układów CPLD/FPGA Język opisu sprzętu Verilog cz.1

Systemy wbudowane. Projektowanie systemów wbudowanych na bazie układów CPLD/FPGA Język opisu sprzętu Verilog cz.1 Systemy wbudowane Projektowanie systemów wbudowanych na bazie układów CPLD/FPGA Język opisu sprzętu Verilog cz.1 System Quartus II Opis projektu Tekstowy (język opisu sprzętu np. Verilog) Graficzny Wykresy

Bardziej szczegółowo

Wykład 4. Języki Opisu Sprzętu

Wykład 4. Języki Opisu Sprzętu Języki Opisu Sprzętu Prowadzący: dr inż. Andrzej Skoczeń Współrzędne: D-10 222, tel. w. 28-72, e-mail: skoczen@fis.agh.edu.pl Wprowadzenie do Veriloga Przypisania proceduralne (c. d.) Wykład 4 2017 8 listopad

Bardziej szczegółowo

Układy sekwencyjne. Wstęp doinformatyki. Zegary. Układy sekwencyjne. Automaty sekwencyjne. Element pamięciowy. Układy logiczne komputerów

Układy sekwencyjne. Wstęp doinformatyki. Zegary. Układy sekwencyjne. Automaty sekwencyjne. Element pamięciowy. Układy logiczne komputerów Wstęp doinformatyki Układy sekwencyjne Układy logiczne komputerów Układy sekwencyjne Dr inż. Ignacy Pardyka Akademia Świętokrzyska Kielce, 2001 Wstęp do informatyki I. Pardyka Akademia Świętokrzyska Kielce,

Bardziej szczegółowo

Technika cyfrowa Układy arytmetyczne

Technika cyfrowa Układy arytmetyczne Sławomir Kulesza Technika cyfrowa Układy arytmetyczne Wykład dla studentów III roku Informatyki Wersja 1.0, 05/10/2010 Układy arytmetyczne UKŁADY ARYTMETYCZNE UKŁADY SUMUJĄCE i ODEJMUJĄCE UKŁADY MNOŻĄCE

Bardziej szczegółowo

Programowalne układy logiczne kod kursu: ETD Układy kombinacyjne, przypisania, blokujące i nieblokujące cz.2 W

Programowalne układy logiczne kod kursu: ETD Układy kombinacyjne, przypisania, blokujące i nieblokujące cz.2 W Programowalne układy logiczne kod kursu: ETD008270 Układy kombinacyjne, przypisania, blokujące i nieblokujące cz.2 W4 23.03.2018 mgr inż. Maciej Rudek UKŁADY KOMBINACYJNE Układy kombinacyjne Układ kombinacyjny

Bardziej szczegółowo

Układy arytmetyczne. Joanna Ledzińska III rok EiT AGH 2011

Układy arytmetyczne. Joanna Ledzińska III rok EiT AGH 2011 Układy arytmetyczne Joanna Ledzińska III rok EiT AGH 2011 Plan prezentacji Metody zapisu liczb ze znakiem Układy arytmetyczne: Układy dodające Półsumator Pełny sumator Półsubtraktor Pełny subtraktor Układy

Bardziej szczegółowo

Programowalne układy logiczne

Programowalne układy logiczne Programowalne układy logiczne Układy kombinacyjne Szymon Acedański Marcin Peczarski Instytut Informatyki Uniwersytetu Warszawskiego 28 września 2015 Co to jest układ kombinacyjny? Stan wyjść zależy tylko

Bardziej szczegółowo

Programowanie Układów Logicznych kod kursu: ETD6203 W dr inż. Daniel Kopiec. Pamięć w układach programowalnych

Programowanie Układów Logicznych kod kursu: ETD6203 W dr inż. Daniel Kopiec. Pamięć w układach programowalnych Programowanie Układów Logicznych kod kursu: ETD623 Pamięć w układach programowalnych W6 6.4.26 dr inż. Daniel Kopiec Plan wykładu Pamięć w układach programowalnych Zasada działania, podział pamięci Miara

Bardziej szczegółowo

Wykład 3. Języki Opisu Sprzętu. Prowadzący: dr inż. Andrzej Skoczeń Współrzędne: D , tel. w ,

Wykład 3. Języki Opisu Sprzętu. Prowadzący: dr inż. Andrzej Skoczeń Współrzędne: D , tel. w , Języki Opisu Sprzętu Prowadzący: dr inż. Andrzej Skoczeń Współrzędne: D-10 222, tel. w. 28-72, e-mail: skoczen@fis.agh.edu.pl Tablice i wektory Reguły łączenia portów Wykład 3 2018 10 październik 2018

Bardziej szczegółowo

Wykład 2. Języki Opisu Sprzętu. Prowadzący: dr inż. Andrzej Skoczeń Współrzędne: D , tel. w ,

Wykład 2. Języki Opisu Sprzętu. Prowadzący: dr inż. Andrzej Skoczeń Współrzędne: D , tel. w , Języki Opisu Sprzętu Prowadzący: dr inż. Andrzej Skoczeń Współrzędne: D-10 222, tel. w. 28-72, e-mail: skoczen@fis.agh.edu.pl Dwa oblicza systemu cyfrowego Opcje projektowe dla systemu cyfrowego Wykład

Bardziej szczegółowo

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: PROGRAMOWALNE STRUKTURY LOGICZNE

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: PROGRAMOWALNE STRUKTURY LOGICZNE Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: PROGRAMOWALNE STRUKTURY LOGICZNE ES1C420 300 Ćwiczenie Nr 8 KONFIGUROWALNE

Bardziej szczegółowo

1 Wstęp. 2 Proste przykłady. 3 Podstawowe elementy leksykalne i typy danych. 6 Opis strukturalny. 7 Moduł testowy (testbench)

1 Wstęp. 2 Proste przykłady. 3 Podstawowe elementy leksykalne i typy danych. 6 Opis strukturalny. 7 Moduł testowy (testbench) Wstęp SYSTEMY WBUDOWANE Układy kombinacyjne c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 c Dr inż. Ignacy Pardyka (Inf.UJK) Systemy wbudowane Rok akad. 2011/2012

Bardziej szczegółowo

LABORATORIUM TECHNIKA CYFROWA. Pamięci. Rev.1.35

LABORATORIUM TECHNIKA CYFROWA. Pamięci. Rev.1.35 LABORATORIUM TECHNIKA CYFROWA Pamięci Rev.1.35 1. Cel ćwiczenia Praktyczna weryfikacja wiedzy teoretycznej z projektowania modułów sterowania oraz kontroli pamięci 2. Kolokwium Kolokwium wstępne sprawdzające

Bardziej szczegółowo

Język VERILOG w praktyce

Język VERILOG w praktyce Język VERLOG w praktyce RUS RUS Język VERLOG rzykłady syntezy blokowej RUS RUS Elementy systemu cyfrowego magistrala danych cd. module swap (Data, Resetn, w, Clock, Extern, RinExt, Busires); input [7:0]

Bardziej szczegółowo

Szybkie układy mnożące

Szybkie układy mnożące Szybkie układy mnożące Operacja mnożenia Operacje dodawania i mnożenia są podstawą algorytmów obliczania wartości innych złożonych funkcji matematycznych oraz przetwarzania sygnałów Implementacje bitowo-szeregowe

Bardziej szczegółowo

Projektowanie automatów z użyciem VHDL

Projektowanie automatów z użyciem VHDL Projektowanie automatów z użyciem VHDL struktura automatu i jego modelu w VHDL przerzutnik T jako automat przykłady automatów z wyjściami typu: Moore'a Mealy stanu kodowanie stanów automatu Wykorzystano

Bardziej szczegółowo

Laboratorium Podstaw Techniki Cyfrowej

Laboratorium Podstaw Techniki Cyfrowej Laboratorium Podstaw Techniki Cyfrowej Ćwiczenie 5: Wprowadzenie do języków opisu sprzętu 1. Języki opisu sprzętu Języki opisu sprzętu(hdl Hardware Description Language) to języki słuŝące do opisu układów

Bardziej szczegółowo

Układy reprogramowalne i SoC Testbenches. Symulacja sterowana zdarzeniami.

Układy reprogramowalne i SoC Testbenches. Symulacja sterowana zdarzeniami. Testbenches. Symulacja sterowana zdarzeniami. Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez ograniczeń -

Bardziej szczegółowo

Szybkie układy mnożące

Szybkie układy mnożące Szybkie układy mnożące Operacja mnożenia Operacje dodawania i mnożenia są podstawą algorytmów obliczania wartości innych złożonych funkcji matematycznych oraz przetwarzania sygnałów Implementacje bitowo-szeregowe

Bardziej szczegółowo

XC4000: LUT jako ROM Układy Cyfrowe i Systemy Wbudowane 2 Układy FPGA cz. 2 ROM32X1 VHDL inference example ROM 16x2b type

XC4000: LUT jako ROM Układy Cyfrowe i Systemy Wbudowane 2 Układy FPGA cz. 2 ROM32X1 VHDL inference example ROM 16x2b type Układy Cyfrowe i Systemy Wbudowane 2 XC4000: LUT jako ROM Układy FPGA cz. 2 dr inż. Jarosław Sugier Jaroslaw.Sugier@pwr.edu.pl W-4/K-9, pok. 227 C-3 FPGA(2) - 1 FPGA(2) - 2 ROM32X1 VHDL inference example

Bardziej szczegółowo

Projektowanie w VHDL

Projektowanie w VHDL Projektowanie w VHDL powtórka wiadomości o języku VHDL słowa zastrzeżone typy danych, deklaracje obiektów instrukcje współbieżne i sekwencyjne pętle for, while typowe bloki układów cyfrowych przykłady

Bardziej szczegółowo

Pracownia elektryczna i elektroniczna. Elektronika cyfrowa. Ćwiczenie nr 5.

Pracownia elektryczna i elektroniczna. Elektronika cyfrowa. Ćwiczenie nr 5. Pracownia elektryczna i elektroniczna. Elektronika cyfrowa. Ćwiczenie nr 5. Klasa III Opracuj projekt realizacji prac związanych z badaniem działania cyfrowych bloków arytmetycznych realizujących operacje

Bardziej szczegółowo

Układy FPGA w przykładach, część 2

Układy FPGA w przykładach, część 2 Układy FPGA w przykładach, część 2 W drugiej części artykułu zajmiemy się omówieniem wyposażenia (po mikrokontrolerowemu : peryferiów) układów FPGA z rodziny Spartan 3, co ułatwi ich wykorzystywanie w

Bardziej szczegółowo

Przykładowe pytania z części PSPICE. 1. Podaj zasady tworzenia pliku symulacyjnego. 2. Czy składnia PSPICE jest czuła na wielkość liter? 3.

Przykładowe pytania z części PSPICE. 1. Podaj zasady tworzenia pliku symulacyjnego. 2. Czy składnia PSPICE jest czuła na wielkość liter? 3. Przykładowe pytania z części PSPICE. 1. Podaj zasady tworzenia pliku symulacyjnego. 2. Czy składnia PSPICE jest czuła na wielkość liter? 3. Jak umieszcza się komentarze w pliku symulacyjnym PSPICE? 4.

Bardziej szczegółowo

Instrukcje sekwencyjne

Instrukcje sekwencyjne nstrukcje sekwencyjne nstrukcje sekwencyjne są stosowane w specyfikacji behawioralnej (behavioral description) rzede wszystkim w tzw. procesach (process) roces nstrukcja F nstrukcja CASE Z 1 rocesy Konstrukcja

Bardziej szczegółowo

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki ĆWICZENIE Nr 7 (2h) Obsługa urządzenia peryferyjnego z użyciem pamięci w VHDL. Instrukcja do zajęć laboratoryjnych z przedmiotu

Bardziej szczegółowo

Układy kombinacyjne 1

Układy kombinacyjne 1 Układy kombinacyjne 1 Układy kombinacyjne są to układy cyfrowe, których stany wyjść są zawsze jednoznacznie określone przez stany wejść. Oznacza to, że doprowadzając na wejścia tych układów określoną kombinację

Bardziej szczegółowo

Programowanie Układów Logicznych kod kursu: ETD6203. VHDL, ISE WebPACK, Plan Ahead, Impact W

Programowanie Układów Logicznych kod kursu: ETD6203. VHDL, ISE WebPACK, Plan Ahead, Impact W Programowanie Układów Logicznych kod kursu: ETD6203 VHDL, ISE WebPACK, Plan Ahead, Impact W2 28.02.2018 mgr inż. Maciej Rudek opracował: dr inż. Daniel Kopiec Plan wykładu 1 2 3 4 5 6 VHDL powtórka ważniejszych

Bardziej szczegółowo

VHDL. Behawioralny Strukturalny Czasowy. Poziom RTL

VHDL. Behawioralny Strukturalny Czasowy. Poziom RTL Style opisu VHDL VHDL Behawioralny Strukturalny Czasowy Równania boolowskie Poziom RTL Przebieg czasowy c = a v b c

Bardziej szczegółowo

Projektowanie hierarchiczne Mariusz Rawski

Projektowanie hierarchiczne Mariusz Rawski CAD Projektowanie hierarchiczne rawski@tele.pw.edu.pl http://rawski.zpt.tele.pw.edu.pl/ Zamek elektroniczny: Elektroniczny zamek kod 4 cyfrowy kod wprowadzony z klawiatury ready sygnalizacja gotowości

Bardziej szczegółowo

Systemy Czasu Rzeczywistego FPGA

Systemy Czasu Rzeczywistego FPGA 01. Systemy Czasu Rzeczywistego FPGA 1 Systemy Czasu Rzeczywistego FPGA laboratorium: 03 autor: mgr inż. Mateusz Baran 01. Systemy Czasu Rzeczywistego FPGA 2 1 Spis treści FPGA... 1 1 Spis treści... 2

Bardziej szczegółowo

VHDL cz.1. Rafał Walkowiak IIn PP Wer

VHDL cz.1. Rafał Walkowiak IIn PP Wer VHDL cz.1 Rafał Walkowiak IIn PP Wer 2.0 11.2013 VHDL VHDL (ang. Very High Speed Integrated Circuits Hardware Description Language ) jest popularnym językiem opisu sprzętu używanym w komputerowym projektowaniu

Bardziej szczegółowo

Układy logiczne układy cyfrowe

Układy logiczne układy cyfrowe Układy logiczne układy cyfrowe Jak projektować układy cyfrowe (systemy cyfrowe) Układy arytmetyki rozproszonej filtrów cyfrowych Układy kryptograficzne X Selektor ROM ROM AND Specjalizowane układy cyfrowe

Bardziej szczegółowo

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: SYNTEZA UKŁADÓW CYFROWYCH ES2D100005

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: SYNTEZA UKŁADÓW CYFROWYCH ES2D100005 Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: SYNTEZA UKŁADÓW CYFROWYCH ES2D100005 Ćwiczenie Nr 8 Implementacja prostego

Bardziej szczegółowo

Przykłady do wykładu Języki modelowania i symulacji

Przykłady do wykładu Języki modelowania i symulacji Przykłady do wykładu Języki modelowania i symulacji dr inż. Bogdan Pankiewicz Gdańsk, listopad 2011 - grudzień 2015 Część I - PSPICE Przykład I - przerzutnik D Czynności do wykonania: Wprowadzenie opisu

Bardziej szczegółowo

Systemy Czasu Rzeczywistego FPGA

Systemy Czasu Rzeczywistego FPGA 01. Systemy Czasu Rzeczywistego FPGA 1 Systemy Czasu Rzeczywistego FPGA laboratorium: 05 autor: mgr inż. Mateusz Baran 01. Systemy Czasu Rzeczywistego FPGA 2 1 Spis treści FPGA... 1 1 Spis treści... 2

Bardziej szczegółowo

Realizacja algorytmu wyznaczania wyrazów ciągu w języku VHDL z zastosowaniem podziału projektu na moduły: FSM i Data Path.

Realizacja algorytmu wyznaczania wyrazów ciągu w języku VHDL z zastosowaniem podziału projektu na moduły: FSM i Data Path. Zakład Cyberbezpieczeństwa, Instytut Telekomunikacji, Politechnika Warszawska, 2015. 1 Układy Cyfrowe laboratorium Przykład realizacji ćwiczenia nr 6 (wersja 2015) 1. Wstęp 1.1. Algorytm Realizacja algorytmu

Bardziej szczegółowo

Elementy języka VHDL. obiekty typy danych atrybuty pakiety i biblioteki instrukcje współbieżne instrukcje sekwencyjne. PUE-w3 1

Elementy języka VHDL. obiekty typy danych atrybuty pakiety i biblioteki instrukcje współbieżne instrukcje sekwencyjne. PUE-w3 1 Elementy języka VHDL obiekty typy danych atrybuty pakiety i biblioteki instrukcje współbieżne instrukcje sekwencyjne PUE-w3 1 Obiekty (sygnały, zmienne, stałe, pliki) Obiekty służą do zapisu i pamiętania

Bardziej szczegółowo

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 4 (3h) Przerzutniki, zatrzaski i rejestry w VHDL

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 4 (3h) Przerzutniki, zatrzaski i rejestry w VHDL Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki ĆWICZENIE Nr 4 (3h) Przerzutniki, zatrzaski i rejestry w VHDL Instrukcja pomocnicza do laboratorium z przedmiotu Synteza układów

Bardziej szczegółowo

Pojedyncze wartości zadeklarowanego typu Ustawiane przed rozpoczęciem symulacji bez moŝliwości

Pojedyncze wartości zadeklarowanego typu Ustawiane przed rozpoczęciem symulacji bez moŝliwości Stałe - constant Pojedyncze wartości zadeklarowanego typu Ustawiane przed rozpoczęciem symulacji bez moŝliwości późniejszych zmian Deklarowane w ciele architektury Widoczne dla całej architektury architecture

Bardziej szczegółowo

Modelowanie liczników w języku Verilog i ich implementacja w strukturze FPGA

Modelowanie liczników w języku Verilog i ich implementacja w strukturze FPGA Modelowanie liczników w języku Verilog i ich implementacja w strukturze FPGA Licznik binarny Licznik binarny jest najprostszym i najpojemniejszym licznikiem. Kod 4 bitowego synchronicznego licznika binarnego

Bardziej szczegółowo

Układy reprogramowalne i SoC Język VHDL (część 5)

Układy reprogramowalne i SoC Język VHDL (część 5) Układy reprogramowalne i SoC Język VHDL (część 5) Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez ograniczeń

Bardziej szczegółowo

Verilog HDL. Język Opisu Sprzętu Hardware Description Language Część I. Elementy języka. dr inż. Paweł Tomaszewicz H D L

Verilog HDL. Język Opisu Sprzętu Hardware Description Language Część I. Elementy języka. dr inż. Paweł Tomaszewicz H D L Verilog Język Opisu Sprzętu ardware escription anguage Część I. Elementy języka dr inż. Paweł Tomaszewicz 1 istoria krótko ata '80 potrzeba stworzenia jednego języka do symulacji na różnych poziomach opisu

Bardziej szczegółowo

Projektowanie hierarchiczne Mariusz Rawski

Projektowanie hierarchiczne Mariusz Rawski CAD Projektowanie hierarchiczne rawski@tele.pw.edu.pl http://rawski.zpt.tele.pw.edu.pl/ Zamek elektroniczny: Elektroniczny zamek kod 4 cyfrowy kod wprowadzony z klawiatury ready sygnalizacja gotowości

Bardziej szczegółowo

Układ sterowania 4-cyfrowym wyświetlaczem 7-segmentowym LED

Układ sterowania 4-cyfrowym wyświetlaczem 7-segmentowym LED Język Verilog w przykładach (2) Dodatkowe materiały na CD Układ sterowania 4-cyfrowym wyświetlaczem 7-segmentowym LED W tej części kursu opiszemy bloki funkcjonalne układu sterowania 4-cyfrowym wyświetlaczem

Bardziej szczegółowo

Metoda Newtona przyjmuje następujące założenia dla funkcji :

Metoda Newtona przyjmuje następujące założenia dla funkcji : Zakład Cyberbezpieczeństwa, Instytut Telekomunikacji, Politechnika Warszawska, 2015. 1 Układy Cyfrowe laboratorium Przykład realizacji ćwiczenia nr 5 wersja 2015) 1. Temat Realizacja iteracyjnego algorytmu

Bardziej szczegółowo

Ćwiczenie 27 Temat: Układy komparatorów oraz układy sumujące i odejmujące i układy sumatorów połówkowych i pełnych. Cel ćwiczenia

Ćwiczenie 27 Temat: Układy komparatorów oraz układy sumujące i odejmujące i układy sumatorów połówkowych i pełnych. Cel ćwiczenia Ćwiczenie 27 Temat: Układy komparatorów oraz układy sumujące i odejmujące i układy sumatorów połówkowych i pełnych. Cel ćwiczenia Poznanie zasad budowy działania komparatorów cyfrowych. Konstruowanie komparatorów

Bardziej szczegółowo

Projektowanie układów VLSI-ASIC techniką od ogółu do szczegółu (top-down) przy użyciu pakietu CADENCE

Projektowanie układów VLSI-ASIC techniką od ogółu do szczegółu (top-down) przy użyciu pakietu CADENCE Katedra Elektroniki Akademia Górniczo-Hutnicza w Krakowie Projektowanie układów VLSI-ASIC techniką od ogółu do szczegółu (top-down) przy użyciu pakietu CADENCE opis układu w Verilog, kompilacja i symulacja

Bardziej szczegółowo

Projektowanie scalonych systemów wbudowanych VERILOG. VERLIOG - historia

Projektowanie scalonych systemów wbudowanych VERILOG. VERLIOG - historia Projektowanie scalonych systemów wbudowanych VERILOG VERLIOG - historia Początki lat 80 XX w. Phil Moorby Gateway Design Automation symulator Verilog XL 1987 Synopsys Verilog jako język specyfikacji projektu

Bardziej szczegółowo

Procesory w FPGA H D L. dr inż. Paweł Tomaszewicz Instytut Telekomunikacji Politechnika Warszawska

Procesory w FPGA H D L. dr inż. Paweł Tomaszewicz Instytut Telekomunikacji Politechnika Warszawska Procesory w FPGA 1 System w FPGA SOPC - System on a Programmable Chip System mikroprocesorowy w układzie programowalnym: softprocesor zrealizowany w logice układu FPGA NIOS2 Altera Microblaze Xilinx OpenRISC

Bardziej szczegółowo

Elementy struktur cyfrowych. Magistrale, układy iterowane w przestrzeni i w czasie, wprowadzanie i wyprowadzanie danych.

Elementy struktur cyfrowych. Magistrale, układy iterowane w przestrzeni i w czasie, wprowadzanie i wyprowadzanie danych. Elementy struktur cyfrowych Magistrale, układy iterowane w przestrzeni i w czasie, wprowadzanie i wyprowadzanie danych. Magistrale W układzie bank rejestrów do przechowywania danych. Wybór źródła danych

Bardziej szczegółowo

Siła (w) pamięci on-chip Implementacje pamięci w układach Cyclone IV firmy Altera

Siła (w) pamięci on-chip Implementacje pamięci w układach Cyclone IV firmy Altera PODZESPOŁY Siła (w) pamięci on-chip Implementacje pamięci w układach Cyclone IV firmy Altera Dodatkowe materiały na CD i FTP Jedną ze sztandarowych cech współczesnych układów FPGA jest możliwość implementacji

Bardziej szczegółowo

1 Wstęp. 2 Operatory. 3 Blok always dla układów kombinacyjnych. 4 Instrukcja IF. 5 Instrukcja CASE. 6 Struktury konstrukcji warunkowych

1 Wstęp. 2 Operatory. 3 Blok always dla układów kombinacyjnych. 4 Instrukcja IF. 5 Instrukcja CASE. 6 Struktury konstrukcji warunkowych Wstęp PROGRAMOWANIE STRUTUR CYFROWYCH Układy kombinacyjne poziomu RT c Dr inż. Ignacy Pardyka UNIWERSYTET JANA OCHANOWSIEGO w ielcach 1 Rok akad. 2013/2014 2 1 Instytut Fizyki, Zakład Informatyki, e-mail:

Bardziej szczegółowo

Kierunek EiT Specjalność Sieci i usługi, V rok Programowalne Układy Cyfrowe. Zaawansowany VHDL. Rajda & Kasperek 2014 Katedra Elektroniki AGH 2

Kierunek EiT Specjalność Sieci i usługi, V rok Programowalne Układy Cyfrowe. Zaawansowany VHDL. Rajda & Kasperek 2014 Katedra Elektroniki AGH 2 Kierunek EiT Specjalność Sieci i usługi, V rok Programowalne Układy Cyfrowe Zaawansowany VHDL Rajda & Kasperek 2014 Katedra Elektroniki AGH 1 Program wykładu Opis strukturalny map, generate Pojęcia leksykalne

Bardziej szczegółowo

Systemy Czasu Rzeczywistego FPGA

Systemy Czasu Rzeczywistego FPGA 01. Systemy Czasu Rzeczywistego FPGA 1 Systemy Czasu Rzeczywistego FPGA laboratorium: 04 autor: mgr inż. Mateusz Baran 01. Systemy Czasu Rzeczywistego FPGA 2 1 Spis treści FPGA... 1 1 Spis treści... 2

Bardziej szczegółowo

Języki projektowania HDL

Języki projektowania HDL Języki projektowania HDL Wykład dr inż. Marek Wójcikowski Ver: 2015-03-11 1 Zasady zaliczenia Wykład 2 kolokwia: 22.5+22.5 punktów=45 punktów Obecność na wykładzie 5 punktów Laboratorium 50 punktów Warunek

Bardziej szczegółowo

Język Verilog w projektowaniu układów FPGA

Język Verilog w projektowaniu układów FPGA POLITECHNIKA ZIELONOGÓRSKA Wydział Elektryczny Język Verilog w projektowaniu układów FPGA Jacek Bieganowski Grzegorz Wawrzyniak Promotor: dr inż. Marek Węgrzyn Zielona Góra, czerwiec 2001 Spis treści 1.

Bardziej szczegółowo

Projektowanie Scalonych Systemów Wbudowanych VERILOG

Projektowanie Scalonych Systemów Wbudowanych VERILOG Projektowanie Scalonych Systemów Wbudowanych VERILOG VERLIOG - historia Początki lat 80 XX w. Phil Moorby Gateway Design Automation symulator Verilog XL 1987 Synopsys Verilog jako język specyfikacji projektu

Bardziej szczegółowo

Projektowanie Scalonych Systemów Wbudowanych VERILOG

Projektowanie Scalonych Systemów Wbudowanych VERILOG Projektowanie Scalonych Systemów Wbudowanych VERILOG VERLIOG - historia Początki lat 80 XX w. Phil Moorby Gateway Design Automation symulator Verilog XL 1987 Synopsys Verilog jako język specyfikacji projektu

Bardziej szczegółowo

Układy logiczne układy cyfrowe

Układy logiczne układy cyfrowe Układy logiczne układy cyfrowe Jak projektować układy cyfrowe (systemy cyfrowe) Układy arytmetyki rozproszonej filtrów cyfrowych Układy kryptograficzne Evatronix KontrolerEthernet MAC (Media Access Control)

Bardziej szczegółowo

Programowanie równoległe

Programowanie równoległe Programowanie równoległe ELEMENTARNE ALGORYTMY (PODSTAWA: Z.CZECH. WPROWADZENIE DO OBLICZEŃ RÓWNOLEGŁYCH. PWN, 2010) Andrzej Baran baran@kft.umcs.lublin.pl Charakterystyka ilościowa algorytmów Przez algorytm

Bardziej szczegółowo

Języki projektowania HDL

Języki projektowania HDL Języki projektowania HDL Wykład dr hab. inż. Marek Wójcikowski Ver: 2019-02-22 1 Zasady zaliczenia Wykład 2 kolokwia: 25+25 punktów=50 punktów Obecność na wykładzie +5 punktów Laboratorium 50 punktów (kierunkowy

Bardziej szczegółowo

Architektura komputerów Wykład 2

Architektura komputerów Wykład 2 Architektura komputerów Wykład 2 Jan Kazimirski 1 Elementy techniki cyfrowej 2 Plan wykładu Algebra Boole'a Podstawowe układy cyfrowe bramki Układy kombinacyjne Układy sekwencyjne 3 Algebra Boole'a Stosowana

Bardziej szczegółowo

Elementy struktur cyfrowych. Magistrale, układy iterowane w przestrzeni i w czasie, wprowadzanie i wyprowadzanie danych.

Elementy struktur cyfrowych. Magistrale, układy iterowane w przestrzeni i w czasie, wprowadzanie i wyprowadzanie danych. Elementy struktur cyfrowych Magistrale, układy iterowane w przestrzeni i w czasie, wprowadzanie i wyprowadzanie danych. Magistrale W układzie bank rejestrów służy do przechowywania danych. Wybór źródła

Bardziej szczegółowo

Macierzowe algorytmy równoległe

Macierzowe algorytmy równoległe Macierzowe algorytmy równoległe Zanim przedstawimy te algorytmy zapoznajmy się z metodami dekompozycji macierzy, możemy wyróżnić dwa sposoby dekompozycji macierzy: Dekompozycja paskowa - kolumnowa, wierszowa

Bardziej szczegółowo

Ćwiczenie 01 - Strona nr 1 ĆWICZENIE 01

Ćwiczenie 01 - Strona nr 1 ĆWICZENIE 01 ĆWICZENIE 01 Ćwiczenie 01 - Strona nr 1 Polecenie: Bez użycia narzędzi elektronicznych oraz informatycznych, wykonaj konwersje liczb z jednego systemu liczbowego (BIN, OCT, DEC, HEX) do drugiego systemu

Bardziej szczegółowo