PROGRAMOWANIE STRUKTUR CYFROWYCH. Konwencje dla asemblera KCPSM3. Simple IO. PicoBlaze - projekty. c Dr inż. Ignacy Pardyka. Rok akad.

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

Download "PROGRAMOWANIE STRUKTUR CYFROWYCH. Konwencje dla asemblera KCPSM3. Simple IO. PicoBlaze - projekty. c Dr inż. Ignacy Pardyka. Rok akad."

Transkrypt

1 PROGRAMOWANIE STRUTUR CYFROWYCH PicoBlaze - projekty c Dr inż. Ignacy Pardyka UNIWERSYTET JANA OCHANOWSIEGO w ielcach 1 Rok akad. 2014/ Instytut Fizyki, Zakład Informatyki, ignacy.pardyka@ujk.edu.pl c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 1 Program dla CPSM3 2 Program dla CPSM3 3 z przerwaniami Program dla CPSM3 4 Interfejsy standardowe FPGA: omunikacja PC z Nexys2 przez USB i zastosowania FPGA: Interfejs RS232 i zastosowania FPGA: Interfejs VGA i zastosowania FPGA: Interfejs PS/2 - klawiatura uniwersalna FPGA: Interfejs PS/2 - mysz 5 Literatura c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 Program dla CPSM3 onwencje dla asemblera CPSM3 Etykiety adresowe zakończone znakiem :, np. forever: omentarz w linii po znaku ; Heksadecymalne literały liczbowe, np. FA c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91

2 Program dla CPSM3 Program dla CPSM3 Program - założenia Program: dyrektywy Program ma wyznaczać wartość wyrażenia: a 2 + b 2 Wynik ma być wyświetlony na 8 diodach Wartości a, b mają być odczytane z przełączników: a: sw[7:4] b: sw[3:0] Wykorzystanie pamięci danych ; Square circuit with simple I/O interface ;Program operation: ; - read switch to a (4 MSBs) and b (4 LSBs) ; - calculate a*a + b*b ; - display data on 8 leds ; Dataconstant constant UP_NIBBLE_MAS, 0F ; ; Dataram address alias constant a_lsb, 00 ; lower byte of a constant b_lsb, 02 ; lower byte of b constant aa_lsb, 04 ; lower byte of a*a constant aa_msb, 05 ; upper byte of a*a constant bb_lsb, 06 ; lower byte of b*b constant bb_msb, 07 ; upper byte of b*b constant aabb_lsb, 08 ; lower byte of a*a + b*b constant aabb_msb, 09 ; upper byte of a*a + b*b constant aabb_cout, 0A ; carry of a*a + b*b c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 Program dla CPSM3 Program dla CPSM3 Program: dyrektywy Program główny ; Register alias ;commonly used local variables namereg s0, data ;reg for temporary data namereg s1, addr ;reg for temporary mem & i/o port addr namereg s2, i ;general-purpose loop index ;global variables namereg sf, sw_in ; Port alias ; input port definitions constant sw_port, 01 ;8-bit switches ; output port definitions constant led_port, 05 ; Main program ;Calling hierarchy: ; ;main ; - clr_data_mem ; - read_switch ; - get_upper_nibble ; - get_lower_nibble ; - square ; - mult_soft ; - write_led ; call clr_data_mem forever: call read_switch call square call write_led jump forever c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91

3 Program dla CPSM3 Program dla CPSM3 ;routine: clr_data_mem ; function: clear data ram ; temp register: data, i clr_data_mem: load i, 40 ;unitize loop index to 64 load data, 00 clr_mem_loop: sub i, 01 ;dec loop index store data, (i) jump nz, clr_mem_loop ;repeat until i=0 ;routine: read switch ; function: obatin two nibbles from input ; input register: sw_in ; temp register: data read_switch: input sw_in, sw_port ;read switch input load data, sw_in call get_lower_nibble store data, a_lsb ;store a to data ram load data, sw_in call get_upper_nibble store data, b_lsb ;store b to data ram c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 Program dla CPSM3 Program dla CPSM3 ;routine: get_lower_nibble ; function: get lower 4-bit of data ; input register: data ; output register: data get_lower_nibble: and data, UP_NIBBLE_MAS ;clear upper nibble ;routine: get_lupper_nible ; function: get upper 4-bit of in_data ; input register: data ; output register: data get_upper_nibble: sr0 data ;right shift 4 times sr0 data sr0 data sr0 data ;routine: write_led ; function: output 8 LSBs of result to 8 leds ; temp register: data write_led: fetch data, aabb_lsb output data, led_port c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91

4 Program dla CPSM3 Program dla CPSM3 ;routine: square ; function: calculate a*a + b*b ; data/result stored in ram started w/ SQ_BASE_ADDR ; temp register: s3, s4, s5, s6, data square: ;calculate a*a fetch s3, a_lsb ;load a fetch s4, a_lsb ;load a call mult_soft ;calculate a*a store s6, aa_lsb ;store lower byte of a*a store s5, aa_msb ;store upper byte of a*a ;calculate b*b fetch s3, b_lsb ;load b fetch s4, b_lsb ;load b call mult_soft ;calculate b*b store s6, bb_lsb ;store lower byte of b*b store s5, 07 ;store upper byte of b*b ;calculate a*a+b*b fetch data, aa_lsb ;get lower byte of a*a add data, s6 ;add lower byte of a*a+b*b store data, aabb_lsb ;store lower byte of a*a+b*b fetch data, aa_msb ;get upper byte of a*a addcy data, s5 ;add upper byte of a*a+b*b store data, aabb_msb ;store upper byte of a*a+b*b load data, 00 ;clear data, but keep carry addcy data, 00 ;get carry-out from previous + store data, aabb_cout ;store carry-out of a*a+b*b c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 ;routine: mult_soft ; function: 8-bit unsigned multiplier using ; shift-and-add algorithm ; input register: ; s3: multiplicand ; s4: multiplier ; output register: ; s5: upper byte of product ; s6: lower byte of product ; temp register: i mult_soft: load s5, 00 ;clear s5 load i, 08 ;initialize loop index mult_loop: sr0 s4 ;shift lsb to carry jump nc, shift_prod ;lsb is 0 add s5, s3 ;lsb is 1 shift_prod: sra s5 ;shift upper byte right, ;carry to MSB, LSB to carry sra s6 ;shift lower byte right, ;lsb of s5 to MSB of s6 sub i, 01 ;dec loop index jump nz, mult_loop ;repeat until i=0 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 Program dla CPSM3 Program dla CPSM3 Symulacja w pblaze IDE Różnice: CPSM3 - pblaze c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91

5 Program dla CPSM3 Program dla CPSM3 Różnice: CPSM3 - pblaze Różnice: CPSM3 - pblaze c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 module pico_sio ( input wire clk, reset, input wire [7:0] sw, output wire [7:0] Led ); // signal declaration // CPSM3/ROM signals wire [9:0] address; wire [17:0] instruction; wire [7:0] port_id, in_port, out_port; wire write_strobe; // register signals reg [7:0] led_reg; // CPSM and ROM instantiation kcpsm3 proc_unit (.clk(clk),.reset(reset),.address(address),.instruction(instruction),.port_id(),.write_strobe(write_strobe),.out_port(out_port),.read_strobe(),.in_port(in_port),.interrupt(1 b0),.interrupt_ack()); sio_rom rom_unit (.clk(clk),.address(address),.instruction(instruction)); c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91

