SlideShare a Scribd company logo
1 of 42
Nabil CHOUBA UART โ€“ RS-232  http:// nabil.chouba.googlepages.com
UART-  RS-232 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
TTL 0/5 to RS-232 -12/12
Asynchronous vs. Synchronous ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
RS-232 Pin  Assignment
Baud Rate ,[object Object]
Transmission Re quirement ,[object Object],[object Object],[object Object],[object Object],[object Object]
RS-232 Frame Start D0 D1 D2 D3 D4 D5 D6 D7 Stop 1 1 1 1  0  1  0  0  0  0  1  1  0   0   1   1 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],P T tx  = n .T clk   T clk  = 1/25 Mhz  ,T tx  = 1/9.6 Khz n = T tx  /T clk   , n = 25000/9.6
RTL View shift register b7 b6 b5 b4 b3 b2 b1 b0 run_shift load_shift Data_input shiftBit (start) โ€˜0โ€™ (stop)  โ€˜1โ€™ parity xor xor xor xor xor xor xor parity Flip Flop tx State  Machine seltx start Counter Bautrate bautrate run_brcount soft_rst_brcount 00 01 10 11
Transmitter Tx idle   b_start b_0 b_6 b_1 b_5 b_4 b_3 b_2 b_parity b_stop start   seltx <= '01'; run_brcount <= โ€˜1โ€™; Load_shift <= โ€˜1โ€™ run_brcount <= โ€˜1โ€™; seltx <= โ€™11โ€™; seltx <= '10';  soft_count_rst <= โ€˜1โ€™ seltx <='10'; run_brcount <= โ€˜1โ€™; rst bautrate run_brcount <= โ€˜1โ€™; seltx <= โ€˜00โ€™ run_brcount <= โ€˜1โ€™; seltx <=โ€˜00โ€™; run_brcount <= โ€˜1โ€™; seltx <=โ€˜00โ€™; run_brcount <= โ€˜1โ€™; seltx <=โ€˜00โ€™; bautrate bautrate bautrate b_7 run_brcount <= โ€˜1โ€™; seltx <=โ€˜00โ€™; run_brcount <= โ€˜1โ€™; seltx <=โ€˜00โ€™; run_brcount <= โ€˜1โ€™; seltx <=โ€˜00โ€™; run_brcount <= โ€˜1โ€™; seltx <=โ€˜00โ€™; Bautrate /  run_shift <= '1'   Bautrate /  run_shift <= '1'   Bautrate /  run_shift <= '1'   Bautrate /  run_shift <= '1'   Bautrate /  run_shift <= '1'   Bautrate /  run_shift <= '1'   Bautrate /  run_shift <= '1'
VHDL CODE cloked_process : process( clk, rst ) begin if( rst='1' ) then state_reg <=  idle ; counter_bautrate_reg  <= (others =>'0') ; data_shift_reg <= (others =>'0') ; elsif( clk'event and clk='1' ) then state_reg<= state_next ; counter_bautrate_reg <= counter_bautrate_next; data_shift_reg <= data_shift_next; end if; end process ; bautrate <= '1' when counter_bautrate_reg = 5200  else '0'; BR_COUNTER : process( counter_bautrate_reg, run_brcount, soft_rst_brcount,bautrate ) begin counter_bautrate_next  <= counter_bautrate_reg; if  soft_rst_brcount = '1' or bautrate = '1' then counter_bautrate_next <= (others=>'0'); elsif( run_brcount  = '1'  ) then counter_bautrate_next <= counter_bautrate_reg + 1 ;  end if ; end process ; comb_shift:process (load_shift,data_shift_reg,run_shift,data,bautrate) begin data_shift_next<= data_shift_reg; if load_shift ='1' then data_shift_next <=data; elsif run_shift ='1' and bautrate = '1' then data_shift_next <= data_shift_reg(0) & data_shift_reg(7 downto 1); end if; end process; shiftBit <= data_shift_reg(0); parity<=data_shift_reg(0)xor data_shift_reg(1)xor data_shift_reg(2)xor data_shift_reg(3)xor data_shift_reg(4)xor data_shift_reg(5)xor data_shift_reg(6)xor data_shift_reg(7); tx <=  shiftBit when seltx =&quot;00&quot; else -- Data  bit '0'  when seltx =&quot;01&quot; else -- Start bit '1'  when seltx =&quot;01&quot; else -- Stop  bit parity ;
VHDL CODE --next state processing combinatory_FSM_next : process(state_reg,start,bautrate) begin state_next<= state_reg;   case state_reg is when idle => if start = '1' then state_next <= b_start;  end if; when b_start => if bautrate = '1' then state_next <= b_0; end if; when b_0 => if bautrate = '1' then state_next <= b_1; end if; when b_6 => if bautrate = '1' then state_next <= b_7; end if; when b_7 => if bautrate = '1' then state_next <= b_parity; end if; when b_parity => if bautrate = '1' then state_next <= b_stop; end if; when b_stop => if bautrate = '1' then state_next <= idle; end if; when others => end case; end process; when b_1 => if bautrate = '1' then state_next <= b_2; end if; when b_2 => if bautrate = '1' then state_next <= b_3; end if; when b_3 => if bautrate = '1' then state_next <= b_4; end if; when b_4 => if bautrate = '1' then state_next <= b_5; end if; when b_5 => if bautrate = '1' then state_next <= b_6; end if;
VHDL CODE --controls output processing combinatory_output : process(state_reg ) begin run_brcount <= '0'; seltx <= &quot;10&quot;; --stop bit; soft_rst_brcount <= '0'; Load_shift  <= '0'; run_shift <= '0';   case state_reg is when idle => seltx <= &quot;10&quot;; --stop bit; soft_rst_brcount <= '0'; when b_start => seltx <= &quot;01&quot;; run_brcount <= '1'; Load_shift  <= '1'; when b_0 | b_1 b_2 | b_3 |b_4 | b_5 |b_6 | b_7 => run_brcount <= '1'; run_shift <= '1'; seltx <= &quot;00&quot;; when b_parity => run_brcount <= '1'; seltx <= &quot;11&quot;; when b_stop => seltx <=&quot;10&quot;; run_brcount <= '1'; when others => end case; end process;
Simulation  Result (Mentor vsim) ,[object Object]
Synthesis   Result  (designvision / synopsys) Inferred memory devices in process in routine transmiter line 61 in file '/home/chouban/tp_vhdl/rs232/transmiter.vhd'. =================================================================== |  Register Name  |  Type  | Width | Bus | MB | AR | AS | SR | SS | ST | =================================================================== |  data_shift_reg_reg  | Flip-flop |  8  |  Y  | N  | Y  | N  | N  | N  | N  | |  state_reg_reg  | Flip-flop |  4  |  Y  | N  | Y  | N  | N  | N  | N  | | counter_bautrate_reg_reg  | Flip-flop |  16  |  Y  | N  | Y  | N  | N  | N  | N  | ===================================================================
Synthesis   Result  (designvision / synopsys/ GTEC  Library   ) State register  bautrate generation Shift register Next State FSM output Mux seltx
Mux โ€“  seltx   (designvision / synopsys)
Shift register   (designvision / synopsys)
bautrate generation   (designvision / synopsys)
FSM output   (designvision / synopsys)
state : register & next  (designvision / synopsys)
Receiver  sampling  signal Start bit bit 0 bit 1 bit 2 8 16 16 16 ,[object Object],[object Object],[object Object]
RTL View shift register b7 b6 b5 b4 b3 b2 b1 b0 run_shift save_data Data_output State  Machine Counter Bautrate run_brcount soft_rst_brcount b7 b6 b5 b4 b3 b2 b1 b0 bautrate8 rx Detect Start Bit detect_start Data_ready
Receiver  Rx b_start b_0 b_6 b_1 b_5 b_4 b_3 b_2 b_7 b_stop soft_rst_brcount <=โ€˜1โ€™  Bautrate8 idle detect_start parity run_brcount <= โ€˜1โ€™ run_brcount  <= โ€˜1โ€™ Bautrate8  /   run_shift <='1'; run_brcount <= โ€˜1โ€™ run_brcount <= โ€˜1โ€™ run_brcount <= โ€˜1โ€™ run_brcount <= โ€˜1โ€™ run_brcount <= โ€˜1โ€™ run_brcount <= โ€˜1โ€™ run_brcount <= โ€˜1โ€™ run_brcount <= โ€˜1โ€™ Bautrate8  /   run_shift <='1'; Bautrate8  /   run_shift <='1'; Bautrate8  /   run_shift <='1'; Bautrate8 Bautrate8   /  run_shift <='1'; Bautrate8  /   run_shift <='1'; Bautrate8  /   run_shift <='1'; Bautrate8 Bautrate8  /   save_data <='1'; data_ready <= '1';
VHDL CODE cloked_process : process( clk, rst ) begin if( rst='1' ) then state_reg <=  idle ; counter_bautrate_reg  <= (others =>'0') ; data_shift_reg <= (others =>'0') ; data_save_reg <= (others =>'0') ; rx_reg <= '0'; elsif( clk'event and clk='1' ) then state_reg<= state_next ; counter_bautrate_reg <= counter_bautrate_next; data_shift_reg <= data_shift_next;  data_save_reg <= data_save_next ; rx_reg <= rx_next; end if; end process ; bautrate16 <= '1' when counter_bautrate_reg = 5200  else '0'; bautrate8  <= '1' when counter_bautrate_reg = 2600  else '0'; BR_COUNTER_GEN : process( counter_bautrate_reg, run_brcount, soft_rst_brcount, bautrate16 ) begin counter_bautrate_next  <= counter_bautrate_reg; if  soft_rst_brcount = '1' or bautrate16 = '1' then counter_bautrate_next <= (others=>'0'); elsif( run_brcount  = '1'  ) then counter_bautrate_next <= counter_bautrate_reg + 1 ;  end if ;  end process ;
VHDL CODE comb_shift:process(data_shift_reg,run_shift,rx) begin data_shift_next<= data_shift_reg; if run_shift ='1'  then data_shift_next <= rx & data_shift_reg(7 downto 1); end if; end process; rx_next <= rx; detect_start <= '1' when  rx_next = '0' and rx_reg = '1' else '0'; data_save_next <= data_shift_reg when save_data = '1' else data_save_reg; data <= data_save_reg;
VHDL CODE --next state processing combinatory_FSM_next : process(state_reg, detect_start, bautrate8, bautrate16) begin state_next<= state_reg; case state_reg is when idle => if detect_start = '1' then state_next <= b_start;  end if; when b_start => if bautrate8 = '1' then state_next <= b_0; end if; when b_0 => if bautrate8  = '1' then state_next <= b_1; end if; when b_1 => if bautrate8  = '1' then state_next <= b_2;  end if; when b_2 => if bautrate8  = '1' then state_next <= b_3; end if; when b_3 => if bautrate8  = '1' then state_next <= b_4; end if; when b_4 => if bautrate8  = '1' then state_next <= b_5; end if; when b_5 => if bautrate8  = '1' then state_next <= b_6; end if; when b_6 => if bautrate8  = '1' then state_next <= b_7; end if; when b_7 => if bautrate8  = '1' then state_next <= b_parity; end if; when b_parity => if bautrate8 = '1' then state_next <= b_stop; end if; when b_stop => if bautrate8 = '1' then state_next <= idle; end if; when others => end case; end process;
VHDL CODE --output processing combinatory_output : process(state_reg, detect_start, bautrate8, bautrate16) begin run_brcount <='0'; data_ready <= '0'; save_data <= '0'; soft_rst_brcount<='0'; run_shift <='0'; case state_reg is when idle => soft_rst_brcount<=โ€˜1'; when b_start => run_brcount <='1'; when b_0 => run_brcount <='1'; if bautrate8  = '1' then run_shift <='1'; end if; when b_1 => run_brcount <='1'; if bautrate8  = '1' then run_shift <='1'; end if; when b_2 => run_brcount <='1'; if bautrate8  = '1' then run_shift <='1'; end if; when b_3 => run_brcount <='1'; if bautrate8  = '1' then run_shift <='1'; end if; when b_4 => run_brcount <='1'; if bautrate8  = '1' then run_shift <='1'; end if; when b_5 => run_brcount <='1'; if bautrate8  = '1' then run_shift <='1'; end if; when b_6 => run_brcount <='1'; if bautrate8  = '1' then run_shift <='1'; end if; when b_7 => run_brcount <='1'; if bautrate8  = '1' then run_shift <='1'; end if; when b_parity => run_brcount <='1'; when b_stop => run_brcount <='1'; if bautrate8 = '1' then  save_data <= '1'; end if; when others => end case; end process;
Testbench clk <= not clk after 50 ns; rst <= '0' after 150 ns; tb : PROCESS BEGIN -- idle bit rx <= '1'; -- wiat  wait for 100 * 5200 ns; --stat bit rx <= '0'; wait for 100 * 5200 ns; for i in 0 to 7 loop rx <= send_data(i); wait for 100 * 5200 ns; end loop; -- party bit not implemented rx <= '-'; wait for 100 * 5200 ns; -- stop bit rx <= '1'; wait for 100 * 5200 ns; -- do nothing wait for 100 * 5200 ns; -- test if rw data = to sended data assert (data = send_data) report &quot; data /= send_data&quot;  severity Error; -- end of simulation wait for 1000ns; assert (2=1) report &quot;end simulation&quot; severity note; wait; -- will wait forever end process;
Simulation  Result (Mentor vsim) Data resived : 10101010
Synthesis   Result  (design_vision / synopsys/cmos65 Library   ) Inferred memory devices in process in routine resiver line 60 in file '/home/chouban/tp_vhdl/rs232/resiver.vhd'. ===================================================================== |  Register Name  |  Type  | Width | Bus | MB | AR | AS | SR | SS | ST | ===================================================================== |  rx_reg_reg  | Flip-flop |  1  |  N  | N  | Y  | N  | N  | N  | N  | |  state_reg_reg  | Flip-flop |  4  |  Y  | N  | Y  | N  | N  | N  | N  | | counter_bautrate_reg_reg | Flip-flop |  16  |  Y  | N  | Y  | N  | N  | N  | N  | |  data_shift_reg_reg  | Flip-flop |  8  |  Y  | N  | Y  | N  | N  | N  | N  | |  data_save_reg_reg  | Flip-flop |  8  |  Y  | N  | Y  | N  | N  | N  | N  | =====================================================================
Synthesis   Result  (design_vision / synopsys/ cmos65 ) save register shift  register Counter Bautrate State Machin
Save data register & logic  /cmos65
shift data register & logic  /cmos65
State Machin  /cmos65
Counter Bautrate  /cmos65
Report : area (cmos65) **************************************** Report : area Design : resiver Version: Z-2007.03-SP5-1 Date  : Wed May  6 12:20:00 2009 **************************************** Library(s) Used:  CORE65 Number of ports:  12 Number of nets:  148 Number of cells:  130 Number of references:  23 Combinational area:  364.519990 Noncombinational area:  384.799986 Net Interconnect area:  undefined  (Wire load has zero net area) Total cell area:  749.319946 ***** End Of Report *****
Report : Power (cmos65)  **************************************** Report : power -analysis_effort low Design : resiver Version: Z-2007.03-SP5-1 Date  : Wed May  6 12:21:43 2009 **************************************** Global Operating Voltage = 1.1  Power-specific unit information : Voltage Units = 1V Capacitance Units = 1.000000pf Time Units = 1ns Dynamic Power Units = 1mW  (derived from V,C,T units) Leakage Power Units = 1pW Cell Internal Power  =  1.2396 uW  (77%) Net Switching Power  = 367.3567 nW  (23%) --------- Total Dynamic Power  =  1.6070 uW  (100%) Cell Leakage Power  =  13.1999 uW
Report : reference eference  Library  Unit Area  Count  Total Area  Attributes ----------------------------------------------------------------------------- HS65_LS_AND2X4  CORE65xxxx  2.600000  1  2.600000  HS65_LS_AO12X9  CORE65xxxx  3.640000  1  3.640000  HS65_LS_AO22X9  CORE65xxxx  4.160000  32  133.119995  HS65_LS_AOI22X6  CORE65xxxx  3.640000  1  3.640000  HS65_LS_AOI32X5  CORE65xxxx  4.160000  2  8.320000  HS65_LS_BFX9  CORE65xxxx  2.080000  3  6.240000  HS65_LS_CBI4I1X5  CORE65xxxx  3.640000  1  3.640000  HS65_LS_DFPRQNX9  CORE65xx  10.400000  12  124.799995  n HS65_LS_DFPRQX9  CORE65xxx  10.400000  25  259.999990  n HS65_LS_IVX9  CORE65xxxx  1.560000  20  31.199999  HS65_LS_NAND2AX7  CORE65xx  3.120000  1  3.120000  HS65_LS_NAND2X7  CORE65xxx  2.080000  2  4.160000  HS65_LS_NAND3X5  CORE65xxx  2.600000  3  7.800000  HS65_LS_NAND4ABX3  CORE65x  3.640000  2  7.280000  HS65_LS_NOR2X6  CORE65xxxx  2.080000  5  10.400000  HS65_LS_NOR3AX4  CORE65xxx  3.640000  1  3.640000  HS65_LS_NOR3X4  CORE65xxxx  2.600000  5  13.000000  HS65_LS_NOR4ABX2  CORE65xx  3.640000  6  21.840001  HS65_LS_OAI13X5  CORE65xxx  3.640000  1  3.640000  HS65_LS_OAI21X3  CORE65xxx  2.600000  2  5.200000  HS65_LS_OAI212X5  CORE65xxx  4.160000  2  8.320000  HS65_LS_OAI222X2  CORE65xxx  5.200000  1  5.200000  resiver_DW01_inc_0  78.519997  1  78.519997  h ----------------------------------------------------------------------------- Total 23 references  749.319976
UART : Enhancement  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Exemple of UART on ยตc ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],* TI / MSP430
FPGA over-all Test  ,[object Object],[object Object],[object Object],receiver   transmitter   start debounce  data=[a]= 0x61 tx rx Data_ready data PC PC

More Related Content

What's hot

Module 2 ARM CORTEX M3 Instruction Set and Programming
Module 2 ARM CORTEX M3 Instruction Set and ProgrammingModule 2 ARM CORTEX M3 Instruction Set and Programming
Module 2 ARM CORTEX M3 Instruction Set and ProgrammingAmogha Bandrikalli
ย 
Basic electronics
Basic electronicsBasic electronics
Basic electronicsMantra VLSI
ย 
Verilog HDL
Verilog HDLVerilog HDL
Verilog HDLMantra VLSI
ย 
ARM Architecture
ARM ArchitectureARM Architecture
ARM ArchitectureDwight Sabio
ย 
UART(universal asynchronous receiver transmitter ) PPT
UART(universal asynchronous receiver transmitter ) PPTUART(universal asynchronous receiver transmitter ) PPT
UART(universal asynchronous receiver transmitter ) PPTSai_praneeth
ย 
Design and implementation of uart on soc
Design and implementation of uart on socDesign and implementation of uart on soc
Design and implementation of uart on socIjrdt Journal
ย 
Delays in verilog
Delays in verilogDelays in verilog
Delays in verilogJITU MISTRY
ย 
I2 c protocol
I2 c protocolI2 c protocol
I2 c protocolAzad Mishra
ย 
I2C Protocol
I2C ProtocolI2C Protocol
I2C ProtocolAnurag Tomar
ย 
AHB To APB BRIDGE.pptx
AHB To APB BRIDGE.pptxAHB To APB BRIDGE.pptx
AHB To APB BRIDGE.pptxGuckChick
ย 
SPI Protocol
SPI ProtocolSPI Protocol
SPI ProtocolAnurag Tomar
ย 
Serial Peripheral Interface(SPI)
Serial Peripheral Interface(SPI)Serial Peripheral Interface(SPI)
Serial Peripheral Interface(SPI)Dhaval Kaneria
ย 
Verilog lab manual (ECAD and VLSI Lab)
Verilog lab manual (ECAD and VLSI Lab)Verilog lab manual (ECAD and VLSI Lab)
Verilog lab manual (ECAD and VLSI Lab)Dr. Swaminathan Kathirvel
ย 
AMBA 3 APB Protocol
AMBA 3 APB ProtocolAMBA 3 APB Protocol
AMBA 3 APB ProtocolSwetha GSM
ย 
FSM and ASM
FSM and ASMFSM and ASM
FSM and ASMUnsa Shakir
ย 

What's hot (20)

Module 2 ARM CORTEX M3 Instruction Set and Programming
Module 2 ARM CORTEX M3 Instruction Set and ProgrammingModule 2 ARM CORTEX M3 Instruction Set and Programming
Module 2 ARM CORTEX M3 Instruction Set and Programming
ย 
USART
USARTUSART
USART
ย 
Basic electronics
Basic electronicsBasic electronics
Basic electronics
ย 
Crash course in verilog
Crash course in verilogCrash course in verilog
Crash course in verilog
ย 
Verilog HDL
Verilog HDLVerilog HDL
Verilog HDL
ย 
I2C BUS PROTOCOL
I2C BUS PROTOCOLI2C BUS PROTOCOL
I2C BUS PROTOCOL
ย 
ARM Architecture
ARM ArchitectureARM Architecture
ARM Architecture
ย 
UART(universal asynchronous receiver transmitter ) PPT
UART(universal asynchronous receiver transmitter ) PPTUART(universal asynchronous receiver transmitter ) PPT
UART(universal asynchronous receiver transmitter ) PPT
ย 
Uart
UartUart
Uart
ย 
Design and implementation of uart on soc
Design and implementation of uart on socDesign and implementation of uart on soc
Design and implementation of uart on soc
ย 
Delays in verilog
Delays in verilogDelays in verilog
Delays in verilog
ย 
I2 c protocol
I2 c protocolI2 c protocol
I2 c protocol
ย 
I2C Protocol
I2C ProtocolI2C Protocol
I2C Protocol
ย 
AHB To APB BRIDGE.pptx
AHB To APB BRIDGE.pptxAHB To APB BRIDGE.pptx
AHB To APB BRIDGE.pptx
ย 
SPI Protocol
SPI ProtocolSPI Protocol
SPI Protocol
ย 
VHDL
VHDLVHDL
VHDL
ย 
Serial Peripheral Interface(SPI)
Serial Peripheral Interface(SPI)Serial Peripheral Interface(SPI)
Serial Peripheral Interface(SPI)
ย 
Verilog lab manual (ECAD and VLSI Lab)
Verilog lab manual (ECAD and VLSI Lab)Verilog lab manual (ECAD and VLSI Lab)
Verilog lab manual (ECAD and VLSI Lab)
ย 
AMBA 3 APB Protocol
AMBA 3 APB ProtocolAMBA 3 APB Protocol
AMBA 3 APB Protocol
ย 
FSM and ASM
FSM and ASMFSM and ASM
FSM and ASM
ย 

Viewers also liked

FPGA IMPLIMENTATION OF UART CONTTROLLER
FPGA IMPLIMENTATION OF UART CONTTROLLERFPGA IMPLIMENTATION OF UART CONTTROLLER
FPGA IMPLIMENTATION OF UART CONTTROLLERVarun Kambrath
ย 
Uart
UartUart
Uartsean chen
ย 
FPGA implementation of synchronous and asynchronous counter and simulation of...
FPGA implementation of synchronous and asynchronous counter and simulation of...FPGA implementation of synchronous and asynchronous counter and simulation of...
FPGA implementation of synchronous and asynchronous counter and simulation of...ASHIMA GUPTA
ย 
Synthesis & FPGA Implementation of UART IP Soft Core
Synthesis & FPGA Implementation of UART IP Soft CoreSynthesis & FPGA Implementation of UART IP Soft Core
Synthesis & FPGA Implementation of UART IP Soft Coreijsrd.com
ย 
final_report
final_reportfinal_report
final_reportTilson Joji
ย 
Hybrid Communication Protocol- UART & SPI
Hybrid Communication Protocol- UART & SPIHybrid Communication Protocol- UART & SPI
Hybrid Communication Protocol- UART & SPIHardik Manocha
ย 
UART project report by Tarun Khaneja ( 09034406598 )
UART project report by Tarun Khaneja ( 09034406598 )UART project report by Tarun Khaneja ( 09034406598 )
UART project report by Tarun Khaneja ( 09034406598 )Tarun Khaneja
ย 
Asynchronous vs synchonous interraction kossivi spptx
Asynchronous vs synchonous interraction kossivi spptxAsynchronous vs synchonous interraction kossivi spptx
Asynchronous vs synchonous interraction kossivi spptxSKossivi
ย 
Fun and Easy UART - How the UART Protocol Works
Fun and Easy UART - How the UART Protocol WorksFun and Easy UART - How the UART Protocol Works
Fun and Easy UART - How the UART Protocol WorksRitesh Kanjee
ย 
Ece speech-recognition-report
Ece speech-recognition-reportEce speech-recognition-report
Ece speech-recognition-reportAnakali Mahesh
ย 
Synchronous and asynchronous reset
Synchronous and asynchronous resetSynchronous and asynchronous reset
Synchronous and asynchronous resetNallapati Anindra
ย 
Synchronous and asynchronous clock
Synchronous and asynchronous clockSynchronous and asynchronous clock
Synchronous and asynchronous clockNallapati Anindra
ย 
Synchronous and asynchronous (1)
Synchronous and asynchronous (1)Synchronous and asynchronous (1)
Synchronous and asynchronous (1)Akero pranpriya Sekcet
ย 
Communication protocols
Communication protocolsCommunication protocols
Communication protocolsPiyush Bhardwaj
ย 
ACCIDENT AVOIDANCE WITH DYNAMIC SPEED GOVERNOR
ACCIDENT AVOIDANCE WITH DYNAMIC SPEED GOVERNORACCIDENT AVOIDANCE WITH DYNAMIC SPEED GOVERNOR
ACCIDENT AVOIDANCE WITH DYNAMIC SPEED GOVERNORakbarsaleemtakkasila
ย 
Raspberry Pi - Lecture 3 Embedded Communication Protocols
Raspberry Pi - Lecture 3 Embedded Communication ProtocolsRaspberry Pi - Lecture 3 Embedded Communication Protocols
Raspberry Pi - Lecture 3 Embedded Communication ProtocolsMohamed Abdallah
ย 
Serial Communication
Serial CommunicationSerial Communication
Serial CommunicationRashmi
ย 
Communication protocol presentation
Communication protocol presentationCommunication protocol presentation
Communication protocol presentationGopi A
ย 

Viewers also liked (20)

FPGA IMPLIMENTATION OF UART CONTTROLLER
FPGA IMPLIMENTATION OF UART CONTTROLLERFPGA IMPLIMENTATION OF UART CONTTROLLER
FPGA IMPLIMENTATION OF UART CONTTROLLER
ย 
Uart
UartUart
Uart
ย 
FPGA implementation of synchronous and asynchronous counter and simulation of...
FPGA implementation of synchronous and asynchronous counter and simulation of...FPGA implementation of synchronous and asynchronous counter and simulation of...
FPGA implementation of synchronous and asynchronous counter and simulation of...
ย 
Synthesis & FPGA Implementation of UART IP Soft Core
Synthesis & FPGA Implementation of UART IP Soft CoreSynthesis & FPGA Implementation of UART IP Soft Core
Synthesis & FPGA Implementation of UART IP Soft Core
ย 
Uart
UartUart
Uart
ย 
final_report
final_reportfinal_report
final_report
ย 
Hybrid Communication Protocol- UART & SPI
Hybrid Communication Protocol- UART & SPIHybrid Communication Protocol- UART & SPI
Hybrid Communication Protocol- UART & SPI
ย 
UART project report by Tarun Khaneja ( 09034406598 )
UART project report by Tarun Khaneja ( 09034406598 )UART project report by Tarun Khaneja ( 09034406598 )
UART project report by Tarun Khaneja ( 09034406598 )
ย 
Asynchronous vs synchonous interraction kossivi spptx
Asynchronous vs synchonous interraction kossivi spptxAsynchronous vs synchonous interraction kossivi spptx
Asynchronous vs synchonous interraction kossivi spptx
ย 
Fun and Easy UART - How the UART Protocol Works
Fun and Easy UART - How the UART Protocol WorksFun and Easy UART - How the UART Protocol Works
Fun and Easy UART - How the UART Protocol Works
ย 
Ece speech-recognition-report
Ece speech-recognition-reportEce speech-recognition-report
Ece speech-recognition-report
ย 
Synchronous and asynchronous reset
Synchronous and asynchronous resetSynchronous and asynchronous reset
Synchronous and asynchronous reset
ย 
Synchronous and asynchronous clock
Synchronous and asynchronous clockSynchronous and asynchronous clock
Synchronous and asynchronous clock
ย 
Synchronous and asynchronous (1)
Synchronous and asynchronous (1)Synchronous and asynchronous (1)
Synchronous and asynchronous (1)
ย 
final project ppt
final project pptfinal project ppt
final project ppt
ย 
Communication protocols
Communication protocolsCommunication protocols
Communication protocols
ย 
ACCIDENT AVOIDANCE WITH DYNAMIC SPEED GOVERNOR
ACCIDENT AVOIDANCE WITH DYNAMIC SPEED GOVERNORACCIDENT AVOIDANCE WITH DYNAMIC SPEED GOVERNOR
ACCIDENT AVOIDANCE WITH DYNAMIC SPEED GOVERNOR
ย 
Raspberry Pi - Lecture 3 Embedded Communication Protocols
Raspberry Pi - Lecture 3 Embedded Communication ProtocolsRaspberry Pi - Lecture 3 Embedded Communication Protocols
Raspberry Pi - Lecture 3 Embedded Communication Protocols
ย 
Serial Communication
Serial CommunicationSerial Communication
Serial Communication
ย 
Communication protocol presentation
Communication protocol presentationCommunication protocol presentation
Communication protocol presentation
ย 

Similar to Uart VHDL RTL design tutorial

Uart
UartUart
Uartcs1090211
ย 
Loopback.vhd
Loopback.vhdLoopback.vhd
Loopback.vhdsachindb9
ย 
Digital Voltmeter displaying voltage level on a seven segment display and com...
Digital Voltmeter displaying voltage level on a seven segment display and com...Digital Voltmeter displaying voltage level on a seven segment display and com...
Digital Voltmeter displaying voltage level on a seven segment display and com...Karthik Rathinavel
ย 
Writing more complex models
Writing more complex modelsWriting more complex models
Writing more complex modelsMohamed Samy
ย 
Handling Asynchronous Events in MCUs
Handling Asynchronous Events in MCUsHandling Asynchronous Events in MCUs
Handling Asynchronous Events in MCUsCorrado Santoro
ย 
C++ programming
C++ programmingC++ programming
C++ programmingAbdallah Abuouf
ย 
Verilog Lecture2 thhts
Verilog Lecture2 thhtsVerilog Lecture2 thhts
Verilog Lecture2 thhtsBรฉo Tรบ
ย 
VGA VHDL RTL design tutorial
VGA  VHDL   RTL design tutorialVGA  VHDL   RTL design tutorial
VGA VHDL RTL design tutorialNabil Chouba
ย 
Blood pressure set programming
Blood pressure set programmingBlood pressure set programming
Blood pressure set programmingNoorshahida Kassim
ย 
Blackfin Loop Asm
Blackfin Loop AsmBlackfin Loop Asm
Blackfin Loop AsmAdithya Rao
ย 
The_ERICSSON_commands_listed_below_are_f (1) (1).pdf
The_ERICSSON_commands_listed_below_are_f (1) (1).pdfThe_ERICSSON_commands_listed_below_are_f (1) (1).pdf
The_ERICSSON_commands_listed_below_are_f (1) (1).pdfssuser340a0c
ย 
Radix 2 code
Radix 2 codeRadix 2 code
Radix 2 codepradipakv
ย 
Lampiran 1.programdocx
Lampiran 1.programdocxLampiran 1.programdocx
Lampiran 1.programdocxLugik kristiyanto
ย 
Twin wheeler modified for arduino simplified serial protocol to sabertooth v22
Twin wheeler modified for arduino simplified serial protocol to sabertooth v22Twin wheeler modified for arduino simplified serial protocol to sabertooth v22
Twin wheeler modified for arduino simplified serial protocol to sabertooth v22josnihmurni2907
ย 
Comande oss
Comande ossComande oss
Comande ossTOUATIPHON
ย 
Formal Verification of Web Service Interaction Contracts
Formal Verification of Web Service Interaction ContractsFormal Verification of Web Service Interaction Contracts
Formal Verification of Web Service Interaction ContractsGera Shegalov
ย 
Accumulo Summit 2014: Accismus -- Percolating with Accumulo
Accumulo Summit 2014: Accismus -- Percolating with AccumuloAccumulo Summit 2014: Accismus -- Percolating with Accumulo
Accumulo Summit 2014: Accismus -- Percolating with AccumuloAccumulo Summit
ย 
Maude20100719
Maude20100719Maude20100719
Maude20100719tmiya
ย 

Similar to Uart VHDL RTL design tutorial (20)

Uart
UartUart
Uart
ย 
Loopback.vhd
Loopback.vhdLoopback.vhd
Loopback.vhd
ย 
Digital Voltmeter displaying voltage level on a seven segment display and com...
Digital Voltmeter displaying voltage level on a seven segment display and com...Digital Voltmeter displaying voltage level on a seven segment display and com...
Digital Voltmeter displaying voltage level on a seven segment display and com...
ย 
Writing more complex models
Writing more complex modelsWriting more complex models
Writing more complex models
ย 
Handling Asynchronous Events in MCUs
Handling Asynchronous Events in MCUsHandling Asynchronous Events in MCUs
Handling Asynchronous Events in MCUs
ย 
C++ programming
C++ programmingC++ programming
C++ programming
ย 
Verilog Lecture2 thhts
Verilog Lecture2 thhtsVerilog Lecture2 thhts
Verilog Lecture2 thhts
ย 
VGA VHDL RTL design tutorial
VGA  VHDL   RTL design tutorialVGA  VHDL   RTL design tutorial
VGA VHDL RTL design tutorial
ย 
Blood pressure set programming
Blood pressure set programmingBlood pressure set programming
Blood pressure set programming
ย 
Blackfin Loop Asm
Blackfin Loop AsmBlackfin Loop Asm
Blackfin Loop Asm
ย 
The_ERICSSON_commands_listed_below_are_f (1) (1).pdf
The_ERICSSON_commands_listed_below_are_f (1) (1).pdfThe_ERICSSON_commands_listed_below_are_f (1) (1).pdf
The_ERICSSON_commands_listed_below_are_f (1) (1).pdf
ย 
Radix 2 code
Radix 2 codeRadix 2 code
Radix 2 code
ย 
Lampiran 1.programdocx
Lampiran 1.programdocxLampiran 1.programdocx
Lampiran 1.programdocx
ย 
Twin wheeler modified for arduino simplified serial protocol to sabertooth v22
Twin wheeler modified for arduino simplified serial protocol to sabertooth v22Twin wheeler modified for arduino simplified serial protocol to sabertooth v22
Twin wheeler modified for arduino simplified serial protocol to sabertooth v22
ย 
Comande oss
Comande ossComande oss
Comande oss
ย 
Formal Verification of Web Service Interaction Contracts
Formal Verification of Web Service Interaction ContractsFormal Verification of Web Service Interaction Contracts
Formal Verification of Web Service Interaction Contracts
ย 
020419.pdf
020419.pdf020419.pdf
020419.pdf
ย 
Accumulo Summit 2014: Accismus -- Percolating with Accumulo
Accumulo Summit 2014: Accismus -- Percolating with AccumuloAccumulo Summit 2014: Accismus -- Percolating with Accumulo
Accumulo Summit 2014: Accismus -- Percolating with Accumulo
ย 
Maude20100719
Maude20100719Maude20100719
Maude20100719
ย 
Dsp Datapath
Dsp DatapathDsp Datapath
Dsp Datapath
ย 

More from Nabil Chouba

Global Positioning System 8051 GSM Traker
Global Positioning System 8051 GSM Traker Global Positioning System 8051 GSM Traker
Global Positioning System 8051 GSM Traker Nabil Chouba
ย 
Multilayer Neuronal network hardware implementation
Multilayer Neuronal network hardware implementation Multilayer Neuronal network hardware implementation
Multilayer Neuronal network hardware implementation Nabil Chouba
ย 
Semiconductor overview
Semiconductor overviewSemiconductor overview
Semiconductor overviewNabil Chouba
ย 
Count display VHDL tutorial
Count display VHDL tutorialCount display VHDL tutorial
Count display VHDL tutorialNabil Chouba
ย 
Elementary ยตprocessor tutorial
Elementary ยตprocessor tutorial Elementary ยตprocessor tutorial
Elementary ยตprocessor tutorial Nabil Chouba
ย 
A BIST Architecture for Sigma Delta ADC Testing Based on Embedded NOEB Self-T...
A BIST Architecture for Sigma Delta ADC Testing Based on Embedded NOEB Self-T...A BIST Architecture for Sigma Delta ADC Testing Based on Embedded NOEB Self-T...
A BIST Architecture for Sigma Delta ADC Testing Based on Embedded NOEB Self-T...Nabil Chouba
ย 

More from Nabil Chouba (6)

Global Positioning System 8051 GSM Traker
Global Positioning System 8051 GSM Traker Global Positioning System 8051 GSM Traker
Global Positioning System 8051 GSM Traker
ย 
Multilayer Neuronal network hardware implementation
Multilayer Neuronal network hardware implementation Multilayer Neuronal network hardware implementation
Multilayer Neuronal network hardware implementation
ย 
Semiconductor overview
Semiconductor overviewSemiconductor overview
Semiconductor overview
ย 
Count display VHDL tutorial
Count display VHDL tutorialCount display VHDL tutorial
Count display VHDL tutorial
ย 
Elementary ยตprocessor tutorial
Elementary ยตprocessor tutorial Elementary ยตprocessor tutorial
Elementary ยตprocessor tutorial
ย 
A BIST Architecture for Sigma Delta ADC Testing Based on Embedded NOEB Self-T...
A BIST Architecture for Sigma Delta ADC Testing Based on Embedded NOEB Self-T...A BIST Architecture for Sigma Delta ADC Testing Based on Embedded NOEB Self-T...
A BIST Architecture for Sigma Delta ADC Testing Based on Embedded NOEB Self-T...
ย 

Recently uploaded

ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomnelietumpap1
ย 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfTechSoup
ย 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxHumphrey A Beรฑa
ย 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptxSherlyMaeNeri
ย 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxthorishapillay1
ย 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfMr Bounab Samir
ย 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
ย 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management systemChristalin Nelson
ย 
call girls in Kamla Market (DELHI) ๐Ÿ” >เผ’9953330565๐Ÿ” genuine Escort Service ๐Ÿ”โœ”๏ธโœ”๏ธ
call girls in Kamla Market (DELHI) ๐Ÿ” >เผ’9953330565๐Ÿ” genuine Escort Service ๐Ÿ”โœ”๏ธโœ”๏ธcall girls in Kamla Market (DELHI) ๐Ÿ” >เผ’9953330565๐Ÿ” genuine Escort Service ๐Ÿ”โœ”๏ธโœ”๏ธ
call girls in Kamla Market (DELHI) ๐Ÿ” >เผ’9953330565๐Ÿ” genuine Escort Service ๐Ÿ”โœ”๏ธโœ”๏ธ9953056974 Low Rate Call Girls In Saket, Delhi NCR
ย 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfphamnguyenenglishnb
ย 
USPSยฎ Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPSยฎ Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPSยฎ Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPSยฎ Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...Postal Advocate Inc.
ย 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parentsnavabharathschool99
ย 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Mark Reed
ย 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONHumphrey A Beรฑa
ย 
Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Jisc
ย 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management SystemChristalin Nelson
ย 
Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)cama23
ย 
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfGrade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfJemuel Francisco
ย 

