成人免费无码不卡毛片,亚洲AⅤ无码精品一区二区三区,国产尤物精品视频,久久精品日本亚洲,欧美成人一区三区无码乱码A片,中文字日产幕码一区二区色哟哟,亞洲日韓中文字幕網AV

  • 正文
    • 設(shè)計(jì)原理
    • 設(shè)計(jì)架構(gòu)
    • 設(shè)計(jì)代碼
    • 仿真測(cè)試
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

源碼系列:基于FPGA的 IIC 設(shè)計(jì)(附源工程)

01/06 10:20
2387
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

大俠好,歡迎來(lái)到FPGA技術(shù)江湖,江湖偌大,相見即是緣分。大俠可以關(guān)注FPGA技術(shù)江湖,在“闖蕩江湖”、"行俠仗義"欄里獲取其他感興趣的資源,或者一起煮酒言歡。

今天給大俠帶來(lái)基于FPGA的IIC設(shè)計(jì),附源碼,獲取源碼,請(qǐng)?jiān)凇癋PGA技術(shù)江湖”公眾號(hào)內(nèi)回復(fù)“IIC設(shè)計(jì)源碼”,可獲取源碼文件。話不多說(shuō),上貨。

設(shè)計(jì)原理

IIC(Inter-Integrated Circuit),其實(shí)是IIC Bus簡(jiǎn)稱,中文就是集成電路總線,它是一種串行通信總線,使用多主從架構(gòu),由飛利浦公司在1980年代為了讓主板、嵌入式系統(tǒng)或手機(jī)用以連接低速周邊設(shè)備而發(fā)展。I2C的正確讀法為“I平方C”("I-squared-C"),而“I二C”("I-two-C")則是另一種錯(cuò)誤但被廣泛使用的讀法。自2006年10月1日起,使用I2C協(xié)議已經(jīng)不需要支付專利費(fèi),但制造商仍然需要付費(fèi)以獲取I2C從屬設(shè)備地址。

IIC?簡(jiǎn)單來(lái)說(shuō),就是一種串行通信協(xié)議,IIC 的通信協(xié)議和通信接口在很多工程中有廣泛的應(yīng)用,如數(shù)據(jù)采集領(lǐng)域的串行 AD,圖像處理領(lǐng)域的攝像頭配置,工業(yè)控制領(lǐng)域的 X 射線管配置等等。除此之外,由于 IIC協(xié)議占用的 IO 資源特別少,連接方便,所以工程中也常選用 IIC 接口做為不同芯片間的通信協(xié)議。

IIC串行總線一般有兩根信號(hào)線,一根是雙向的數(shù)據(jù)線SDA,另一根是時(shí)鐘線SCL。所有接到IIC總線設(shè)備上的串行數(shù)據(jù)SDA都接到總線的SDA上,各設(shè)備的時(shí)鐘線SCL接到總線的SCL上。

IIC電路原理圖如下:

24LC64各引腳定義:

1、A0,A1,A2 為 24LC64 的片選信號(hào),由于 IIC 總線可以掛載多個(gè) IIC 接口器件,所以每個(gè)器件都應(yīng)該有自己的“身份標(biāo)識(shí)”,通過(guò)對(duì) A0,A1,A2 輸入不同的高低電平,就可以設(shè)置該 EEPROM 的片選信號(hào)。

2、WP 為讀寫使能信號(hào),當(dāng) WP 懸空或者接地,EEPROM 可讀可寫,當(dāng) WP 接電源,EEPROM 只能讀不能寫。

3、SCL為 IIC 接口的時(shí)鐘線。

4、SDA為 IIC 接口的數(shù)據(jù)線。

IIC 接口的讀寫時(shí)序:

IIC接口讀寫時(shí)序分為隨機(jī)讀寫(單字節(jié)讀寫)和頁(yè)面讀寫(多字節(jié)讀寫),先分析隨機(jī)讀寫(Byte Write/Read)時(shí)序。

Byte Write 時(shí)序如下圖:

時(shí)序分析:如果我們要向 EEPROM 寫入一個(gè)字節(jié),那么必須經(jīng)過(guò)以下步驟:

1. 發(fā)送啟動(dòng)信號(hào)

2. 發(fā)送控制字

3. 接收并檢測(cè) EEPROM 發(fā)來(lái)的應(yīng)答信號(hào) ACK

4. 發(fā)送高字節(jié)地址位

5. 接收并檢測(cè) EEPROM 發(fā)來(lái)的應(yīng)答信號(hào) ACK