6 Testbench timescale 1ns / 1ps module pico_sio_tb; // output interface clk) if (write_strobe) led_reg <= out_port; assign Led = led_reg; // input interface assign in_port = sw; endmodule reg clk, reset; reg [7:0] sw; wire [7:0] Led; localparam T = 20; pico_sio uut (.clk(clk),.reset(reset),.sw(sw),.led(led) ); always begin #(T/2) clk <= ~clk; end initial begin clk = 0; reset = 1; #(T) reset = 0; sw[7:4] = 4 b0100; // a sw[3:0] = 4 b0011; // b end endmodule c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 Symulacja w Xilinx ISE Symulacja w Xilinx ISE c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91

7 Symulacja w Xilinx ISE Implementacja w FPGA NET "clk" NET "reset" NET "Led<0>" NET "Led<1>" NET "Led<2>" NET "Led<3>" NET "Led<4>" NET "Led<5>" NET "Led<6>" NET "Led<7>" NET "sw<0>" NET "sw<1>" NET "sw<2>" NET "sw<3>" NET "sw<4>" NET "sw<5>" NET "sw<6>" NET "sw<7>" LOC = "B8"; LOC = "H13"; LOC = "J14"; LOC = "J15"; LOC = "15"; LOC = "14"; LOC = "E17"; LOC = "P15"; LOC = "F4"; LOC = "R4"; LOC = "G18"; LOC = "H18"; LOC = "18"; LOC = "17"; LOC = "L14"; LOC = "L13"; LOC = "N17"; LOC = "R17"; c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 1 Program dla CPSM3 2 Program dla CPSM3 3 z przerwaniami Program dla CPSM3 4 Interfejsy standardowe FPGA: omunikacja PC z Nexys2 przez USB i zastosowania FPGA: Interfejs RS232 i zastosowania FPGA: Interfejs VGA i zastosowania FPGA: Interfejs PS/2 - klawiatura uniwersalna FPGA: Interfejs PS/2 - mysz 5 Literatura c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 Wejścia c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91

8 Wyjścia Dekoder adresów wyjść c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 Dekoder adresów wyjść w HDL Porty wyjść w HDL // decoding circuit for enable signals if (write_strobe) case (port_id[1:0]) 2 b00: en_d = 4 b0001; 2 b01: en_d = 4 b0010; 2 b10: en_d = 4 b0100; 2 b11: en_d = 4 b1000; endcase else en_d = 4 b0000; // outport port id: // 0x00: ds0 // 0x01: ds1 // 0x02: ds2 // 0x03: ds3 // registers clk) begin if (en_d[0]) ds0_reg <= out_port; if (en_d[1]) ds1_reg <= out_port; if (en_d[2]) ds2_reg <= out_port; if (en_d[3]) ds3_reg <= out_port; end c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91

9 Urządzenia wejściowe i wyjściowe na płycie Nexys2 Program: dyrektywy Program dla CPSM3 Przełączniki ustawiające 8-bitowe wartości: a, b Przycisk button 0: zerowanie pamięci danych Przycisk button 1: zapis wartości (a, b) - ustawianie flagi Wskaźniki 7-segmentowe (dp, 4 x 4 bit): 17-bit wynik hex ; Square circuit with 7-seg LED interface ;Program operation: ; - read a and b from switch ; - calculate a*a + b*b ; - display data on 7-seg led ; Data ram address alias constant a_lsb, 00 constant b_lsb, 02 constant aa_lsb, 04 constant aa_msb, 05 constant bb_lsb, 06 constant bb_msb, 07 constant aabb_lsb, 08 constant aabb_msb, 09 constant aabb_cout, 0A constant led0, 10 constant led1, 11 constant led2, 12 constant led3, 13 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 Program dla CPSM3 Program dla CPSM3 Program: dyrektywy Program główny ; Register alias ;commonly used local variables namereg s0, data ;reg for temporary data namereg s1, addr ;reg for temporary mem & i/o port addr namereg s2, i ;general-purpose loop index ;global variables namereg sf, switch_a_b ;ram offset for current switch input ; Port alias ; input port definitions constant rd_flag_port, 00 ;2 flags (xxxxxxsc): constant sw_port, 01 ;8-bit switch ; output port definitions constant sseg0_port, 00 ;7-seg led 0 constant sseg1_port, 01 ;7-seg led 1 constant sseg2_port, 02 ;7-seg led 2 constant sseg3_port, 03 ;7-seg led 3 ; Main program ;Calling hierarchy: ; ;main ; - init ; - proc_btn ; - init ; - square ; - mult_soft ; - load_led_pttn ; - get_lower_nibble ; - get_upper_nibble ; - hex_to_led ; - disp_led ; ; ========================================================= c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91

10 Program dla CPSM3 Program dla CPSM3 Program główny call init forever: ;main loop body call proc_btn call square call load_led_pttn call disp_led jump forever ;initialization ;check & process buttons ;calculate square ;store led patterns to ram ;output led pattern ;routine: init ; function: perform initialization, clear register/ram ; output register: ; switch_a_b: cleared to 0 ; temp register: data, i init: ;clear memory load i, 40 ;unitize loop index to 64 load data, 00 clr_mem_loop: store data, (i) sub i, 01 ;dec loop index jump nz, clr_mem_loop ;repeat until i=0 ;clear register load switch_a_b, 00 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 Program dla CPSM3 Program dla CPSM3 ;routine: proc_btn ; function: check two buttons and process the display ; input reg: ; switch_a_b: ram offset (0 for a and 2 for b) ; output register: ; s3: store input port flag ; switch_a_b: may be toggled ; temp register used: data, addr proc_btn: input s3, rd_flag_port ;get flag ;check and process c button test s3, 01 ;check c button flag jump z, chk_btns ;flag not set call init ;flag set, clear jump proc_btn_done chk_btns: ;check and process s button test s3, 02 ;check s button flag jump z, proc_btn_done ;flag not set input data, sw_port ;get switch load addr, a_lsb ;get addr of a add addr, switch_a_b ;add offset store data, (addr) ;write data to ram ;update current disp position xor switch_a_b, 02 ;toggle between 00, 02 proc_btn_done: routine: load_led_pttn ; function: read 3 LSBs of switch input and convert the ; desired values to four led patterns and ; load them to ram ; switch: 000:a; 001:b; 010:a^2; 011:b^2; ; others: a^2 + b^2 ; tmp register used: data, addr ; s6: data from sw input port load_led_pttn: input s6, sw_port ;get switch sl0 s6 ;*2 to obtain addr offset compare s6, 08 ;sw>100? jump c, sw_ok ;no load s6, 08 ;yes, sw error, make default sw_ok: ;process byte 0, lower nibble load addr, a_lsb add addr, s6 ;get lower addr fetch data, (s6) ;get lower byte call get_lower_nibble ;get lower nibble call hex_to_led ;convert to led pattern store data, led0 ;process byte 0, upper nibble fetch data, (addr) call get_upper_nibble c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91

