OpenCores
no use no use 1/1 no use no use
verilog UART 16550 BFM simulation problem
by valluri_sathish on Jan 2, 2009
valluri_sathish
Posts: 8
Joined: Jun 22, 2008
Last seen: Aug 11, 2009
Hi Everyone, I am testing the verilog UART 16550 core and I have written a simple bfm test code. While monitoring the UART TX signal no change in the signal is observed. Also while reading the LSR register at after reset state and after writing into the fifo no change only 0x00 is coming. We found that all the registers are updating at the reset state but not changing through below code. please go through this and reply as early as possible ur comments. regards sathish valluri please see the simulation wave forms and bfm code below http://docs.google.com/Doc?id=dfxv5nrb_190fprrmcgk http://docs.google.com/Doc?id=dfxv5nrb_192ft62n9c9 wb_init( bus_c); -- initalise wishbone bus wb_rst( 2, reset_int, bus_c ); -- reset system for 2 clocks clock_wait( 2, bus_c ); bka_test_array(0) := X"0000_0005"; -- LSR bkd_test_array(0) := X"0000_0030"; bkr_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); report to_hex(bkd_test_array(0)); bka_test_array(0) := X"0000_0003"; -- LCR bkd_test_array(0) := X"0000_0083"; -- 8 data bits, 1 start bit, set LCR(7) bkw_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); bka_test_array(0) := X"0000_0001"; -- DLM bkd_test_array(0) := X"0000_0000"; -- BAUD bkw_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); bka_test_array(0) := X"0000_0000"; -- DLL bkd_test_array(0) := X"0000_0005"; -- BAUD bkw_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); bka_test_array(0) := X"0000_0005"; -- LSR bkd_test_array(0) := X"0000_0000"; bkr_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); report to_hex(bkd_test_array(0)); bka_test_array(0) := X"0000_0003"; -- LCR bkd_test_array(0) := X"0000_0003"; -- 8 data bits, 1 start bit, clear LCR(7) bkw_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); bka_test_array(0) := X"0000_0000"; -- Transmiter fifo bkd_test_array(0) := X"0000_0037"; -- data bkw_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); --bka_test_array(0) := X"0000_0000"; -- Transmiter fifo --bkd_test_array(0) := X"0000_0005"; -- data --bkw_32( bka_test_array, bkd_test_array, 1, bus_c); --clock_wait( 2, bus_c ); bka_test_array(0) := X"0000_0000"; -- Transmiter fifo bkd_test_array(0) := X"0000_0003"; -- data bkw_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); bka_test_array(0) := X"0000_0000"; -- Transmiter fifo bkd_test_array(0) := X"0000_0005"; -- data bkw_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); bka_test_array(0) := X"0000_0000"; -- Transmiter fifo bkd_test_array(0) := X"0000_0033"; -- data bkw_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); bka_test_array(0) := X"0000_0000"; -- Transmiter fifo bkd_test_array(0) := X"0000_0055"; -- data bkw_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); bka_test_array(0) := X"0000_0000"; -- Transmiter fifo bkd_test_array(0) := X"0000_0033"; -- data bkw_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); bka_test_array(0) := X"0000_0000"; -- Transmiter fifo bkd_test_array(0) := X"0000_0055"; -- data bkw_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); bka_test_array(0) := X"0000_0000"; -- Transmiter fifo bkd_test_array(0) := X"0000_0033"; -- data bkw_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); bka_test_array(0) := X"0000_0000"; -- Transmiter fifo bkd_test_array(0) := X"0000_0055"; -- data bkw_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); bka_test_array(0) := X"0000_0000"; -- Transmiter fifo bkd_test_array(0) := X"0000_0033"; -- data bkw_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); bka_test_array(0) := X"0000_0000"; -- Transmiter fifo bkd_test_array(0) := X"0000_0055"; -- data bkw_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); bka_test_array(0) := X"0000_0000"; -- Transmiter fifo bkd_test_array(0) := X"0000_0033"; -- data bkw_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); bka_test_array(0) := X"0000_0000"; -- Transmiter fifo bkd_test_array(0) := X"0000_0055"; -- data bkw_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); bka_test_array(0) := X"0000_0000"; -- Transmiter fifo bkd_test_array(0) := X"0000_0033"; -- data bkw_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); bka_test_array(0) := X"0000_0000"; -- Transmiter fifo bkd_test_array(0) := X"0000_0055"; -- data bkw_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); bka_test_array(0) := X"0000_0000"; -- Transmiter fifo bkd_test_array(0) := X"0000_0033"; -- data bkw_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); bka_test_array(0) := X"0000_0000"; -- Transmiter fifo bkd_test_array(0) := X"0000_0055"; -- data bkw_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); clock_wait( 50000, bus_c ); bka_test_array(0) := X"0000_0005"; -- LSR bkd_test_array(0) := X"0000_0000"; bkr_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); report to_hex(bkd_test_array(0));
verilog UART 16550 BFM simulation problem
by valluri_sathish on Jan 8, 2009
valluri_sathish
Posts: 8
Joined: Jun 22, 2008
Last seen: Aug 11, 2009
Hi Everyone, Let me correct this issue. This problem caused due to mismatched instantiation of the ports in the VHDL format of BFM to the verilog UART ports. Regards sathish valluri ----- Original Message ----- From: valluri_sathish at rediffmail.comvalluri_sathish at r...> To: Date: Fri Jan 2 12:38:42 CET 2009 Subject: [oc] verilog UART 16550 BFM simulation problem
Hi Everyone, I am testing the verilog UART 16550 core and I have written a simple bfm test code. While monitoring the UART TX signal no change in the signal is observed. Also while reading the LSR register at after reset state and after writing into the fifo no change only 0x00 is coming. We found that all the registers are updating at the reset state but not changing through below code. please go through this and reply as early as possible ur comments. regards sathish valluri please see the simulation wave forms and bfm code below http://docs.google.com/Doc?id=dfxv5nrb_190fprrmcgk http://docs.google.com/Doc?id=dfxv5nrb_192ft62n9c9 wb_init( bus_c); -- initalise wishbone bus wb_rst( 2, reset_int, bus_c ); -- reset system for 2 clocks clock_wait( 2, bus_c ); bka_test_array(0) := X"0000_0005"; -- LSR bkd_test_array(0) := X"0000_0030"; bkr_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); report to_hex(bkd_test_array(0)); bka_test_array(0) := X"0000_0003"; -- LCR bkd_test_array(0) := X"0000_0083"; -- 8 data bits, 1 start bit, set LCR(7) bkw_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); bka_test_array(0) := X"0000_0001"; -- DLM bkd_test_array(0) := X"0000_0000"; -- BAUD bkw_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); bka_test_array(0) := X"0000_0000"; -- DLL bkd_test_array(0) := X"0000_0005"; -- BAUD bkw_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); bka_test_array(0) := X"0000_0005"; -- LSR bkd_test_array(0) := X"0000_0000"; bkr_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); report to_hex(bkd_test_array(0)); bka_test_array(0) := X"0000_0003"; -- LCR bkd_test_array(0) := X"0000_0003"; -- 8 data bits, 1 start bit, clear LCR(7) bkw_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); bka_test_array(0) := X"0000_0000"; -- Transmiter fifo bkd_test_array(0) := X"0000_0037"; -- data bkw_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); --bka_test_array(0) := X"0000_0000"; -- Transmiter fifo --bkd_test_array(0) := X"0000_0005"; -- data --bkw_32( bka_test_array, bkd_test_array, 1, bus_c); --clock_wait( 2, bus_c ); bka_test_array(0) := X"0000_0000"; -- Transmiter fifo bkd_test_array(0) := X"0000_0003"; -- data bkw_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); bka_test_array(0) := X"0000_0000"; -- Transmiter fifo bkd_test_array(0) := X"0000_0005"; -- data bkw_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); bka_test_array(0) := X"0000_0000"; -- Transmiter fifo bkd_test_array(0) := X"0000_0033"; -- data bkw_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); bka_test_array(0) := X"0000_0000"; -- Transmiter fifo bkd_test_array(0) := X"0000_0055"; -- data bkw_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); bka_test_array(0) := X"0000_0000"; -- Transmiter fifo bkd_test_array(0) := X"0000_0033"; -- data bkw_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); bka_test_array(0) := X"0000_0000"; -- Transmiter fifo bkd_test_array(0) := X"0000_0055"; -- data bkw_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); bka_test_array(0) := X"0000_0000"; -- Transmiter fifo bkd_test_array(0) := X"0000_0033"; -- data bkw_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); bka_test_array(0) := X"0000_0000"; -- Transmiter fifo bkd_test_array(0) := X"0000_0055"; -- data bkw_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); bka_test_array(0) := X"0000_0000"; -- Transmiter fifo bkd_test_array(0) := X"0000_0033"; -- data bkw_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); bka_test_array(0) := X"0000_0000"; -- Transmiter fifo bkd_test_array(0) := X"0000_0055"; -- data bkw_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); bka_test_array(0) := X"0000_0000"; -- Transmiter fifo bkd_test_array(0) := X"0000_0033"; -- data bkw_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); bka_test_array(0) := X"0000_0000"; -- Transmiter fifo bkd_test_array(0) := X"0000_0055"; -- data bkw_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); bka_test_array(0) := X"0000_0000"; -- Transmiter fifo bkd_test_array(0) := X"0000_0033"; -- data bkw_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); bka_test_array(0) := X"0000_0000"; -- Transmiter fifo bkd_test_array(0) := X"0000_0055"; -- data bkw_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); bka_test_array(0) := X"0000_0000"; -- Transmiter fifo bkd_test_array(0) := X"0000_0033"; -- data bkw_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); bka_test_array(0) := X"0000_0000"; -- Transmiter fifo bkd_test_array(0) := X"0000_0055"; -- data bkw_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); clock_wait( 50000, bus_c ); bka_test_array(0) := X"0000_0005"; -- LSR bkd_test_array(0) := X"0000_0000"; bkr_32( bka_test_array, bkd_test_array, 1, bus_c); clock_wait( 2, bus_c ); report to_hex(bkd_test_array(0));


no use no use 1/1 no use no use
© copyright 1999-2026 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.