freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設(shè)計(jì)-基于fpga串口通信系統(tǒng)設(shè)計(jì)(參考版)

2024-12-05 19:11本頁面
  

【正文】 西南科技大學(xué)城市學(xué)院本科生畢業(yè)論文 35 參考文獻(xiàn) [1] K. Benkrid, A. Benkrid and S. Belkacemi .Efficient FPGA hardware development: A multilanguage approach .Journal of Systems Architectur e, 2021(04):184209 [2] Altera, Novas Team for FPGA Visibility Enhancemtent .Electronic News (North America).2021,(11):12 [3] Samir Palnitkar. Verilog HDL, A Guide to Digital Design and Synthesis[M]. Sunsoft Press A Prentice Hall . [4] Sternheim E,R Singh,Y Trivedi. Digital Design and Systhesis with Verilog HDL[M].Automata Publishing Company,CA,1933. [5] 王 羅杰 ,康華光 .兩種硬件描述語言 VHDL/Verilog 的發(fā)展及其應(yīng)用 [J].電氣電子教學(xué)學(xué)報(bào) , 2021,24(04):15 [6] 蔣艷紅 基于 FPGA 的 UART 設(shè)計(jì) 與應(yīng)用 [J].工程應(yīng)用技術(shù)與實(shí)現(xiàn) ( 21): 225229. [7] 韓德紅 ,基于 FPGA 的串口控制器設(shè)計(jì)與實(shí)現(xiàn) [J].空軍雷達(dá)學(xué)院學(xué)報(bào), 2021, 6( 02): 113116。 最后感謝中國共產(chǎn)黨給予我學(xué)習(xí)的機(jī)會(huì),更要感謝西南科技大學(xué)城市學(xué)院給予我一個(gè)學(xué)習(xí)的平臺(tái),讓我好好的完成了我的四年大學(xué)生活,讓我有一個(gè)美好的經(jīng)歷和回憶。也感謝他在開題時(shí)的指導(dǎo),以及給予我對(duì)這次設(shè)計(jì)思路的提點(diǎn)。 其次感謝我們的任課老師彭章君對(duì)我這個(gè)設(shè)計(jì)上涉及到的程序問題的指導(dǎo)。 西南科技大學(xué)城市學(xué)院本科生畢業(yè)論文 34 致 謝 在這段將近 6 個(gè)月的時(shí)間里,我一直圍繞著我的畢業(yè)設(shè)計(jì)奮斗,有時(shí)也挺痛苦的,現(xiàn)在我終于完成了我的畢業(yè)設(shè)計(jì),在做個(gè)設(shè)計(jì)以及寫論文期間,出現(xiàn)了很多問題,但是指導(dǎo)老師是一個(gè)有耐心又稱職的老師,他 也不厭其煩得給我解決我的問題,如:幫助我對(duì)這個(gè)設(shè)計(jì)的理論基礎(chǔ),整個(gè)系統(tǒng)的構(gòu)造的詳細(xì)了解;幫助我查閱資料和資料提供;還有論文各方面的寫作問題的糾正等。該系統(tǒng)設(shè)計(jì)的 UART 通過驗(yàn)證,經(jīng)綜合、編譯、嵌入 FPGA,成功實(shí)現(xiàn)系統(tǒng)通信。 數(shù)據(jù)采集系統(tǒng)經(jīng)常采用 UART 異步串行通信接口作為系統(tǒng)的短距離串行通信。并詳細(xì)討論了采用 VerilogHDL 對(duì)異步通信接口 UART 接收、發(fā)生模塊的設(shè)計(jì)流程。實(shí)現(xiàn)了 UART 設(shè)置的系統(tǒng)時(shí)鐘輸入,復(fù)位輸入 ,數(shù)據(jù)接收,數(shù)據(jù)發(fā)送,波特率發(fā)生器 。還可以通過設(shè)置波特率發(fā)生器的寄存器設(shè)置工作的波特率 ,以 適應(yīng)各種不同的場合。經(jīng)過下載驗(yàn)證,其 結(jié)果完全符合 UART 協(xié)議的要求和預(yù)期的結(jié)果 。用串口調(diào)試助手,如下: 圖 36 驗(yàn)證圖 在上方接收區(qū)的串口選擇 COM1,波特率選擇 9600,但 發(fā)送數(shù)據(jù)的波特率可選9600bps,19200bps,38400bps,57600bps,115200bps 等,是可調(diào)的。 end endmodule 驗(yàn)證 把實(shí)驗(yàn)板上電,下載完成后在 PC 上打開串口調(diào)試助手,實(shí)現(xiàn)的功能如圖所示,這就是 FPGA 里實(shí)現(xiàn)從 PC 接收數(shù)據(jù),然后把接收到的數(shù)據(jù)發(fā)回去。 end else begin clk_div=clk_div+1。 end else if (clk_div==baud_rate_div) begin 西南科技大學(xué)城市學(xué)院本科生畢業(yè)論文 31 clk_div=0。 always (posedge sys_clk or negedge sys_rst_1) if (~ sys_rst_1) begin clk_div=0。 //存儲(chǔ)單元定義 reg [15:0]clk_div。 output baud_clk。 module baud (sys_clk, sys_rst_1, baud_clk, baud_rate_div) input sys_clk。實(shí)現(xiàn)波特率時(shí)鐘的基本思路就是設(shè)計(jì)一個(gè) 計(jì)數(shù)器 ,該計(jì)數(shù)器工作在速度很高的系統(tǒng)時(shí)鐘下,通過總線寫入不同的數(shù)值到波特率發(fā)生器保持寄存器中,然后用計(jì)數(shù)器的方式生成所需要的各種波特率就能得到所需的波特率時(shí)鐘, 波特率變換模塊的功能是利用外部時(shí)鐘信號(hào) sys_clk 產(chǎn)生 uart_clk 信號(hào)。一般采用高速時(shí)鐘對(duì)串行數(shù)據(jù)采樣是非常有效的方法。波特率發(fā)生器實(shí)際上是一個(gè)分頻器,主要是產(chǎn)生和 RS232通信所采用的波特率同步的時(shí)鐘。 endmodule 波特率模塊 波特率是串行通信的重要指標(biāo),表示數(shù)據(jù)傳輸?shù)乃俣龋?即 每秒鐘傳送的二進(jìn)制數(shù)據(jù)的位數(shù), 也是 單位時(shí)間內(nèi)傳送的信息量。 end endcase end //寄存狀態(tài)機(jī)的輸出已消除危險(xiǎn)路徑 always (posedge sys_clk or negedge sys_rst_1) 西南科技大學(xué)城市學(xué)院本科生畢業(yè)論文 30 if(~ sys_rst_1) xmit_doneH=0。 xmitDataSelH=2’bxx。 rst_bitCountH=x。 countEnaH=x。 //允許位元計(jì)數(shù)器 end end default:begin next_state=3’bxxx。 end else begin next_state=x_STOP。 if(bitCell_trH==4’hF) begin next_state= x_IDLE。 shiftEnaH=HI。 end end x_SHIFT: begin //x_SHIFT 狀態(tài),移位輸出下一位 xmitDataSelH=x_ShifReg。 //發(fā)送新數(shù)據(jù) end //等待未結(jié)束 end else begin next_state=x_WAIT。 else begin next_state=x_SHIFT。 //允許計(jì)數(shù) end end x_WAIT: begin //x_WAIT 狀態(tài),在發(fā)送管腳上傳送數(shù)據(jù)等待一個(gè)位 元時(shí)間 xmitDataSelH=x_ShiftReg。 else begin next_state=x_START。 end end 西南科技大學(xué)城市學(xué)院本科生畢業(yè)論文 28 x_START: begin //x_START 狀態(tài),發(fā)送起始位 S xmitDataSelH=x_STARTbit。 rst_bitCountH=HI。 load_shiftRegH=HI。 xmit_doneInH=LO。 ena_bitCountH=LO。 shiftEnaH=LO。 load_shiftReg=LO。 //狀態(tài)變量傳遞 always (posedge sys_clk or negedge sys_rst_1) if(~ sys_rst_1) state=x_IDLE; else state=next_state。 西南科技大學(xué)城市學(xué)院本科生畢業(yè)論文 27 else if (rst_bitCountH)bitCountH=0。 end else xmit_ShiftRegH=xmit_ShiftRegH。 else if (shiftEnaH) begin xmit_ShiftRegH[6:0]=xmit_ShiftRegH[7:1]。 //移位寄存器,低位先被移出 always (posedge sys_clk or negedge sys_rst_1) if(~ sys_rst_1) xmit_ShiftRegH=0。 else if (countEnaH) bitcell_trH=bitcell_trH +1。 default:uart_xmitH=x。 x_STOPbit: uart_xmitH=HI。 reg xmit_doneH。 西南科技大學(xué)城市學(xué)院本科生畢業(yè)論文 26 reg uart_xmitH。 reg ena_bitCountH。 reg [3:0] bitCountH。 reg countEnaH。 reg shiftEnaH。 //狀態(tài)信號(hào) //存儲(chǔ)單元定義 reg [2:0]next_state,state。 //高電平有效,開始發(fā)送 input [7:0] xmit_dataH。 //異步復(fù)位 output uart_xmitH。 發(fā)送模塊程序: module uart_xmit(sys_rst_1,sys_clk,uart_xmitH,ximtH,xmit_dataH,xmit_doneH) input sys_clk。 x_SHIFT 狀態(tài),移位寄存器進(jìn)行一次移位操作,然后跳轉(zhuǎn)到 x_WAIT 狀態(tài)。 在 x_WAIT 狀態(tài), uart_xmitH 多路復(fù) 用器被設(shè)置為指向移位寄存器,同時(shí)等待一個(gè)波特脈沖。當(dāng)信號(hào) xmitH 為有效(保持高電平至少一個(gè) uart_clk 脈沖寬度)時(shí),數(shù)據(jù)裝載入串行化器,狀態(tài)機(jī)跳轉(zhuǎn)到 x_START。 圖 35 發(fā)送模塊狀態(tài)流程圖 西南科技大學(xué)城市學(xué)院本科生畢業(yè)論文 25 當(dāng)系統(tǒng)被復(fù)位( reset)時(shí),狀態(tài)機(jī)的默認(rèn)狀態(tài)為 x_IDLE。圖 顯示了狀態(tài)機(jī)的狀態(tài)跳轉(zhuǎn)流程。狀態(tài)信號(hào) xmit_doneH 是一個(gè)寄存器信號(hào)。 西南科技大學(xué)城市學(xué)院本科生畢業(yè)論文 24 圖 34 發(fā)送模塊功能圖 起始位 S( 0)、用戶數(shù)據(jù)(來自移位寄存器)和停止位 PB( 1)經(jīng)過一個(gè)多路復(fù)用器被送到 UART 的外部接口信號(hào) uart_xmitH 上。 Load_shiftH 信號(hào)有效(高電平)將使并行數(shù)據(jù)裝載到移位寄存器中。串行化器是一個(gè) 8 位并行輸入串行輸出的移位寄存器。位元計(jì)數(shù)器和已發(fā)送位計(jì)數(shù)器的功能與實(shí)現(xiàn)和接收模塊中的相同。 圖 顯示了發(fā)送模塊功能框圖。 else rec_readyH=rec_readyInH。 rec_readyH=X。 countH=X。 西南科技大學(xué)城市學(xué)院本科生畢業(yè)論文 23 tr_resetH=X。 rec_readyInH =HI。 //接收到一個(gè)新的比特 next_state=r_WAIT。 //允許計(jì)數(shù)器的計(jì)數(shù)操作 end end r_SAMPLE: begin //SAMPLE 狀態(tài),對(duì)接收數(shù)據(jù)管腳的狀態(tài)進(jìn)行采樣 shiftH = HI。 end else begin next_state=r_WAIT。 //允許計(jì)數(shù)器的計(jì)數(shù)操作 end end r_WAIT: begin //WAIT 狀態(tài),在對(duì)數(shù)據(jù)管腳進(jìn)行采樣前等待一個(gè)位元的時(shí)間 if( bitcell_trH==4’hE) begin if(recd_bitCntrH==WORD_LEN) next_state=r_STOP。 end else begin next_state =r_CENTER。//接收模塊準(zhǔn)備好,等待接收數(shù)據(jù) end end rCENTER: begin //定位位元中心位置,一個(gè)位元包含 16 個(gè)系統(tǒng)時(shí)鐘周期 if( bitcell_trH==4’h4) begin //如果等待 1/2 個(gè)位元后輸入仍為低電平,則表示接收到一個(gè)有效的起始位 S if(~ rec_datH) next_state=r_WAIT。 rstCountH=HI。 case(state) r_START: begin //START 狀態(tài),等待起始位 S if(~ rec_datH) next_state=r_CENTER。 rstCountH =LO。 shiftH =LO。 //接收狀態(tài)機(jī) always(state or rec_datH or bitcell_trH or recd_bitCntrH) begin next_state=state。 //狀態(tài)變量傳遞 always(posedge sys_clk or negedge sys_rst_1) if(~ sys_rst_1)state=r_START。 else if (countH) recd_bitCntrH= recd_bitCntrH+1。 else if (shiftH)begin par_dataH[6:0]=par_dataH[7:1] par_dataH [7]=rec_datH。 else bitcell_trH=bitcell_trH+1。 end //位元計(jì)數(shù)器
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1