11 Program dla CPSM3 Program dla CPSM3 call hex_to_led store data, led1 ;process byte 1, lower nibble add addr, 01 ;get upper addr fetch data, (addr) call get_lower_nibble call hex_to_led store data, led2 ;process byte 1, upper nibble fetch data, (addr) call get_upper_nibble call hex_to_led ;check for sw=100 to process carry as led dp compare s6, 08 ;display final result? jump nz, led_done ;no add addr, 01 ;get carry addr fetch s6, (addr) ;s6 to store carry test s6, 01 ;carry=1? jump z, led_done ;no and data, 7F ;yes, assert msb (dp) to 0 led_done: store data, led3 ;routine: disp_led ; function: output four led patterns ; tmp register used: data disp_led: fetch data, led0 output data, sseg0_port fetch data, led1 output data, sseg1_port fetch data, led2 output data, sseg2_port fetch data, led3 output data, sseg3_port c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 Program dla CPSM3 Program dla CPSM3 ;routine: hex_to_led ; function: convert a hex digit to 7-seg led pattern ; input register: data ; output register: data hex_to_led: compare data, 00 jump nz, comp_hex_1 load data, 81 ;7seg pattern 0 comp_hex_1: compare data, 01 jump nz, comp_hex_2 load data, CF ;7seg pattern 1 comp_hex_2: compare data, 02 jump nz, comp_hex_3 load data, 92 ;7seg pattern 2 comp_hex_3: compare data, 03 jump nz, comp_hex_4 load data, 86 ;7seg pattern 3 comp_hex_4: compare data, 04 jump nz, comp_hex_5 load data, CC ;7seg pattern 4 comp_hex_5: compare data, 05 jump nz, comp_hex_6 load data, A4 ;7seg pattern 5 comp_hex_6: compare data, 06 jump nz, comp_hex_7 load data, A0 ;7seg pattern 6 comp_hex_7: compare data, 07 jump nz, comp_hex_8 load data, 8F ;7seg pattern 7 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91

12 Program dla CPSM3 Program dla CPSM3 comp_hex_8: compare data, 08 jump nz, comp_hex_9 load data, 80 ;7seg pattern 8 comp_hex_9: compare data, 09 jump nz, comp_hex_a load data, 84 ;7seg pattern 9 comp_hex_a: compare data, 0A jump nz, comp_hex_b load data, 88 ;7seg pattern a comp_hex_b: compare data, 0B jump nz, comp_hex_c load data, E0 ;7seg pattern b comp_hex_c: compare data, 0C jump nz, comp_hex_d load data, B1 comp_hex_d: compare data, 0D jump nz, comp_hex_e load data, C2 comp_hex_e: compare data, 0E jump nz, comp_hex_f load data, B0 comp_hex_f: load data, B8 hex_done: ;7seg pattern C ;7seg pattern d ;7seg pattern E ;7seg pattern f c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 Program dla CPSM3 Program dla CPSM3 ;routine: get_lower_nibble ; function: get lower 4-bit of data ; input register: data ; output register: data get_lower_nibble: and data, 0F ;clear upper nibble ;routine: get_lupper_nible ; function: get upper 4-bit of in_data ; input register: data ; output register: data get_upper_nibble: sr0 data ;right shift 4 times sr0 data sr0 data sr0 data routine: square ; function: calculate a*a + b*b ; data/result stored in ram started w/ SQ_BASE_ADDR ; temp register: s3, s4, s5, s6, data square: ;calculate a*a fetch s3, a_lsb ;load a fetch s4, a_lsb ;load a call mult_soft ;calculate a*a store s6, aa_lsb ;store lower byte of a*a store s5, aa_msb ;store upper byte of a*a ;calculate b*b fetch s3, b_lsb ;load b fetch s4, b_lsb ;load b call mult_soft ;calculate b*b store s6, bb_lsb ;store lower byte of b*b store s5, bb_msb ;store upper byte of b*b c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91

13 Program dla CPSM3 Program dla CPSM3 ;calculate a*a+b*b fetch data, aa_lsb ;get lower byte of a*a add data, s6 ;add lower byte of a*a+b*b store data, aabb_lsb ;store lower byte of a*a+b*b fetch data, aa_msb ;get upper byte of a*a addcy data, s5 ;add upper byte of a*a+b*b store data, aabb_msb ;store upper byte of a*a+b*b load data, 00 ;clear data, but keep carry addcy data, 00 ;get carry from previous + store data, aabb_cout ;store carry of a*a+b*b routine: mult_soft ; function: 8-bit unsigned multiplier using ; shift-and-add algorithm ; input register: ; s3: multiplicand ; s4: multiplier ; output register: ; s5: upper byte of product ; s6: lower byte of product ; temp register: i mult_soft: load s5, 00 ;clear s5 load i, 08 ;initialize loop index mult_loop: sr0 s4 ;shift lsb to carry jump nc, shift_prod ;lsb is 0 add s5, s3 ;lsb is 1 shift_prod: sra s5 ;shift upper byte right, ;carry to MSB, LSB to carry sra s6 ;shift lower byte right, ;lsb of s5 to MSB of s6 sub i, 01 ;dec loop index jump nz, mult_loop ;repeat until i=0 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 module pico_btn ( input wire clk, reset, input wire [7:0] sw, input wire [1:0] btn, output wire [3:0] an, output wire [7:0] sseg ); // signal declaration // CPSM3/ROM signals wire [9:0] address; wire [17:0] instruction; wire [7:0] port_id, out_port; reg [7:0] in_port; wire write_strobe, read_strobe; // I/O port signals // output enable reg [3:0] en_d; // four-digit seven-segment led display reg [7:0] ds3_reg, ds2_reg, ds1_reg, ds0_reg; // two pushbuttons reg btnc_flag_reg, btns_flag_reg; wire btnc_flag_next, btns_flag_next; wire set_btnc_flag, set_btns_flag, clr_btn_flag; // I/O modules disp_mux disp_unit (.clk(clk),.reset(reset),.in3(ds3_reg),.in2(ds2_reg),.in1(ds1_reg),.in0(ds0_reg),.an(an),.sseg(sseg)); debounce btnc_unit (.clk(clk),.reset(reset),.sw(btn[0]),.db_level(),.db_tick(set_btnc_flag)); debounce btns_unit (.clk(clk),.reset(reset),.sw(btn[1]),.db_level(),.db_tick(set_btns_flag)); // CPSM and ROM instantiation kcpsm3 proc_unit (.clk(clk),.reset(1 b0),.address(address),.instruction(instruction),.port_id(port_id),.write_strobe(write_strobe),.out_port(out_port),.read_strobe(read_strobe),.in_port(in_port),.interrupt(1 b0),.interrupt_ack()); btn_rom rom_unit (.clk(clk),.address(address),.instruction(instruction)); c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91

14 // output interface // outport port id: // 0x00: ds0 // 0x01: ds1 // 0x02: ds2 // 0x03: ds3 // registers clk) begin if (en_d[0]) ds0_reg <= out_port; if (en_d[1]) ds1_reg <= out_port; if (en_d[2]) ds2_reg <= out_port; if (en_d[3]) ds3_reg <= out_port; end // decoding circuit for enable signals if (write_strobe) case (port_id[1:0]) 2 b00: en_d = 4 b0001; 2 b01: en_d = 4 b0010; 2 b10: en_d = 4 b0100; 2 b11: en_d = 4 b1000; endcase else en_d = 4 b0000; c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 // input interface // input port id // 0x00: flag // 0x01: switch // input register (for flags) clk) begin btnc_flag_reg <= btnc_flag_next; btns_flag_reg <= btns_flag_next; end assign btnc_flag_next = (set_btnc_flag)? 1 b1 : (clr_btn_flag)? 1 b0 : btnc_flag_reg; assign btns_flag_next = (set_btns_flag)? 1 b1 : (clr_btn_flag)? 1 b0 : btns_flag_reg; // decoding circuit for clear signals assign clr_btn_flag = read_strobe && (port_id[0]==1 b0); // input multiplexing case(port_id[0]) 1 b0: in_port = {6 b0, btns_flag_reg, btnc_flag_reg}; 1 b1: in_port = sw; endcase endmodule c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 z przerwaniami 1 Program dla CPSM3 2 Program dla CPSM3 3 z przerwaniami Program dla CPSM3 4 Interfejsy standardowe FPGA: omunikacja PC z Nexys2 przez USB i zastosowania FPGA: Interfejs RS232 i zastosowania FPGA: Interfejs VGA i zastosowania FPGA: Interfejs PS/2 - klawiatura uniwersalna FPGA: Interfejs PS/2 - mysz 5 Literatura c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91

