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

正文內(nèi)容

信息與通信]帶有源代碼基于fpga的模擬i2c接口設(shè)計(jì)與實(shí)現(xiàn)(參考版)

2024-11-16 15:53本頁(yè)面
  

【正文】 //1:輸出模式, 0:輸入模式 assign outdata = outdata_r。 endcase end /************************************************************************************/ assign sda = sda_link ? sda_r:139。//同步采樣 else cstate = STOP2。b1。 end else cstate = STOP1。b1。 cstate = STOP1。 sda_r = 139。 end STOP1: begin if(`SCL_LOW) begin sda_link = 139。 cstate = STOP1。//當(dāng)完成接收數(shù)據(jù)后 , 接收方發(fā)送非應(yīng)答信號(hào) //ackflag = ackflag +139。 42 end HIGH: begin if(`SCL_NEG) begin sda_r = 139。 end //end ACK4: begin //寫(xiě)操作最后個(gè)應(yīng)答 if(`SCL_NEG) begin cstate = STOP1。 cstate = HIGH。 sda_link = 139。 sda_r = 139。 paget = 139。 ackflag = ackflag +139。d1。d0。 (paget == PAGEDATA_NUM 139。d8) amp。amp。 //主控制器應(yīng)答 cstate = ACKR。 sda_link = 139。 sda_r = 139。 //ackflag = ackflag +139。d1。d0。 (paget PAGEDATA_NUM139。d8)amp。amp。 default: 。 439。 439。 439。 439。 439。 439。 40 439。 case (num) 439。 if(`SCL_LOW) begin num = num+139。 end //end PAGER: begin //if(paget PAGEDATA_NUM)begin if(num=439。 cstate = ACK4。 sda_link = 139。 sda_r = 139。 paget = 139。 //paget = paget +139。b1)) begin 39 num = 439。amp。 (num==439。 end else if((`SCL_LOW) amp。b0。b1。d1。d0。(paget PAGEDATA_NUM139。d8)amp。amp。 default: 。 439。 439。 439。 439。 439。 439。 439。 case (num) 38 439。 //數(shù)據(jù)線 sda 作為 output num = num+139。 if(`SCL_LOW) begin sda_link = 139。 //sda 為輸出 //if(paget PAGEDATA_NUM)begin if(num=439。 end end PAGEW:begin sda_link = 139。//sda 置為高阻態(tài) cstate = ACK4。 sda_link = 139。 sda_r = 139。d8)) begin num = 439。amp。 default: 。 439。 439。 439。 439。 439。 439。 439。 case (num) 439。 //數(shù)據(jù)線 sda 作為 output num = num+139。 if(`SCL_LOW) begin sda_link = 139。 if(num=439。 end else if(!Byte_Write) 36 begin //寫(xiě)操作 sda_link = 139。 //1 個(gè)數(shù) cstate = HIGH。 ackflag = 339。b1。 //num 計(jì)數(shù)清零 //cstate = ACK4。d8)) begin num = 439。amp。 default: 。 439。 439。 439。 439。 35 439。 439。 439。 case (num) 439。 if(`SCL_HIG) begin num = num+139。 end DATA: begin if(!Byte_Read) begin //讀操作 if(num=439。b0。d1。 !Page_Read) 34 begin cstate = PAGER。 //主控制器應(yīng) 答 if(`SCL_NEG amp。 end else cstate = ACK3。 sda_link = 139。 //從機(jī)響應(yīng)信號(hào) ackflag = ackflag +139。amp。b0。 !Byte_Read) begin cstate = DATA。 end ACK3: begin if(`SCL_NEG amp。 endcase cstate = ADD3。d7: sda_r = db_r[0]。d6: sda_r = db_r[1]。d5: sda_r = db_r[2]。d4: sda_r = db_r[3]。d3: sda_r = db_r[4]。d2: sda_r = db_r[5]。d1: sda_r = db_r[6]。d0: sda_r = db_r[7]。b1。//sda 置為高阻態(tài) (input) cstate = ACK3。 sda_link = 139。 //num 計(jì)數(shù)清零 32 sda_r = 139。d8) begin num = 439。 end else cstate = START2。b0。 //拉高數(shù)據(jù)線 sda cstate = START2。//sda 作為 output sda_r = 139。//等待從機(jī)響應(yīng) end end START2: 31 begin//讀操作起始位 if(`SCL_LOW) begin sda_link = 139。 cstate = PAGEW。 //ackflag = ackflag + 139。//送器件地址(讀操作),特定地址讀需要執(zhí)行該步驟以下操作 cstate = START2。 //寫(xiě)操作 db_r = `WRITE_DATA0。 end end else cstate = ADD2。 default: 。 439。 439。 439。 439。 439。 439。 439。 case (num) 439。 //sda 作為 output num = num+139。 end else begin 29 sda_link = 139。b0。b1。d0。 //等待從機(jī)響應(yīng) end ADD2://寫(xiě)入需要讀或?qū)懙拇鎯?chǔ)地址 \字節(jié)地址 begin if(`SCL_LOW) begin if(num==439。 //從機(jī)響應(yīng)信號(hào) db_r = `BYTE_ADDR。 endcase end end else cstate = ADD1。d7: sda_r = db_r[0]。d6: sda_r = db_r[1]。d5: sda_r = db_r[2]。d4: sda_r = db_r[3]。d3: sda_r = db_r[4]。d2: sda_r = db_r[5]。d1: sda_r = db_r[6]。d0: sda_r = db_r[7]。b1。 end else begin cstate = ADD1。b0。b1。d0。 //等待 scl 高電平中間位置到來(lái) end ADD1://寫(xiě)入器件地址 begin if(`SCL_LOW) begin if(num==439。d0。b0。 //拉低數(shù)據(jù)線 sda,產(chǎn)生起始位信號(hào) cstate = ADD1。 //數(shù)據(jù)線 sda 為 output sda_r = 139。//沒(méi)有任何鍵被按下 end 26 START1://起始信號(hào) begin if(`SCL_HIG) begin //scl 為高電平期間 , 拉低數(shù)據(jù)線 sda,產(chǎn)生起始位信號(hào) sda_link= 139。//送器件地址(寫(xiě)操作) cstate = START1。d0。b0000_0000。b1。b1。b0000_0000。b0000_0000。d0。d0。d0。b0。b1。 endcase end end /************************************************************************************/ //FSM 狀態(tài)機(jī) always(posedge clk or negedge rst_n) begin if(!rst_n) begin cstate = IDLE。d3: pagedata_r = `WRITE_DATA4。d2: pagedata_r = `WRITE_DATA3。d1: pagedata_r = `WRITE_DATA2。d0: pagedata_r = `WRITE_DATA1。d0。 //連讀連寫(xiě)時(shí)的數(shù)據(jù)計(jì)數(shù)器 reg [7:0] pagedata_r。 //讀寫(xiě)的字節(jié)計(jì)數(shù) reg [2:0] ackflag。 //輸出數(shù)據(jù)寄存器 reg sda_link。//延時(shí)同步 /************************************************************************************/ reg[16:0] cstate。//停止位 parameter STOP2 = 1739。//高電平 parameter STOP1 = 1739。//應(yīng)答 parameter HIGH = 1739。//頁(yè)寫(xiě) parameter ACK4 = 1739。//頁(yè)讀 parameter PAGEW = 1739。//字節(jié)讀寫(xiě) parameter PAGER = 1739。//fpga 給應(yīng)答 parameter DATA = 1739。//應(yīng)答 parameter ACKR = 1739。//寫(xiě)入器件地址 23 parameter ACK3 = 1739。//讀操作開(kāi)始前的起始信號(hào) parameter ADD3 = 1739。//應(yīng)答 parameter START2 = 1739。//寫(xiě)入字節(jié)地址 parameter ACK2 = 1739。//應(yīng)答 parameter ADD2 = 1739。//寫(xiě)入器件地址 parameter ACK1 = 1739。//起始信號(hào) parameter ADD1 = 1739。//初始態(tài) parameter START1 = 1739。//頁(yè)寫(xiě)數(shù)據(jù)個(gè)數(shù) /************************************************************************************/ //IIC 讀、寫(xiě)時(shí)序 parameter IDLE = 1739。 //輸出數(shù)據(jù)貯存器 parameter PAGEDATA_NUM = 339。 //在 IIC 上傳送的數(shù)據(jù)寄存器 reg[7:0] read_data。d2) //t=2:scl 下降沿后面點(diǎn) `define SCL_LOW (t==339。d0) //t=0:scl 上升沿前面點(diǎn) `define SCL_HIG (t==339。d5。d0。 //t=3:scl 低電平中間 , 用于數(shù)據(jù)變化 939。d374: t = 339。d2。 //t=1:scl 高電平中間 , 用于數(shù)據(jù)采樣 939。d124: t = 339。d5。//scl 信號(hào)下降沿 assign scl = scl_r。d249) scl_r = 139。b1。 else if(t_delay==939。//時(shí)鐘計(jì)數(shù) /************************************************************************************/ always (posedge clk or negedge rst_n) if(!rst_n) 21 scl_r = 139。 //計(jì)數(shù)到 10us 為 scl 的周期,即 100KHz else
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1