Ongelma UART siirtymästä 4 tavua

I

IceZero

Guest
Minun täytyy tehdä jotain väärin, koska tämä ei toimi kuin odotin. Yritän tehdä on siirtää 4 vastaanotettujen tavujen UART peräkkäin osaksi 32-bittinen rekisteri. Olen mukana minun koodi alla. Kun luin takaisin 32-bittinen rekisteri, että UART, kaikki 4-tavua 32-bittinen rekisteri sisältää viimeksi vastaanotetun tavun UART. Näyttää siltä, ​​että kun olen lisäämällä uart_rx_data_out on uart_rx_opcode viimeisessä vaiheessa, se lisää tämän arvon kaikki bitit paitsi bitit 0-7 niin odotan. Olen luultavasti tekemässä jotain todella tyhmää. [KOODI] if (cnt_rx_next == 0) alkaa / / Load olevat tavu OP-Code Rekisteröidy uart_rx_opcode = 32'h00000000 + uart_rx_data_out; / / inkrementti Counter cnt_rx_next = cnt_rx_reg + 1; loppu if (cnt_rx_next == 1) alkaa / / Lataa olevat tavu OP-Code Rekisteröidy uart_rx_opcode = (uart_rx_opcode
 
Oletettu koodi on sisällä combinational aina lohkon (huono lähettämisen katkelmia), se näyttää käytät rekisteröimätöntä muuttujia Joissakin paikoissa, joissa sinun tulee käyttää rekisteröitynyt niistä, esimerkiksi valtio vertaa.
 
Laskelmassa koodi on sisällä combinational aina lohkon (huono lähettämisen katkelmia), se näyttää käytät rekisteröimätöntä muuttujia Joissakin paikoissa, joissa sinun tulee käyttää rekisteröitynyt niistä, esimerkiksi valtion vertaa.
Kyllä tämä on ensi tilassa logiikkalohkon (aina @ *). Mielestäni saatat olla oikeassa. Nyt kun ajattelen sitä, uart_rx_data_out on tyyppiä lanka ei reg.
 
Lisää siihen pisteeseen, olet todennäköisesti "cnt_rx" siellä jossain samoin. Ja oletettavasti jotain, joka tekee tämän:
Code:
 aina @ (posedge CLK) cnt_rx
 

Welcome to EDABoard.com

Sponsor

Back
Top