15 z przerwaniami z przerwaniami Jedno źródło przerwań Dwa źródła przerwań c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 z przerwaniami System z przerwaniem cyklicznym Obsługa przerwania z przerwaniami Program dla CPSM3 ;routine: interrupt service routine ; function: increment 16-bit counter ; input register: ; count_msb, count_lsb: timer count ; output register: ; count_msb, count_lsb: incremented int_service_routine: add count_lsb, 01 ;inc 16-bit counter addcy count_msb, 00 i enable ;interrupt vector address 3FF jump int_service_routine c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91

16 z przerwaniami Program dla CPSM3 z przerwaniami Program dla CPSM3 Alisy rejestrów Alisy portów ;commonly used local variables namereg s0, data ;reg for temporary data namereg s1, addr ;reg for temporary mem & i/o port addr namereg s2, i ;general-purpose loop index ;global variables namereg sc, switch_a_b ;ram offset for current switch input namereg sb, led_pos ;led disp position (0, 1, 2 or 3) namereg se, count_msb ;timer tick count 8 MSBs namereg sf, count_lsb ;timer tick count 8 LSBs ; Port alias ; input port definitions constant rd_flag_port, 00 ; 2 flags (xxxxxxsc): constant sw_port, 01 ;8-bit switches ; output port definitions constant an_port, 00 constant sseg_port, 01 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 z przerwaniami Program dla CPSM3 z przerwaniami Program dla CPSM3 Program główny : init ;main ; - init ; - proc_btn ; - init ; - proc_uart ; - square ; - mult_soft ; - load_led_pttn ; - get_lower_nibble ; - get_upper_nibble ; - hex_to_led ; - display_mux_out ; ========================================================= call init ;initialization forever: ;main loop body call proc_btn ;check & process buttons call square ;calculate square call load_led_pttn ;store led patterns to ram call display_mux_out ; multiplex led patterns jump forever ;routine: init ; function: perform initialization, clear register/ram ; output register: ; switch_a_b: cleared to 0 ; temp register: data, i init: enable interrupt ;clear memory load i, 40 ;unitize loop index to 64 load data, 00 clr_mem_loop: store data, (i) sub i, 01 ;dec loop index jump nz, clr_mem_loop ;repeat until i=0 ;clear registers load switch_a_b, 00 load led_pos, 00 load count_msb, 00 load count_lsb, 00 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91

17 z przerwaniami Program dla CPSM3 : sterowanie wyświetlaczami z przerwaniami Program dla CPSM3 : sterowanie wyświetlaczami ;routine: display_mux_out ; function: generate enable pulse & led pattern ; for 4-digit 7-segment led display ; input register: ; count_msb, count_lsb: timer count ; led_pos: current led position ; output register: ; led_pos: updated led position ; tmp register: data, addr display_mux_out: compare count_msb, 02 ;count= _ jump c, mux_out_done ;clear time counter (count > 20) load count_lsb, 00 load count_msb, 00 ;update 7-segment led position add led_pos, 01 compare led_pos, 04 jump nz, gen_an_signal load led_pos, 00 ;led_pos wraps around gen_an_signal: ;generate 4-bit anode enable signal load data, 0E ;xxxx_1110 compare led_pos, 00 jump z, shift_an_0 compare led_pos, 01 jump z, shift_an_1 compare led_pos, 02 jump z, shift_an_2 sl1 data ;shift times shift_an_2: sl1 data ;shift times shift_an_1: sl1 data ;shift times shift_an_0: output data, an_port ;output 7-seg led pattern load addr, led0 add addr, led_pos fetch data, (addr) output data, sseg_port mux_out_done: c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 z przerwaniami Program dla CPSM3 Symulacja programu w środowisku pblaze IDE z przerwaniami Program dla CPSM3 Symulacja programu w środowisku pblaze IDE c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91

18 z przerwaniami z przerwaniami module pico_int ( input wire clk, reset, input wire [7:0] sw, input wire [1:0] btn, output wire [3:0] an, output wire [7:0] sseg ); // signal declaration // CPSM3/ROM signals wire [9:0] address; wire [17:0] instruction; wire [7:0] port_id, out_port; reg [7:0] in_port; wire write_strobe, read_strobe; wire interrupt, interrupt_ack; // I/O port signals // output enable reg [1:0] en_d; // four-digit seven-segment led display reg [7:0] sseg_reg; reg [3:0] an_reg; // two pushbuttons reg btnc_flag_reg, btns_flag_reg; wire btnc_flag_next, btns_flag_next; wire set_btnc_flag, set_btns_flag, clr_btn_flag; // interrupt related signals reg [8:0] timer_reg; wire [8:0] timer_next; wire ten_us_tick; reg timer_flag_reg; wire timer_flag_next; c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 z przerwaniami z przerwaniami // I/O modules debounce btnc_unit (.clk(clk),.reset(reset),.sw(btn[0]),.db_level(),.db_tick(set_btnc_flag)); debounce btns_unit (.clk(clk),.reset(reset),.sw(btn[1]),.db_level(),.db_tick(set_btns_flag)); // CPSM and ROM instantiation kcpsm3 proc_unit (.clk(clk),.reset(1 b0),.address(address),.instruction(instruction),.port_id(port_id),.write_strobe(write_strobe),.out_port(out_port),.read_strobe(read_strobe),.in_port(in_port),.interrupt(interrupt),.interrupt_ack(interrupt_ack)); int_rom rom_unit (.clk(clk),.address(address),.instruction(instruction)); // output interface // outport port id: // 0x00: an // 0x01: ssg // registers clk) begin if (en_d[0]) an_reg <= out_port[3:0]; if (en_d[1]) sseg_reg <= out_port; end assign an = an_reg; assign sseg = sseg_reg; // decoding circuit for enable signals if (write_strobe) case (port_id[0]) 1 b0: en_d = 2 b01; 1 b1: en_d = 2 b10; endcase else en_d = 2 b00; c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91

19 z przerwaniami z przerwaniami // input interface // input port id // 0x00: flag // 0x01: switch // input register (for flags) clk) begin btnc_flag_reg <= btnc_flag_next; btns_flag_reg <= btns_flag_next; end assign btnc_flag_next = (set_btnc_flag)? 1 b1 : (clr_btn_flag)? 1 b0 : btnc_flag_reg; assign btns_flag_next = (set_btns_flag)? 1 b1 : (clr_btn_flag)? 1 b0 : btns_flag_reg; // decoding circuit for clear signals assign clr_btn_flag = read_strobe && (port_id[0]==1 b0); // input multiplexing case(port_id[0]) 1 b0: in_port = {6 b0, btns_flag_reg, btnc_flag_reg}; 1 b1: in_port = sw; endcase // interrupt interface // 10 us counter clk) timer_reg <= timer_next; assign ten_us_tick = (timer_reg==499); assign timer_next = ten_us_tick? 0 : timer_reg + 1; // 10 us tick flag clk) timer_flag_reg <= timer_flag_next; assign timer_flag_next = (ten_us_tick)? 1 b1 : (interrupt_ack)? 1 b0 : timer_flag_reg; // interrupt request assign interrupt = timer_flag_reg; endmodule c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 z przerwaniami z przerwaniami Implementacja w FPGA Implementacja w FPGA c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91