Recently uploaded (20)

Raw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptxRaw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptx
ย 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choom
ย 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
ย 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
ย 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptx
ย 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptx
ย 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
ย 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
ย 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management system
ย 
call girls in Kamla Market (DELHI) ๐Ÿ” >เผ’9953330565๐Ÿ” genuine Escort Service ๐Ÿ”โœ”๏ธโœ”๏ธ
call girls in Kamla Market (DELHI) ๐Ÿ” >เผ’9953330565๐Ÿ” genuine Escort Service ๐Ÿ”โœ”๏ธโœ”๏ธcall girls in Kamla Market (DELHI) ๐Ÿ” >เผ’9953330565๐Ÿ” genuine Escort Service ๐Ÿ”โœ”๏ธโœ”๏ธ
call girls in Kamla Market (DELHI) ๐Ÿ” >เผ’9953330565๐Ÿ” genuine Escort Service ๐Ÿ”โœ”๏ธโœ”๏ธ
ย 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
ย 
USPSยฎ Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPSยฎ Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPSยฎ Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPSยฎ Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
ย 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parents
ย 
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptxYOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
ย 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)
ย 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
ย 
Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...
ย 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management System
ย 
Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)
ย 
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfGrade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
ย 

Uart VHDL RTL design tutorial

  • 1. Nabil CHOUBA UART โ€“ RS-232 http:// nabil.chouba.googlepages.com
  • 2.
  • 3. TTL 0/5 to RS-232 -12/12
  • 4.
  • 5. RS-232 Pin Assignment
  • 6.
  • 7.
  • 8.
  • 9. RTL View shift register b7 b6 b5 b4 b3 b2 b1 b0 run_shift load_shift Data_input shiftBit (start) โ€˜0โ€™ (stop) โ€˜1โ€™ parity xor xor xor xor xor xor xor parity Flip Flop tx State Machine seltx start Counter Bautrate bautrate run_brcount soft_rst_brcount 00 01 10 11
  • 10. Transmitter Tx idle b_start b_0 b_6 b_1 b_5 b_4 b_3 b_2 b_parity b_stop start seltx <= '01'; run_brcount <= โ€˜1โ€™; Load_shift <= โ€˜1โ€™ run_brcount <= โ€˜1โ€™; seltx <= โ€™11โ€™; seltx <= '10'; soft_count_rst <= โ€˜1โ€™ seltx <='10'; run_brcount <= โ€˜1โ€™; rst bautrate run_brcount <= โ€˜1โ€™; seltx <= โ€˜00โ€™ run_brcount <= โ€˜1โ€™; seltx <=โ€˜00โ€™; run_brcount <= โ€˜1โ€™; seltx <=โ€˜00โ€™; run_brcount <= โ€˜1โ€™; seltx <=โ€˜00โ€™; bautrate bautrate bautrate b_7 run_brcount <= โ€˜1โ€™; seltx <=โ€˜00โ€™; run_brcount <= โ€˜1โ€™; seltx <=โ€˜00โ€™; run_brcount <= โ€˜1โ€™; seltx <=โ€˜00โ€™; run_brcount <= โ€˜1โ€™; seltx <=โ€˜00โ€™; Bautrate / run_shift <= '1' Bautrate / run_shift <= '1' Bautrate / run_shift <= '1' Bautrate / run_shift <= '1' Bautrate / run_shift <= '1' Bautrate / run_shift <= '1' Bautrate / run_shift <= '1'
  • 11. VHDL CODE cloked_process : process( clk, rst ) begin if( rst='1' ) then state_reg <= idle ; counter_bautrate_reg <= (others =>'0') ; data_shift_reg <= (others =>'0') ; elsif( clk'event and clk='1' ) then state_reg<= state_next ; counter_bautrate_reg <= counter_bautrate_next; data_shift_reg <= data_shift_next; end if; end process ; bautrate <= '1' when counter_bautrate_reg = 5200 else '0'; BR_COUNTER : process( counter_bautrate_reg, run_brcount, soft_rst_brcount,bautrate ) begin counter_bautrate_next <= counter_bautrate_reg; if soft_rst_brcount = '1' or bautrate = '1' then counter_bautrate_next <= (others=>'0'); elsif( run_brcount = '1' ) then counter_bautrate_next <= counter_bautrate_reg + 1 ; end if ; end process ; comb_shift:process (load_shift,data_shift_reg,run_shift,data,bautrate) begin data_shift_next<= data_shift_reg; if load_shift ='1' then data_shift_next <=data; elsif run_shift ='1' and bautrate = '1' then data_shift_next <= data_shift_reg(0) & data_shift_reg(7 downto 1); end if; end process; shiftBit <= data_shift_reg(0); parity<=data_shift_reg(0)xor data_shift_reg(1)xor data_shift_reg(2)xor data_shift_reg(3)xor data_shift_reg(4)xor data_shift_reg(5)xor data_shift_reg(6)xor data_shift_reg(7); tx <= shiftBit when seltx =&quot;00&quot; else -- Data bit '0' when seltx =&quot;01&quot; else -- Start bit '1' when seltx =&quot;01&quot; else -- Stop bit parity ;
  • 12. VHDL CODE --next state processing combinatory_FSM_next : process(state_reg,start,bautrate) begin state_next<= state_reg; case state_reg is when idle => if start = '1' then state_next <= b_start; end if; when b_start => if bautrate = '1' then state_next <= b_0; end if; when b_0 => if bautrate = '1' then state_next <= b_1; end if; when b_6 => if bautrate = '1' then state_next <= b_7; end if; when b_7 => if bautrate = '1' then state_next <= b_parity; end if; when b_parity => if bautrate = '1' then state_next <= b_stop; end if; when b_stop => if bautrate = '1' then state_next <= idle; end if; when others => end case; end process; when b_1 => if bautrate = '1' then state_next <= b_2; end if; when b_2 => if bautrate = '1' then state_next <= b_3; end if; when b_3 => if bautrate = '1' then state_next <= b_4; end if; when b_4 => if bautrate = '1' then state_next <= b_5; end if; when b_5 => if bautrate = '1' then state_next <= b_6; end if;
  • 13. VHDL CODE --controls output processing combinatory_output : process(state_reg ) begin run_brcount <= '0'; seltx <= &quot;10&quot;; --stop bit; soft_rst_brcount <= '0'; Load_shift <= '0'; run_shift <= '0'; case state_reg is when idle => seltx <= &quot;10&quot;; --stop bit; soft_rst_brcount <= '0'; when b_start => seltx <= &quot;01&quot;; run_brcount <= '1'; Load_shift <= '1'; when b_0 | b_1 b_2 | b_3 |b_4 | b_5 |b_6 | b_7 => run_brcount <= '1'; run_shift <= '1'; seltx <= &quot;00&quot;; when b_parity => run_brcount <= '1'; seltx <= &quot;11&quot;; when b_stop => seltx <=&quot;10&quot;; run_brcount <= '1'; when others => end case; end process;
  • 14.
  • 15. Synthesis Result (designvision / synopsys) Inferred memory devices in process in routine transmiter line 61 in file '/home/chouban/tp_vhdl/rs232/transmiter.vhd'. =================================================================== | Register Name | Type | Width | Bus | MB | AR | AS | SR | SS | ST | =================================================================== | data_shift_reg_reg | Flip-flop | 8 | Y | N | Y | N | N | N | N | | state_reg_reg | Flip-flop | 4 | Y | N | Y | N | N | N | N | | counter_bautrate_reg_reg | Flip-flop | 16 | Y | N | Y | N | N | N | N | ===================================================================
  • 16. Synthesis Result (designvision / synopsys/ GTEC Library ) State register bautrate generation Shift register Next State FSM output Mux seltx
  • 17. Mux โ€“ seltx (designvision / synopsys)
  • 18. Shift register (designvision / synopsys)
  • 19. bautrate generation (designvision / synopsys)
  • 20. FSM output (designvision / synopsys)
  • 21. state : register & next (designvision / synopsys)
  • 22.
  • 23. RTL View shift register b7 b6 b5 b4 b3 b2 b1 b0 run_shift save_data Data_output State Machine Counter Bautrate run_brcount soft_rst_brcount b7 b6 b5 b4 b3 b2 b1 b0 bautrate8 rx Detect Start Bit detect_start Data_ready
  • 24. Receiver Rx b_start b_0 b_6 b_1 b_5 b_4 b_3 b_2 b_7 b_stop soft_rst_brcount <=โ€˜1โ€™ Bautrate8 idle detect_start parity run_brcount <= โ€˜1โ€™ run_brcount <= โ€˜1โ€™ Bautrate8 / run_shift <='1'; run_brcount <= โ€˜1โ€™ run_brcount <= โ€˜1โ€™ run_brcount <= โ€˜1โ€™ run_brcount <= โ€˜1โ€™ run_brcount <= โ€˜1โ€™ run_brcount <= โ€˜1โ€™ run_brcount <= โ€˜1โ€™ run_brcount <= โ€˜1โ€™ Bautrate8 / run_shift <='1'; Bautrate8 / run_shift <='1'; Bautrate8 / run_shift <='1'; Bautrate8 Bautrate8 / run_shift <='1'; Bautrate8 / run_shift <='1'; Bautrate8 / run_shift <='1'; Bautrate8 Bautrate8 / save_data <='1'; data_ready <= '1';
  • 25. VHDL CODE cloked_process : process( clk, rst ) begin if( rst='1' ) then state_reg <= idle ; counter_bautrate_reg <= (others =>'0') ; data_shift_reg <= (others =>'0') ; data_save_reg <= (others =>'0') ; rx_reg <= '0'; elsif( clk'event and clk='1' ) then state_reg<= state_next ; counter_bautrate_reg <= counter_bautrate_next; data_shift_reg <= data_shift_next; data_save_reg <= data_save_next ; rx_reg <= rx_next; end if; end process ; bautrate16 <= '1' when counter_bautrate_reg = 5200 else '0'; bautrate8 <= '1' when counter_bautrate_reg = 2600 else '0'; BR_COUNTER_GEN : process( counter_bautrate_reg, run_brcount, soft_rst_brcount, bautrate16 ) begin counter_bautrate_next <= counter_bautrate_reg; if soft_rst_brcount = '1' or bautrate16 = '1' then counter_bautrate_next <= (others=>'0'); elsif( run_brcount = '1' ) then counter_bautrate_next <= counter_bautrate_reg + 1 ; end if ; end process ;
  • 26. VHDL CODE comb_shift:process(data_shift_reg,run_shift,rx) begin data_shift_next<= data_shift_reg; if run_shift ='1' then data_shift_next <= rx & data_shift_reg(7 downto 1); end if; end process; rx_next <= rx; detect_start <= '1' when rx_next = '0' and rx_reg = '1' else '0'; data_save_next <= data_shift_reg when save_data = '1' else data_save_reg; data <= data_save_reg;
  • 27. VHDL CODE --next state processing combinatory_FSM_next : process(state_reg, detect_start, bautrate8, bautrate16) begin state_next<= state_reg; case state_reg is when idle => if detect_start = '1' then state_next <= b_start; end if; when b_start => if bautrate8 = '1' then state_next <= b_0; end if; when b_0 => if bautrate8 = '1' then state_next <= b_1; end if; when b_1 => if bautrate8 = '1' then state_next <= b_2; end if; when b_2 => if bautrate8 = '1' then state_next <= b_3; end if; when b_3 => if bautrate8 = '1' then state_next <= b_4; end if; when b_4 => if bautrate8 = '1' then state_next <= b_5; end if; when b_5 => if bautrate8 = '1' then state_next <= b_6; end if; when b_6 => if bautrate8 = '1' then state_next <= b_7; end if; when b_7 => if bautrate8 = '1' then state_next <= b_parity; end if; when b_parity => if bautrate8 = '1' then state_next <= b_stop; end if; when b_stop => if bautrate8 = '1' then state_next <= idle; end if; when others => end case; end process;
  • 28. VHDL CODE --output processing combinatory_output : process(state_reg, detect_start, bautrate8, bautrate16) begin run_brcount <='0'; data_ready <= '0'; save_data <= '0'; soft_rst_brcount<='0'; run_shift <='0'; case state_reg is when idle => soft_rst_brcount<=โ€˜1'; when b_start => run_brcount <='1'; when b_0 => run_brcount <='1'; if bautrate8 = '1' then run_shift <='1'; end if; when b_1 => run_brcount <='1'; if bautrate8 = '1' then run_shift <='1'; end if; when b_2 => run_brcount <='1'; if bautrate8 = '1' then run_shift <='1'; end if; when b_3 => run_brcount <='1'; if bautrate8 = '1' then run_shift <='1'; end if; when b_4 => run_brcount <='1'; if bautrate8 = '1' then run_shift <='1'; end if; when b_5 => run_brcount <='1'; if bautrate8 = '1' then run_shift <='1'; end if; when b_6 => run_brcount <='1'; if bautrate8 = '1' then run_shift <='1'; end if; when b_7 => run_brcount <='1'; if bautrate8 = '1' then run_shift <='1'; end if; when b_parity => run_brcount <='1'; when b_stop => run_brcount <='1'; if bautrate8 = '1' then save_data <= '1'; end if; when others => end case; end process;
  • 29. Testbench clk <= not clk after 50 ns; rst <= '0' after 150 ns; tb : PROCESS BEGIN -- idle bit rx <= '1'; -- wiat wait for 100 * 5200 ns; --stat bit rx <= '0'; wait for 100 * 5200 ns; for i in 0 to 7 loop rx <= send_data(i); wait for 100 * 5200 ns; end loop; -- party bit not implemented rx <= '-'; wait for 100 * 5200 ns; -- stop bit rx <= '1'; wait for 100 * 5200 ns; -- do nothing wait for 100 * 5200 ns; -- test if rw data = to sended data assert (data = send_data) report &quot; data /= send_data&quot; severity Error; -- end of simulation wait for 1000ns; assert (2=1) report &quot;end simulation&quot; severity note; wait; -- will wait forever end process;
  • 30. Simulation Result (Mentor vsim) Data resived : 10101010
  • 31. Synthesis Result (design_vision / synopsys/cmos65 Library ) Inferred memory devices in process in routine resiver line 60 in file '/home/chouban/tp_vhdl/rs232/resiver.vhd'. ===================================================================== | Register Name | Type | Width | Bus | MB | AR | AS | SR | SS | ST | ===================================================================== | rx_reg_reg | Flip-flop | 1 | N | N | Y | N | N | N | N | | state_reg_reg | Flip-flop | 4 | Y | N | Y | N | N | N | N | | counter_bautrate_reg_reg | Flip-flop | 16 | Y | N | Y | N | N | N | N | | data_shift_reg_reg | Flip-flop | 8 | Y | N | Y | N | N | N | N | | data_save_reg_reg | Flip-flop | 8 | Y | N | Y | N | N | N | N | =====================================================================
  • 32. Synthesis Result (design_vision / synopsys/ cmos65 ) save register shift register Counter Bautrate State Machin
  • 33. Save data register & logic /cmos65
  • 34. shift data register & logic /cmos65
  • 35. State Machin /cmos65
  • 36. Counter Bautrate /cmos65
  • 37. Report : area (cmos65) **************************************** Report : area Design : resiver Version: Z-2007.03-SP5-1 Date : Wed May 6 12:20:00 2009 **************************************** Library(s) Used: CORE65 Number of ports: 12 Number of nets: 148 Number of cells: 130 Number of references: 23 Combinational area: 364.519990 Noncombinational area: 384.799986 Net Interconnect area: undefined (Wire load has zero net area) Total cell area: 749.319946 ***** End Of Report *****
  • 38. Report : Power (cmos65) **************************************** Report : power -analysis_effort low Design : resiver Version: Z-2007.03-SP5-1 Date : Wed May 6 12:21:43 2009 **************************************** Global Operating Voltage = 1.1 Power-specific unit information : Voltage Units = 1V Capacitance Units = 1.000000pf Time Units = 1ns Dynamic Power Units = 1mW (derived from V,C,T units) Leakage Power Units = 1pW Cell Internal Power = 1.2396 uW (77%) Net Switching Power = 367.3567 nW (23%) --------- Total Dynamic Power = 1.6070 uW (100%) Cell Leakage Power = 13.1999 uW
  • 39. Report : reference eference Library Unit Area Count Total Area Attributes ----------------------------------------------------------------------------- HS65_LS_AND2X4 CORE65xxxx 2.600000 1 2.600000 HS65_LS_AO12X9 CORE65xxxx 3.640000 1 3.640000 HS65_LS_AO22X9 CORE65xxxx 4.160000 32 133.119995 HS65_LS_AOI22X6 CORE65xxxx 3.640000 1 3.640000 HS65_LS_AOI32X5 CORE65xxxx 4.160000 2 8.320000 HS65_LS_BFX9 CORE65xxxx 2.080000 3 6.240000 HS65_LS_CBI4I1X5 CORE65xxxx 3.640000 1 3.640000 HS65_LS_DFPRQNX9 CORE65xx 10.400000 12 124.799995 n HS65_LS_DFPRQX9 CORE65xxx 10.400000 25 259.999990 n HS65_LS_IVX9 CORE65xxxx 1.560000 20 31.199999 HS65_LS_NAND2AX7 CORE65xx 3.120000 1 3.120000 HS65_LS_NAND2X7 CORE65xxx 2.080000 2 4.160000 HS65_LS_NAND3X5 CORE65xxx 2.600000 3 7.800000 HS65_LS_NAND4ABX3 CORE65x 3.640000 2 7.280000 HS65_LS_NOR2X6 CORE65xxxx 2.080000 5 10.400000 HS65_LS_NOR3AX4 CORE65xxx 3.640000 1 3.640000 HS65_LS_NOR3X4 CORE65xxxx 2.600000 5 13.000000 HS65_LS_NOR4ABX2 CORE65xx 3.640000 6 21.840001 HS65_LS_OAI13X5 CORE65xxx 3.640000 1 3.640000 HS65_LS_OAI21X3 CORE65xxx 2.600000 2 5.200000 HS65_LS_OAI212X5 CORE65xxx 4.160000 2 8.320000 HS65_LS_OAI222X2 CORE65xxx 5.200000 1 5.200000 resiver_DW01_inc_0 78.519997 1 78.519997 h ----------------------------------------------------------------------------- Total 23 references 749.319976
  • 40.
  • 41.
  • 42.