6. 發(fā)送低字節(jié)地址位

7. 接收并檢測(cè) EEPROM 發(fā)來(lái)的應(yīng)答信號(hào) ACK

8. 發(fā)送 8bit 有效數(shù)據(jù)

9. 接收并檢測(cè) EEPROM 發(fā)來(lái)的應(yīng)答信號(hào) ACK

10.發(fā)送停止信號(hào)

Byte Read 時(shí)序如下:

時(shí)序分析:如果我們要從 EEPROM 讀出一個(gè)字節(jié),那么必須經(jīng)過(guò)以下步驟:

1. 發(fā)送啟動(dòng)信號(hào)

2. 發(fā)送控制字 1010_A2A1A0_0

3. 接收并檢測(cè) EEPROM 發(fā)來(lái)的應(yīng)答信號(hào) ACK

4. 發(fā)送高字節(jié)地址位

5. 接收并檢測(cè) EEPROM 發(fā)來(lái)的應(yīng)答信號(hào) ACK

6. 發(fā)送低字節(jié)地址位

7. 接收并檢測(cè) EEPROM 發(fā)來(lái)的應(yīng)答信號(hào) ACK

8. 發(fā)送啟動(dòng)信號(hào)

9. 發(fā)送控制字 1010_A2A1A0_1

10. 接收并檢測(cè) EEPROM 發(fā)來(lái)的應(yīng)答信號(hào) ACK

11. 讀取一個(gè)字節(jié)數(shù)據(jù)

12. 發(fā)送 NO ACK 信號(hào)

13. 發(fā)送停止信號(hào)

接下來(lái)則需要分析各步驟具體意義:

1.啟動(dòng)信號(hào)

在 SCL 保持高電平期間,如果 SDA 出現(xiàn)由高到低的跳變沿,代表啟動(dòng)信號(hào)。

2. 控制字

我們的控制字為 1010_0000,其中 1010 為 EEPROM 的型號(hào)標(biāo)識(shí),為一組固定的序列,緊接著 A2,A1,A0 就是我們的片選信號(hào),最后一位為讀寫控制位,低電平代表寫,高電平代表讀,我們這里首先需要對(duì) EEPROM 寫入地址位,所以我們最后一位為 0。

3. 高/低位地址

由于 24LC64 有 64Kbit 的存儲(chǔ)空間,所以我們需要 13 位的地址位寬才能尋址所有的存儲(chǔ)空間,由于 IIC 協(xié)議規(guī)定只能以字節(jié)形式寫入,所以必須將 13 位的地址擴(kuò)展為 16 位的地址,分為高八位和低八位,多出來(lái)的前三位填充任意數(shù)據(jù)即可,對(duì)我們的尋址地址沒有影響。

4. 停止信號(hào)

5. 應(yīng)答信號(hào) ACK

應(yīng)答信號(hào)是由數(shù)據(jù)接收方發(fā)出的,當(dāng) SCL 為高電平期間,如果監(jiān)測(cè)到 SDA為低電平,說(shuō)明有應(yīng)答信號(hào)。

6. 非應(yīng)答信號(hào) NO ACK

非應(yīng)答信號(hào)也是由數(shù)據(jù)接收方發(fā)出的,當(dāng) SCL 為高電平期間,如果 SDA 為高電平,說(shuō)明有非應(yīng)答信號(hào)。

說(shuō)明:由于 IIC 總線協(xié)議啟動(dòng)和停止信號(hào)都是在 SCL 高電平期間發(fā)生跳變,這就決定了我們其他數(shù)據(jù)的改變只能發(fā)生在 SCL 低電平期間,在 SCL 為高電平期間,數(shù)據(jù)必須保持穩(wěn)定。即在 SCL 低電平改變數(shù)據(jù),在 SCL 高電平采集數(shù)據(jù)。

相比于單字節(jié)讀寫,頁(yè)面讀寫只是增加了幾個(gè)狀態(tài),具體時(shí)序如下,這里和后面的設(shè)計(jì)代碼不做詳細(xì)論述。

Page Write 時(shí)序如下:

Page Read 時(shí)序如下:

設(shè)計(jì)架構(gòu)

本設(shè)計(jì)用兩個(gè)按鍵控制 EEPROM 讀寫,當(dāng)寫按鍵按下時(shí),向 EEPROM 某一固定地址寫入一個(gè)字節(jié)數(shù)據(jù),當(dāng)讀按鍵按下時(shí),將該地址數(shù)據(jù)讀出,并顯示到數(shù)碼管,LED 燈是一個(gè)標(biāo)志信號(hào),LED 亮說(shuō)明數(shù)據(jù)寫入完畢。設(shè)計(jì)架構(gòu)如下:

設(shè)計(jì)代碼

IIC頂層模塊代碼:

module IIC(        clk_sys,        rst_n,        eeprom_scl,        eeprom_sda,        key_wr,        key_rd,        oseg,        sel,        led        );
  //--------輸入端口--------      input clk_sys;  input rst_n;  input key_wr;  input key_rd;  //--------輸出端口--------  output eeprom_scl;  output [7:0]oseg;  output [2:0]sel;  output led;  //--------雙向總線--------  inout  eeprom_sda;  //--------內(nèi)部連線--------  wire [7:0]result;  //--------實(shí)例化eeprom控制模塊--------  iic_wr iic_wr   (            .clk_sys(clk_sys),            .rst_n(rst_n),            .eeprom_scl(eeprom_scl),            .eeprom_sda(eeprom_sda),            .key_wr(key_wr),            .key_rd(key_rd),            .result(result),            .led(led)           );  //--------實(shí)例化數(shù)碼管顯示驅(qū)動(dòng)模塊--------  seg7_lut seg7_lut  (              .oseg(oseg),              .idig(result),              .clk_sys(clk_sys),              .sel(sel)            );
endmodule

iic_wr模塊代碼:負(fù)責(zé)進(jìn)行IIC數(shù)據(jù)的讀寫

module iic_wr(          clk_sys, //系統(tǒng)時(shí)鐘          rst_n,   //系統(tǒng)復(fù)位          eeprom_scl,//eeprom 串行時(shí)鐘信號(hào)          eeprom_sda,//eeprom 串行數(shù)據(jù)信號(hào)          key_wr,  //外部寫控制按鍵          key_rd,  //外部讀控制按鍵          result,  //數(shù)據(jù)采集結(jié)果寄存器          led     //led指示燈         );
    input clk_sys;    input rst_n;    input key_wr;    input key_rd;
    output reg eeprom_scl;    inout eeprom_sda;    output reg led;    reg clk;    reg [7:0]cnt;   //分頻計(jì)數(shù)器    reg [7:0]state; //狀態(tài)寄存器    reg [3:0]counter;//數(shù)據(jù)移位計(jì)數(shù)器    reg link_sda;   //總線開關(guān)    reg wr;         //寫標(biāo)志寄存器    reg rd;         //讀標(biāo)志寄存器    reg sda_buf;     //總線數(shù)據(jù)緩存器    output  [7:0]result;//最終輸出結(jié)果寄存器    reg [7:0]result_1;//第一個(gè)數(shù)據(jù)寄存器    reg [7:0]result_2;//第二個(gè)數(shù)據(jù)寄存器    reg [7:0]data;   //待發(fā)送控制字、地址、數(shù)據(jù)寄存器    assign eeprom_sda=(link_sda)?sda_buf:1'hz;    assign result=result_1+result_2;    //-----------------system clk----------------    //系統(tǒng)時(shí)鐘分頻    always @(posedge clk_sys or negedge rst_n)      begin        if(!rst_n)          begin            clk<=0;            cnt<=0;          end        else          begin            if(cnt<250)              cnt<=cnt+1'b1;            else              begin                clk<=~clk;                cnt<=0;              end          end      end
    //-----------------eeprom scl-----------------    //產(chǎn)生eeprom scl信號(hào)    always @(negedge clk or negedge rst_n)      begin        if(!rst_n)          begin            eeprom_scl<=0;          end        else          eeprom_scl<=~eeprom_scl;      end
    //-----------------  eeprom contral-----------    always @(posedge clk or negedge rst_n)      begin        if(!rst_n)     //所有寄存器復(fù)位          begin            state<=0;            link_sda<=0;            sda_buf<=0;            counter<=0;            wr<=0;            led<=1;            rd<=0;            result_1<=0;            result_2<=0;            data<=0;          end        else          begin            case(state)    //--------------send start singial-------------              0:begin                if(!key_wr) //檢測(cè)外部寫控制按鍵是否按下                  wr<=1;                if(!key_rd) //檢測(cè)外部讀控制按鍵是否按下                  rd<=1;
                if(((rd==1)||(wr==1))&&(!eeprom_scl))                  begin                    link_sda<=1;                    sda_buf<=1;                    state<=1;                  end              end              1:begin                if(eeprom_scl)//高電平期間,使sda由高變低,啟動(dòng)串行傳輸                  begin                    sda_buf<=0;                    state<=2;                    data<=8'b10100000;//寫控制字準(zhǔn)備                  end              end    //--------------send countral word--------------              2:begin                if((counter<8)&&(!eeprom_scl))//在scl低電平期間,完成并串轉(zhuǎn)換,發(fā)出寫控制字                  begin                    counter<=counter+1'b1;                    data<={data[6:0],data[7]};                    sda_buf<=data[7];                  end                else if((counter==8)&&(!eeprom_scl))                  begin                    counter<=0;                    state<=3;                    link_sda<=0;//FPGA釋放總線控制權(quán)                  end              end    //--------------receive ack singial--------------              3:begin                if(eeprom_scl)//在scl高電平期間,檢測(cè)是否有應(yīng)答信號(hào)                  begin                    if(!eeprom_sda)                      begin                        state<=4;//有應(yīng)答則狀態(tài)繼續(xù)跳轉(zhuǎn)                        data<=8'b00000000;//高字節(jié)地址準(zhǔn)備                      end                  end              end    //--------------send high Byte address--------------              4:begin                link_sda<=1;//FPGA控制總線                if((counter<8)&&(!eeprom_scl))//在scl低電平期間,完成并串轉(zhuǎn)換,發(fā)出高字節(jié)地址                  begin                    counter<=counter+1'b1;                    data<={data[6:0],data[7]};                    sda_buf<=data[7];                  end                else if((counter==8)&&(!eeprom_scl))                  begin                    counter<=0;                    state<=5;                    link_sda<=0;//FPGA釋放總線控制權(quán)                  end              end    //--------------receive ack singial--------------              5:begin                if(eeprom_scl)//在scl高電平期間,檢測(cè)是否有應(yīng)答信號(hào)                  begin                    if(!eeprom_sda)                      begin                        state<=6;//有應(yīng)答則狀態(tài)繼續(xù)跳轉(zhuǎn)                        data<=8'b00000011;//低字節(jié)地址準(zhǔn)備                      end                  end              end    //--------------send low Byte address--------------              6:begin                link_sda<=1;//FPGA控制總線                if((counter<8)&&(!eeprom_scl))//在scl低電平期間,完成并串轉(zhuǎn)換,發(fā)出低字節(jié)地址                  begin                    counter<=counter+1'b1;                    data<={data[6:0],data[7]};                    sda_buf<=data[7];                  end                else if((counter==8)&&(!eeprom_scl))                  begin                    counter<=0;                    state<=7;                    sda_buf<=1;                    link_sda<=0;//FPGA釋放總線控制權(quán)                  end              end    //--------------receive ack singial--------------              7:begin                if(eeprom_scl)//在scl高電平期間,檢測(cè)是否有應(yīng)答信號(hào)                  begin                    if(!eeprom_sda)                      begin                        if(wr==1)//如果是寫的話,跳到狀態(tài)8,遵循頁(yè)面寫時(shí)序                          state<=8;                        if(rd==1)//如果是讀的話,跳到狀態(tài)11,遵循頁(yè)面讀時(shí)序                          begin                            state<=13;                            sda_buf<=1;//準(zhǔn)備再次發(fā)啟動(dòng)信號(hào)                          end                        data<=8'b00000001;//準(zhǔn)備想要寫入的第一個(gè)數(shù)據(jù)                      end                  end              end    //--------------send active data_1-------------              8:begin                link_sda<=1;//FPGA控制總線                if((counter<8)&&(!eeprom_scl))//在scl低電平期間,完成并串轉(zhuǎn)換,發(fā)出第一個(gè)有效數(shù)據(jù)                  begin                    counter<=counter+1'b1;                    data<={data[6:0],data[7]};                    sda_buf<=data[7];                  end                else if((counter==8)&&(!eeprom_scl))                    begin                      counter<=0;                      state<=9;                      link_sda<=0;//FPGA釋放總線控制權(quán)                    end              end    //--------------receive ack singial--------------                        9:begin                if(eeprom_scl)//在scl高電平期間,檢測(cè)是否有應(yīng)答信號(hào)                  begin                    if(!eeprom_sda)//有應(yīng)答則狀態(tài)繼續(xù)跳轉(zhuǎn)                      begin                        state<=10;                        data<=8'b00000010;//準(zhǔn)備想要寫入的第二個(gè)數(shù)據(jù)                      end                  end                end    //--------------send active data_2-------------                        10:begin                link_sda<=1;//FPGA控制總線                if((counter<8)&&(!eeprom_scl))//在scl低電平期間,完成并串轉(zhuǎn)換,發(fā)出有效數(shù)據(jù)                  begin                    counter<=counter+1'b1;                    data<={data[6:0],data[7]};                    sda_buf<=data[7];                  end                else if((counter==8)&&(!eeprom_scl))                    begin                      counter<=0;                      state<=11;                      link_sda<=0;//FPGA釋放總線控制權(quán)                    end              end    //--------------receive ack singial--------------                          11:begin                if(eeprom_scl)//在scl高電平期間,檢測(cè)是否有應(yīng)答信號(hào)                  begin                    if(!eeprom_sda)//有應(yīng)答則狀態(tài)繼續(xù)跳轉(zhuǎn)                      begin                        state<=12;                      end                  end                end    //--------------send stop singial-------------                12:begin                link_sda<=1;//FPGA控制總線                sda_buf<=0;//拉低sda,準(zhǔn)備發(fā)出停止信號(hào)                if(eeprom_scl)//在scl高電平期間,拉高sda,終止串行傳輸                  begin                    led<=0;//點(diǎn)亮led,說(shuō)明寫操作完畢                    sda_buf<=1;                    if(key_wr && key_rd)//在按鍵放開以后才跳轉(zhuǎn)回空閑狀態(tài),避免不斷循環(huán)寫入                      state<=0;//狀態(tài)跳回                    wr<=0;//清除寫控制標(biāo)志                  end              end    //------------send start  singial-----------              13:begin                link_sda<=1;//FPGA控制總線                if(eeprom_scl)//scl高電平期間拉低sda,發(fā)送啟動(dòng)信號(hào)                  begin                    sda_buf<=0;                    state<=14;                    data<=8'b10100001;//讀控制字準(zhǔn)備                  end              end    //------------send countral word------------              14:begin                if((counter<8)&&(!eeprom_scl))//在scl低電平期間,完成并串轉(zhuǎn)換,發(fā)出讀控制字                  begin                    counter<=counter+1'b1;                    data<={data[6:0],data[7]};                    sda_buf<=data[7];                  end                else if((counter==8)&&(!eeprom_scl))                  begin                    counter<=0;                    state<=15;                    link_sda<=0;//FPGA釋放總線控制權(quán)                  end              end    //--------------receive ack singial--------------              15:begin                if(eeprom_scl)//在scl高電平期間,檢測(cè)是否有應(yīng)答信號(hào)                  begin                    if(!eeprom_sda)//有應(yīng)答則狀態(tài)繼續(xù)跳轉(zhuǎn)                      state<=16;                  end                end    //--------------receive input active data--------------              16:begin                if((counter<8)&&(eeprom_scl))//在scl高電平期間,完成串并轉(zhuǎn)換,存儲(chǔ)第一個(gè)接收數(shù)據(jù)                  begin                    counter<=counter+1'b1;                    result_1[7-counter]<=eeprom_sda;                  end                else if(counter==8)                  begin                    counter<=0;                    state<=17;                    sda_buf<=0; //拉低sda,準(zhǔn)備發(fā)送應(yīng)答信號(hào)                    link_sda<=1;//接收完畢以后FPGA繼續(xù)控制總線                  end              end    //--------------send ACK singial--------------              17:begin                   if(eeprom_scl)//在scl高電平期間,發(fā)送應(yīng)答信號(hào)                    begin                      sda_buf<=0;                      state<=18;                    end              end    //------------receive input active data--------------                      18:begin                link_sda<=0;                if((counter<8)&&(eeprom_scl))//在scl低電平期間,完成串并轉(zhuǎn)換,存儲(chǔ)第二個(gè)接收數(shù)據(jù)                  begin                    counter<=counter+1'b1;                    result_2[7-counter]<=eeprom_sda;                  end                else if(counter==8)                  begin                    counter<=0;                    state<=19;                    sda_buf<=1; //準(zhǔn)備發(fā)送no ack信號(hào)                    link_sda<=1;//接收完畢以后FPGA繼續(xù)控制總線                  end              end    //--------------send NO ACK singial--------------              19:begin                if(eeprom_scl)//在scl高電平期間,發(fā)送非應(yīng)答信號(hào)                  begin                    sda_buf<=1;                    state<=20;                  end              end      //--------------send stop singial-------------              20:begin                if(!eeprom_scl)//在scl低電平期間,將sda總線拉低,準(zhǔn)備發(fā)送停止信號(hào)                  sda_buf<=0;                if(eeprom_scl)//在scl高電平期間,將sda總線拉高,發(fā)出停止信號(hào)                  begin                    sda_buf<=1;//拉高sda                    state<=0;//狀態(tài)回轉(zhuǎn)                    rd<=0;//清除讀標(biāo)志信號(hào)                  end              end            default:state<=0;            endcase          end      end
endmodule

seg7_lut模塊代碼負(fù)責(zé)數(shù)碼管顯示

module seg7_lut(                oseg,   //數(shù)碼管段選                idig,   //驅(qū)動(dòng)數(shù)據(jù)                clk_sys,//系統(tǒng)時(shí)鐘                sel,    //數(shù)碼管位選        rst_n   //系統(tǒng)復(fù)位               );  //--------輸入信號(hào)--------                input [7:0] idig;  input clk_sys;  input rst_n;  //--------輸出信號(hào)--------  output reg[7:0] oseg;  output reg[2:0] sel;  //--------中間變量--------  reg [3:0]cnt;  //-----------------系統(tǒng)時(shí)鐘分頻-----------------  always @(posedge clk_sys or negedge rst_n)    begin      if(!rst_n)        begin          sel<=3'd0;//數(shù)碼管段選定位        end    end
  //--------數(shù)碼管顯示譯碼--------  always@(*)       case(idig)        8'h0:oseg<=8'hC0;        8'h1:oseg<=8'hF9;        8'h2:oseg<=8'hA4;        8'h3:oseg<=8'hB0;        8'h4:oseg<=8'h99;        8'h5:oseg<=8'h92;        8'h6:oseg<=8'h82;        8'h7:oseg<=8'hF8;        8'h8:oseg<=8'h80;        8'h9:oseg<=8'h90;        8'hA:oseg<=8'h88;        8'hB:oseg<=8'h83;        8'hC:oseg<=8'hC6;        8'hD:oseg<=8'hA1;        8'hE:oseg<=8'h86;        8'hF:oseg<=8'h8E;       endcase 
endmodule

仿真測(cè)試

tb頂層測(cè)試模塊代碼:

`timescale 1ns/1ns
module tb;
  reg clk_sys;  reg rst_n;  reg key_wr;  reg key_rd;
  wire eeprom_scl;
  wire eeprom_sda;  wire [7:0]oseg;  wire [2:0]sel;  wire led;
  initial    begin      clk_sys=0;      key_rd=1;      rst_n=0;      #1000 rst_n=1;      #500 key_wr=0;      #3000 key_wr=1;      # 400000 key_rd=0;      #300 key_rd=1;    end
  always #10 clk_sys=~clk_sys;
  IIC IIC(      .clk_sys(clk_sys),      .rst_n(rst_n),      .eeprom_scl(eeprom_scl),      .eeprom_sda(eeprom_sda),      .key_wr(key_wr),      .key_rd(key_rd),      .oseg(oseg),      .sel(sel),      .led(led)      );
endmodule

仿真圖:隨機(jī)讀寫,仿真寫時(shí)序:

隨機(jī)讀寫,仿真讀時(shí)序:

在仿真時(shí),需要將檢測(cè)應(yīng)答的狀態(tài)跳過(guò),直接向下一狀態(tài)跳轉(zhuǎn),觀察讀寫時(shí)序,當(dāng)讀寫按鍵按下時(shí),都會(huì)產(chǎn)生對(duì)應(yīng)的動(dòng)作。

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計(jì)資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

任何技術(shù)的學(xué)習(xí)就好比一個(gè)江湖,對(duì)于每一位俠客都需要不斷的歷練,從初入江湖的小白到歸隱山林的隱世高人,需要不斷的自我感悟自己修煉,讓我們一起仗劍闖FPGA乃至更大的江湖。

敖汉旗| 沙田区| 祥云县| 略阳县| 镇赉县| 广丰县| 南靖县| 宁陕县| 垫江县| 鹿邑县| 潞城市| 安陆市| 桃园市| 东源县| 江达县| 盐津县| 衡阳县| 合川市| 盐城市| 武川县| 泸西县| 两当县| 会泽县| 鄂温| 大悟县| 泾源县| 泾阳县| 桐柏县| 馆陶县| 巴中市| 乳山市| 汝城县| 沛县| 香格里拉县| 禄丰县| 油尖旺区| 绩溪县| 凯里市| 海口市| 城步| 麟游县|