20 z przerwaniami z przerwaniami Implementacja w FPGA Implementacja w FPGA c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 z przerwaniami z przerwaniami Implementacja w FPGA Implementacja w FPGA c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91

21 z przerwaniami z przerwaniami Implementacja w FPGA Implementacja w FPGA c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 z przerwaniami Implementacja w FPGA c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 Interfejsy standardowe 1 Program dla CPSM3 2 Program dla CPSM3 3 z przerwaniami Program dla CPSM3 4 Interfejsy standardowe FPGA: omunikacja PC z Nexys2 przez USB i zastosowania FPGA: Interfejs RS232 i zastosowania FPGA: Interfejs VGA i zastosowania FPGA: Interfejs PS/2 - klawiatura uniwersalna FPGA: Interfejs PS/2 - mysz 5 Literatura c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91

22 Interfejsy standardowe FPGA: omunikacja PC z Nexys2 przez USB i zastosowania 1 Program dla CPSM3 2 Program dla CPSM3 3 z przerwaniami Program dla CPSM3 4 Interfejsy standardowe FPGA: omunikacja PC z Nexys2 przez USB i zastosowania FPGA: Interfejs RS232 i zastosowania FPGA: Interfejs VGA i zastosowania FPGA: Interfejs PS/2 - klawiatura uniwersalna FPGA: Interfejs PS/2 - mysz 5 Literatura c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 Interfejsy standardowe FPGA: Interfejs RS232 i zastosowania 1 Program dla CPSM3 2 Program dla CPSM3 3 z przerwaniami Program dla CPSM3 4 Interfejsy standardowe FPGA: omunikacja PC z Nexys2 przez USB i zastosowania FPGA: Interfejs RS232 i zastosowania FPGA: Interfejs VGA i zastosowania FPGA: Interfejs PS/2 - klawiatura uniwersalna FPGA: Interfejs PS/2 - mysz 5 Literatura c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 Interfejsy standardowe FPGA: Interfejs VGA i zastosowania 1 Program dla CPSM3 2 Program dla CPSM3 3 z przerwaniami Program dla CPSM3 4 Interfejsy standardowe FPGA: omunikacja PC z Nexys2 przez USB i zastosowania FPGA: Interfejs RS232 i zastosowania FPGA: Interfejs VGA i zastosowania FPGA: Interfejs PS/2 - klawiatura uniwersalna FPGA: Interfejs PS/2 - mysz 5 Literatura c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 Interfejsy standardowe FPGA: Interfejs PS/2 - klawiatura uniwersalna 1 Program dla CPSM3 2 Program dla CPSM3 3 z przerwaniami Program dla CPSM3 4 Interfejsy standardowe FPGA: omunikacja PC z Nexys2 przez USB i zastosowania FPGA: Interfejs RS232 i zastosowania FPGA: Interfejs VGA i zastosowania FPGA: Interfejs PS/2 - klawiatura uniwersalna FPGA: Interfejs PS/2 - mysz 5 Literatura c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91

23 Interfejsy standardowe FPGA: Interfejs PS/2 - mysz 1 Program dla CPSM3 2 Program dla CPSM3 3 z przerwaniami Program dla CPSM3 4 Interfejsy standardowe FPGA: omunikacja PC z Nexys2 przez USB i zastosowania FPGA: Interfejs RS232 i zastosowania FPGA: Interfejs VGA i zastosowania FPGA: Interfejs PS/2 - klawiatura uniwersalna FPGA: Interfejs PS/2 - mysz 5 Literatura c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 cdn. Interfejsy standardowe cdn. FPGA: Interfejs PS/2 - mysz c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91 Literatura Literatura D.M. Harris, S.L. Harris, Digital Design and Computer Architecture, Elsevier, Z. Hajduk, Wprowadzenie do języka Verilog, BTC, M. Pawłowski, A. Skorupski, Projektowanie złożonych układów cyfrowych, WiŁ, P. Pong. Chu, FPGA Prototyping by Verilog examples, Wiley, IEEE Standard Verilog R Hardware Description Language, IEEE, Xilinx ISE WebPack: Digilent Nexys2: OpenCores: c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2014/ / 91

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

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

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

PROCESORY ARM TRUDNO ZNALEŹĆ PROCESORY O TAK LICZNYCH, ORYGINALNYCH, NOWYCH, POMYSŁOWYCH ROZWIĄZANIACH!

PROCESORY ARM TRUDNO ZNALEŹĆ PROCESORY O TAK LICZNYCH, ORYGINALNYCH, NOWYCH, POMYSŁOWYCH ROZWIĄZANIACH! TRUDNO ZNALEŹĆ PROCESORY O TAK LICZNYCH, ORYGINALNYCH, NOWYCH, POMYSŁOWYCH ROZWIĄZANIACH! ASEMBLERY Pola Separatory Wizytówki Kody operacji Pseudo operacje adresy I dane Dyrektywy Stałe Komentarze SZKICE

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

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

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

LCD (Liquid Crystal Display)

LCD (Liquid Crystal Display) LCD (Liquid Crystal Display) Polarizing filter. Thin film with a vertical ais. Liquid crystal Polarizing filter. Thin film with a horizontal ais. Polarizing filter. Thin film with a horizontal ais. Polarizing

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

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

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

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

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

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

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

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

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

kurs Sprzętowy bootloader dla mikrokontrolerów PicoBlaze (2)

kurs Sprzętowy bootloader dla mikrokontrolerów PicoBlaze (2) Sprzętowy bootloader dla mikrokontrolerów PicoBlaze kurs Sprzętowy bootloader dla mikrokontrolerów PicoBlaze (2) Dodatkowe materiały na CD i FTP Podczas uruchamiania i testowania oprogramowania dla mikrokontrolerów

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

Liczniki z zastosowaniem

Liczniki z zastosowaniem Liczniki z zastosowaniem FPGA i µc Fizyka Medyczna, studia II stopnia, Dozymetria i elektronika w medycynie 1 Zliczanie impulsów Źródło impulsów Kondycjonowanie Licznik Wyświetlacz Układ czasowy 2 Liczniki

Bardziej szczegółowo

architektura komputerów w 1 1

architektura komputerów w 1 1 8051 Port P2 Port P3 Serial PORT Timers T0, T1 Interrupt Controler DPTR Register Program Counter Program Memory Port P0 Port P1 PSW ALU B Register SFR accumulator STRUCTURE OF 8051 architektura komputerów

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

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

Układy mnoŝące H D L. dr inŝ. Paweł Tomaszewicz Instytut Telekomunikacji Politechnika Warszawska Układy mnoŝące 1 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

Bardziej szczegółowo

Programowalne układy logiczne

Programowalne układy logiczne Programowalne układy logiczne Mikroprocesor Szymon Acedański Marcin Peczarski Instytut Informatyki Uniwersytetu Warszawskiego 6 grudnia 2014 Zbudujmy własny mikroprocesor Bardzo prosty: 16-bitowy, 16 rejestrów

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

Układy FPGA. programowanie bramek w zestawie uruchomieniowym Basys3 firmy Digilent -środowisko Vivado (2016.4)- firmy Xilings, język Verilog

Układy FPGA. programowanie bramek w zestawie uruchomieniowym Basys3 firmy Digilent -środowisko Vivado (2016.4)- firmy Xilings, język Verilog Układy FPGA programowanie bramek w zestawie uruchomieniowym Basys3 firmy Digilent -środowisko Vivado 2016.4)- firmy Xilings, język Verilog Pierwszy projektowany układ będzie zawierał dwie bramki logiczne,

Bardziej szczegółowo

Akademia Górniczo-Hutnicza w Krakowie Katedra Elektroniki

Akademia Górniczo-Hutnicza w Krakowie Katedra Elektroniki Akademia Górniczo-Hutnicza w Krakowie Katedra Elektroniki Technika mikroprocesorowa Instrukcja 2 Pętle i instrukcje kontroli przepływu programu Autor: Paweł Russek Tłumaczenie: Marcin Pietroń http://www.fpga.agh.edu.pl/tm

Bardziej szczegółowo

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780 Dane techniczne : Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780 a) wielkość bufora znaków (DD RAM): 80 znaków (80 bajtów) b) możliwość sterowania (czyli podawania kodów znaków) za pomocą

Bardziej szczegółowo

Liczniki z zastosowaniem

Liczniki z zastosowaniem Liczniki z zastosowaniem FPGA i µc Fizyka Medyczna, studia II stopnia, Dozymetria i elektronika w medycynie 1 Liczniki Rodzaje implementacji: Układy średniej skali integracji MSI Mikrokontroler Układ FPGA

Bardziej szczegółowo

Układy FPGA Sumator 4-bitowy

Układy FPGA Sumator 4-bitowy Układy FPGA Sumator 4-bitowy programowanie bramek w zestawie uruchomieniowym Basys3 firmy Digilent -środowisko Vivado (2016.4)- firmy Xilings, język Verilog Pierwszy projektowany układ będzie zawierał

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

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

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

Lista zadań nr 1. Zagadnienia stosowanie sieci Petriego (ang. Petri net) jako narzędzia do modelowania algorytmów sterowania procesami

Lista zadań nr 1. Zagadnienia stosowanie sieci Petriego (ang. Petri net) jako narzędzia do modelowania algorytmów sterowania procesami Warsztaty Koła Naukowego SMART dr inż. Grzegorz Bazydło G.Bazydlo@iee.uz.zgora.pl, staff.uz.zgora.pl/gbazydlo Lista zadań nr 1 Zagadnienia stosowanie sieci Petriego (ang. Petri net) jako narzędzia do modelowania

Bardziej szczegółowo

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek]. ABAP/4 Instrukcja IF Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek]. [ELSEIF warunek. ] [ELSE. ] ENDIF. gdzie: warunek dowolne wyrażenie logiczne o wartości

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

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

Struktura i działanie jednostki centralnej

Struktura i działanie jednostki centralnej Struktura i działanie jednostki centralnej ALU Jednostka sterująca Rejestry Zadania procesora: Pobieranie rozkazów; Interpretowanie rozkazów; Pobieranie danych Przetwarzanie danych Zapisywanie danych magistrala

Bardziej szczegółowo

HC541 8-bitowy bufor jednokierunkowy HC245 8-bitowy bufor dwukierunkowy HC244 dwa 4-bitowe bufory jednokierunkowe

HC541 8-bitowy bufor jednokierunkowy HC245 8-bitowy bufor dwukierunkowy HC244 dwa 4-bitowe bufory jednokierunkowe Bufory (BUFFER) Bufory stosuje się po to by: - zwiększyć obciążalność magistrali - chronić układ wysokiej skali integracji - sterować przepływem danych HC541 8-bitowy bufor jednokierunkowy HC245 8-bitowy

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

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

Programowanie Mikrokontrolerów

Programowanie Mikrokontrolerów Programowanie Mikrokontrolerów Wyświetlacz alfanumeryczny oparty na sterowniku Hitachi HD44780. mgr inż. Paweł Poryzała Zakład Elektroniki Medycznej Alfanumeryczny wyświetlacz LCD Wyświetlacz LCD zagadnienia:

Bardziej szczegółowo

Sterowanie wyświetlacza LCD typu HD44780

Sterowanie wyświetlacza LCD typu HD44780 Sterowanie wyświetlacza LCD typu HD4478 Laboratorium Języków Opisu Sprzętu AGH WFiIS Wyświetlacz LCD Matrycowy moduł LCD E RW RS BF Wyświetlacz LCD CG RAM DD RAM DB[7:] Licznik Adresu Rejestr Danych Rejestr

Bardziej szczegółowo

LABORATORIUM ELEKTRONIKA Projektowanie koderów, transkoderów i dekoderów w języku VHDL

LABORATORIUM ELEKTRONIKA Projektowanie koderów, transkoderów i dekoderów w języku VHDL LABORATORIUM ELEKTRONIKA Projektowanie koderów, transkoderów i dekoderów w języku VHDL 1. Cel ćwiczenia W ćwiczeniu student projektuje i implementuje w strukturze układu FPGA (Field Programmable Gate Array)

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

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

Programowanie Układów Logicznych kod kursu: ETD6203. Komunikacja z układami cyfrowymi W dr inż. Daniel Kopiec

Programowanie Układów Logicznych kod kursu: ETD6203. Komunikacja z układami cyfrowymi W dr inż. Daniel Kopiec Programowanie Układów Logicznych kod kursu: ETD6203 Komunikacja z układami cyfrowymi W5 30.03.2016 dr inż. Daniel Kopiec Plan wykładu 1 2 3 4 5 6 Standard komunikacji RS232 Enkoder obrotowy Wyświetlacz

Bardziej szczegółowo

Pod o z d ia i ł a r yn y k n u k u ( 2004 r.). źródło: Gartner 3

Pod o z d ia i ł a r yn y k n u k u ( 2004 r.). źródło: Gartner 3 Systemy typu SoPC Orkiszewski Marcin Projektowanie Programowalnych Układów Scalonych z-2009 Mikrokontrolery vs. FPGA MCU cena łatwość montaŝu łatwość programowania > >> >>> FPGA cena łatwość montaŝu łatwość

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 9 (3h) Projekt struktury hierarchicznej układu cyfrowego w FPGA. Instrukcja pomocnicza do laboratorium z przedmiotu

Bardziej szczegółowo

Ćwiczenie 1 VHDL - Licznik 4-bitowy.

Ćwiczenie 1 VHDL - Licznik 4-bitowy. Ćwiczenie 1 VHDL - Licznik 4-bitowy. Zadaniem studenta jest zaprojektowanie w układzie CoolRunner2 układu, który dzieli częstotliwość zegara wejściowego generując sygnał taktowania licznika 4-bitowego,

Bardziej szczegółowo

Programowalne układy logiczne

Programowalne układy logiczne Programowalne układy logiczne Worek różności jak dobrać się do gotowców w Spartanach? Szymon Acedański Marcin Peczarski Instytut Informatyki Uniwersytetu Warszawskiego 12 kwietnia 2011 Spis treści Wbudowane

Bardziej szczegółowo

Architektura typu multi cycle

Architektura typu multi cycle PC ux ress Write data emdata [3-26] [25-2] [2-6] [5-] register [5-] Cond IorD em emwrite emtoreg IRWrite [25-] [5-] Outputs Control Op [5-] ux ux PCSource Op SrcB Src RegWrite RegDst register register

Bardziej szczegółowo

Programowanie mikrokontrolerów - laboratorium

Programowanie mikrokontrolerów - laboratorium Państwowa Wyższa Szkoła Zawodowa w Nowym Sączu Instytut Techniczny Programowanie mikrokontrolerów- laboratorium Nazwisko i imię 1. 2. Data wykonania ćwiczenia: Grupa: Ocena sprawozdania Zaliczenie: Symbol:

Bardziej szczegółowo

A Machine Architecture that is Really Intuitive and Easy. Dane: notacja dwójkowa, zapis w kodzie dopełnieniowym

A Machine Architecture that is Really Intuitive and Easy.  Dane: notacja dwójkowa, zapis w kodzie dopełnieniowym MARIE A Machine Architecture that is Really Intuitive and Easy http://computerscience.jbpub.com/ecoa Słowo 16b Dane: notacja dwójkowa, zapis w kodzie dopełnieniowym od 8000h (- 32,768 = -2^15) do 7FFFh

Bardziej szczegółowo

CPU. Architektura FLAGS Bit: dr Paweł Kowalczyk; DPTNS, KFCS UŁ. SI 16 bit. 16 bit. 16 bit.

CPU. Architektura FLAGS Bit: dr Paweł Kowalczyk; DPTNS, KFCS UŁ. SI 16 bit. 16 bit. 16 bit. Architektura 8086 8086 posiada 4 rejestry ogólnego użytku AX, BX, CX, DX, 2 rejestry indeksowe SI, DI, 3 rejestry wskaźnikowe SP, BP, IP, 4 rejestry segmentowe CS, DS, SS i ES oraz rejestr flag FLAG AH

Bardziej szczegółowo

Pomoc do programu konfiguracyjnego RFID-CS27-Reader User Guide of setup software RFID-CS27-Reader

Pomoc do programu konfiguracyjnego RFID-CS27-Reader User Guide of setup software RFID-CS27-Reader 2017-01-24 Pomoc do programu konfiguracyjnego RFID-CS27-Reader User Guide of setup software RFID-CS27-Reader Program CS27 Reader należy uruchomić przez wybór opcji CS27 i naciśnięcie przycisku START. Programme

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

Komputery klasy PC. Dariusz Chaberski

Komputery klasy PC. Dariusz Chaberski Komputery klasy PC Dariusz Chaberski Start systemu adres 0xFFFF:0x0000 POST (ang. Power On Self Test) sprawdzenie zmiennej BIOSu 0x0040:0x0072-0x1234 - zimny start (RESET, włączenie zasilania), gorący

Bardziej szczegółowo

Architektura typu Single-Cycle

Architektura typu Single-Cycle Architektura typu Single-Cycle...czyli budujemy pierwszą maszynę parową Przepływ danych W układach sekwencyjnych przepływ danych synchronizowany jest sygnałem zegara Elementy procesora - założenia Pamięć

Bardziej szczegółowo

Technika Mikroprocesorowa

Technika Mikroprocesorowa Technika Mikroprocesorowa Dariusz Makowski Katedra Mikroelektroniki i Technik Informatycznych tel. 631 2648 dmakow@dmcs.pl http://neo.dmcs.p.lodz.pl/tm 1 System mikroprocesorowy? (1) Magistrala adresowa

Bardziej szczegółowo

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 8 (3h) Implementacja pamięci RAM w FPGA.

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 8 (3h) Implementacja pamięci RAM w FPGA. Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki ĆWICZENIE Nr 8 (3h) Implementacja pamięci RAM w FPGA. Instrukcja pomocnicza do laboratorium z przedmiotu Synteza układów cyfrowych

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

Akademia Górniczo- Hutmicza w Krakowie Katedra Elektroniki WIET

Akademia Górniczo- Hutmicza w Krakowie Katedra Elektroniki WIET Akademia Górniczo- Hutmicza w Krakowie Katedra Elektroniki WIET Technika mikroprocesorowa Instrukcja 3 Stos i podprogramy Autor: Paweł Russek Tłumaczenie: Marcin Pietroń http://www.fpga.agh.edu.pl/tm ver.

Bardziej szczegółowo

IEEE 1284 - Centronics

IEEE 1284 - Centronics IEEE 1284 - Centronics Interfejs Centronics w wersji oryginalnej - łącze jednokierunkowe przesyłające informacje od komputera do drukarki przeznaczony jedynie do tego zadania, co wynikało z braku potrzeby

Bardziej szczegółowo

LABORATORIUM nr 5. Temat: Realizacja mikroprocesora w układach CPLD

LABORATORIUM nr 5. Temat: Realizacja mikroprocesora w układach CPLD Laboratorium nr 5 Realizacja mikroprocesora w układach CPLD mlazoryszczak@wi.zut.edu.pl LABORATORIUM nr 5 Temat: Realizacja mikroprocesora w układach CPLD 1. UKŁADY REKONFIGUROWALNE Układy programowalne

Bardziej szczegółowo

LABORATORIUM UKŁADÓW PROGRAMOWALNYCH Wydziałowy Zakład Metrologii Mikro- i Nanostruktur SEMESTR LETNI 2016

LABORATORIUM UKŁADÓW PROGRAMOWALNYCH Wydziałowy Zakład Metrologii Mikro- i Nanostruktur SEMESTR LETNI 2016 LABORATORIUM UKŁADÓW PROGRAMOWALNYCH Wydziałowy Zakład Metrologii Mikro- i Nanostruktur SEMESTR LETNI 2016 Prowadzący: dr inż. Daniel Kopiec email: daniel.kopiec@pwr.edu.pl Pierwszy projekt w środowisku

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

mgr inż. Maciej Rudek opracował: dr inż. Daniel Kopiec

mgr inż. Maciej Rudek opracował: dr inż. Daniel Kopiec Programowanie Układów Logicznych kod kursu: ETD6203 Optymalizacja procesu syntezy logicznej, PicoBlaze, ChipScope W12 22.05.2019 mgr inż. Maciej Rudek opracował: dr inż. Daniel Kopiec Plan wykładu Synteza

Bardziej szczegółowo

Programowany układ czasowy

Programowany układ czasowy Programowany układ czasowy Zbuduj na płycie testowej ze Spartanem-3A prosty ośmiobitowy układ czasowy pracujący w trzech trybach. Zademonstruj jego działanie na ekranie oscyloskopu. Projekt z Języków Opisu

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 2 (3h) Przełączniki, wyświetlacze, multipleksery - implementacja i obsługa w VHDL Instrukcja pomocnicza do laboratorium

Bardziej szczegółowo

Wprowadzenie do laboratorium komputerowego część I

Wprowadzenie do laboratorium komputerowego część I Akademia Górniczo Hutnicza im. Stanisława Staszica w Krakowie Wydział IET Katedra Elektroniki Technika Cyfrowa Wprowadzenie do laboratorium komputerowego część I Wstęp Celem wprowadzenia do laboratorium

Bardziej szczegółowo

Programowalne układy logiczne

Programowalne układy logiczne Programowalne układy logiczne Układy synchroniczne Szymon Acedański Marcin Peczarski Instytut Informatyki Uniwersytetu Warszawskiego 26 października 2015 Co to jest układ sekwencyjny? W układzie sekwencyjnym,

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

AGH Akademia Górniczo-Hutnicza w Krakowie Katedra Elektroniki

AGH Akademia Górniczo-Hutnicza w Krakowie Katedra Elektroniki AGH Akademia Górniczo-Hutnicza w Krakowie Katedra Elektroniki Technika mikroprocesorowa Laboratorium 5 Operacje arytmetyczne Autor: Paweł Russek Tłumaczenie: Marcin Pietroń i Ernest Jamro http://www.fpga.agh.edu.pl/tm

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: 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

Systemy wbudowane. Poziomy abstrakcji projektowania systemów HW/SW. Wykład 9: SystemC modelowanie na różnych poziomach abstrakcji

Systemy wbudowane. Poziomy abstrakcji projektowania systemów HW/SW. Wykład 9: SystemC modelowanie na różnych poziomach abstrakcji Systemy wbudowane Wykład 9: SystemC modelowanie na różnych poziomach abstrakcji Poziomy abstrakcji projektowania systemów HW/SW 12/17/2011 S.Deniziak:Systemy wbudowane 2 1 Model czasu 12/17/2011 S.Deniziak:Systemy

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 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

LOW ENERGY TIMER, BURTC

LOW ENERGY TIMER, BURTC PROJEKTOWANIE ENERGOOSZCZĘDNYCH SYSTEMÓW WBUDOWANYCH ĆWICZENIE 4 LOW ENERGY TIMER, BURTC Katedra Elektroniki AGH 1. Low Energy Timer tryb PWM Modulacja szerokości impulsu (PWM) jest często stosowana przy

Bardziej szczegółowo

Projektowanie z użyciem bloków funkcjonalnych w układach programowalnych firmy Xilinx

Projektowanie z użyciem bloków funkcjonalnych w układach programowalnych firmy Xilinx Projektowanie z użyciem bloków funkcjonalnych w układach programowalnych firmy Xilinx CEL ĆWICZENIA Celem ćwiczenia jest utrwalenie wiedzy dotyczącej budowy, działania i własności programowalnych układów

Bardziej szczegółowo

Lista zadań nr 5. Ścieżka projektowa Realizacja każdego z zadań odbywać się będzie zgodnie z poniższą ścieżką projektową (rys.

Lista zadań nr 5. Ścieżka projektowa Realizacja każdego z zadań odbywać się będzie zgodnie z poniższą ścieżką projektową (rys. Sterowanie procesami dyskretnymi laboratorium dr inż. Grzegorz Bazydło G.Bazydlo@iee.uz.zgora.pl, staff.uz.zgora.pl/gbazydlo Lista zadań nr 5 Zagadnienia stosowanie skończonych automatów stanów (ang. Finite

Bardziej szczegółowo

USB firmware changing guide. Zmiana oprogramowania za przy użyciu połączenia USB. Changelog / Lista Zmian

USB firmware changing guide. Zmiana oprogramowania za przy użyciu połączenia USB. Changelog / Lista Zmian 1 / 9 Content list / Spis Treści 1. Hardware and software requirements, preparing device to upgrade Wymagania sprzętowe i programowe, przygotowanie urządzenia do aktualizacji 2. Installing drivers and

Bardziej szczegółowo

Stacja sieciowa BL compact dla DeviceNet Interface for Connection of 2 BL ident Read/Write Heads (HF/UHF) BLCDN-2M12S-2RFID-S

Stacja sieciowa BL compact dla DeviceNet Interface for Connection of 2 BL ident Read/Write Heads (HF/UHF) BLCDN-2M12S-2RFID-S Kompaktowe, sieciowe moduły I/O On- Machine DeviceNet slave 125/250/500 kbps Two 5-pin M12 male receptacles for fieldbus connection 2 rotary coding switches for node-address IP 69K M12 I/O ports LEDs indicating

Bardziej szczegółowo

Ćwiczenia 2 IBM DB2 Data Studio

Ćwiczenia 2 IBM DB2 Data Studio Ćwiczenia 2 IBM DB2 Data Studio Temat: Aplikacje w Data Studio 1. Projekty Tworzenie procedur, UDF, trygerów zaczynamy od utworzenia projektu File -> New -> Project wybieramy Data Development Project.

Bardziej szczegółowo

Zrób sobie mikrokontroler, część 1

Zrób sobie mikrokontroler, część 1 P R J E K T Y Zrób sobie mikrokontroler, część 1 RISC w VHDL: PicoBlaze firmy Xilinx Koniec nudów! Koniec z (aplikacyjnym) panowaniem AVR ów, mikrokontrolerów 51, czy też PIC ów! Jeżeli chcesz być projektantem

Bardziej szczegółowo

LabVIEW PLATFORMA EDUKACYJNA Lekcja 5 LabVIEW i Arduino konfiguracja środowiska i pierwszy program

LabVIEW PLATFORMA EDUKACYJNA Lekcja 5 LabVIEW i Arduino konfiguracja środowiska i pierwszy program LabVIEW PLATFORMA EDUKACYJNA Lekcja 5 LabVIEW i Arduino konfiguracja środowiska i pierwszy program Przygotował: Jakub Wawrzeńczak 1. Wprowadzenie Lekcja przedstawia wykorzystanie środowiska LabVIEW 2016

Bardziej szczegółowo

Kurs Verilog cz.1 wstęp

Kurs Verilog cz.1 wstęp Kurs Verilog cz.1 wstęp Złożoność układów cyfrowych zgodnie z prawem Moore a, podwaja się co około 18 miesięcy. Liczba tranzystorów znajdujących się w układzie scalonym sięga już dziesiątek, a nawet setek

Bardziej szczegółowo

Realizacja systemów wbudowanych (embeded systems) w strukturach PSoC (Programmable System on Chip)

Realizacja systemów wbudowanych (embeded systems) w strukturach PSoC (Programmable System on Chip) Realizacja systemów wbudowanych (embeded systems) w strukturach PSoC (Programmable System on Chip) Embeded systems Architektura układów PSoC (Cypress) Możliwości bloków cyfrowych i analogowych Narzędzia

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

Planning and Cabling Networks

Planning and Cabling Networks Planning and Cabling Networks Network Fundamentals Chapter 10 Version 4.0 1 Projektowanie okablowania i sieci Podstawy sieci Rozdział 10 Version 4.0 2 Objectives Identify the basic network media required

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 9 Procesor złożony Opracował:

Bardziej szczegółowo

Instytut Teleinformatyki

Instytut Teleinformatyki Instytut Teleinformatyki Wydział Fizyki, Matematyki i Informatyki Politechnika Krakowska Systemy Czasu Rzeczywistego Programowanie wyświetlacza graficznego LCD laboratorium: 01 autor: mgr inż. Paweł Pławiak

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

Zestaw w IP67 do prostej komunikacji I/O przez Ethernet/IP TI-BL67-EIP-S-4

Zestaw w IP67 do prostej komunikacji I/O przez Ethernet/IP TI-BL67-EIP-S-4 Typ Nr kat. 1545119 Liczba kanałów 4 Dimensions (W x L x H) 140 x 145 x 77.5 mm Napięcie zasilania max. system supply current I mb (5V) max. sensor supply I sens Max. load current I o Dopuszczalny zakres

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

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

Technika Cyfrowa Wprowadzenie do laboratorium komputerowego

Technika Cyfrowa Wprowadzenie do laboratorium komputerowego Akademia Górniczo Hutnicza im. Stanisława Staszica w Krakowie Wydział EAIiE Katedra Elektroniki Technika Cyfrowa Wprowadzenie do laboratorium komputerowego http://www.fpga.agh.edu.pl 1. Wstęp Celem niniejszego

Bardziej szczegółowo

Akademia Górniczo-Hutnicza w Krakowie Katedra Elektroniki

Akademia Górniczo-Hutnicza w Krakowie Katedra Elektroniki Akademia Górniczo-Hutnicza w Krakowie Katedra Elektroniki Laboratorium mikrokontrolerów Ćwiczenie 7 Przerwania Autor: Paweł Russek Tłumaczenie: Sebastian Koryciak http://www.fpga.agh.edu.pl/tm ver. 25.05.16

Bardziej szczegółowo