国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

uart串口環(huán)回(加FIFO)

這篇具有很好參考價(jià)值的文章主要介紹了uart串口環(huán)回(加FIFO)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一.uart簡(jiǎn)介

  • UART(universal asynchronous receiver-transmitter)是一種采用異步串行通信方式的通用異步收發(fā)傳輸器。
  • 定義如上,那么出現(xiàn)問(wèn)題了,什么叫異步串行通信?請(qǐng)關(guān)注下文原理。

二.原理

1.同步通信&&異步通信

1.1同步通信

  • 發(fā)送方發(fā)送出數(shù)據(jù)后,等接收方響應(yīng)后才發(fā)送下一個(gè)數(shù)據(jù)

1.2異步通信

  • 發(fā)送方發(fā)出數(shù)據(jù)后,不等接收方發(fā)回相應(yīng),接著發(fā)送下一個(gè)數(shù)據(jù)

2.并行通信&&串行通信

2.1并行通信

  • 并行通信是指數(shù)據(jù)各個(gè)位用多條數(shù)據(jù)線同時(shí)進(jìn)行傳輸
    串口fifo,FPGA學(xué)習(xí),fpga

2.2串行通信

  • 串行通信是將數(shù)據(jù)分成一位一位的形式在一條線上逐個(gè)傳輸
    串口fifo,FPGA學(xué)習(xí),fpga

3.全雙工&&半雙工

3.1全雙工

  • 雙方都可以發(fā)送接收數(shù)據(jù),并可以同時(shí)進(jìn)行
    串口fifo,FPGA學(xué)習(xí),fpga

3.2半雙工

  • 雙方都可以發(fā)送接收數(shù)據(jù),但是同一時(shí)刻只能一方發(fā)送,一方接收
    串口fifo,FPGA學(xué)習(xí),fpga

4.協(xié)議層

4.1數(shù)據(jù)格式

串口fifo,FPGA學(xué)習(xí),fpga

  • 解析上圖可以看出:空閑位處于高電平,起始位為0(拉低);數(shù)據(jù)位可以是6-8bit,注意是低位先發(fā);暫時(shí)不考慮校驗(yàn)位,停止位為1(拉高)。

4.2傳輸速率

  • 串口通信的速率用波特率表示,它表示每秒傳輸二進(jìn)制數(shù)據(jù)的位數(shù),單位是bit/s(位/秒),簡(jiǎn)稱bps。常用的波特率有9600、19200、38400、57600、115200等。本文中設(shè)計(jì)用的115200的波特率==>傳輸1bit需要計(jì)數(shù)50_000_000/115200 = 434次

二.初步設(shè)計(jì)

1.模塊圖

串口fifo,FPGA學(xué)習(xí),fpga

2.tx設(shè)計(jì)

串口fifo,FPGA學(xué)習(xí),fpga

  • tx將8bit的數(shù)據(jù)轉(zhuǎn)換為1bit數(shù)據(jù)輸出

3.rx設(shè)計(jì)

串口fifo,FPGA學(xué)習(xí),fpga

  • rx將1bit的數(shù)據(jù)轉(zhuǎn)換為8bit數(shù)據(jù)輸出
  • 這里由于加入stop狀態(tài)后面會(huì)導(dǎo)致?tīng)顟B(tài)跳崩了,于是我不要stop狀態(tài)了

4.加入FIFO

  • FIFO配置上,數(shù)據(jù)寬度選8bit,數(shù)據(jù)深度選32bit,其他配置可參考前文https://blog.csdn.net/weixin_67803687/article/details/132248964?spm=1001.2014.3001.5501中的單時(shí)鐘前顯模式

三.代碼

1.uart_tx

/**************************************功能介紹***********************************
Date	: 2023年8月16日17:07:11
Author	: Alegg xy.
Version	: 2.0
Description: FPGA向上位機(jī)發(fā)送數(shù)據(jù)【8bit變1bit(波形)】
*********************************************************************************/
    
//---------<模塊及端口聲名>------------------------------------------------------
module uart_tx( 
    input				clk		,
    input				rst_n	,
    input       [7:0]   tx_data ,
    input               tx_data_vld,
    output              ready   ,
    output  reg         tx              
);								 
//---------<參數(shù)定義>--------------------------------------------------------- 
    parameter   MAX_1bit = 9'd434;//1bit要計(jì)434次
    //狀態(tài)機(jī)參數(shù)定義
    localparam  IDLE   = 'b0001,//空閑狀態(tài)
                START  = 'b0010,//起始位
                DATA   = 'b0100,//數(shù)據(jù)位
                STOP   = 'b1000;//停止位
//---------<內(nèi)部信號(hào)定義>-----------------------------------------------------    
    reg 	[3:0]	cstate     ;//現(xiàn)態(tài)
    reg	    [3:0]	nstate     ;//次態(tài)
    
    wire    IDLE_START;
    wire    START_DATA;
    wire    DATA_CHECK;
    wire    CHECK_STOP;
    wire    STOP_IDLE;

    reg			[8:0]	cnt_baud	   	;//波特計(jì)數(shù)器,波特率115200
    wire				add_cnt_baud	;
    wire				end_cnt_baud	;

    reg			[2:0]	cnt_bit	   	;//bit計(jì)數(shù)器,起始位1bit,數(shù)據(jù)位8bit,結(jié)束位1bit
    wire				add_cnt_bit	;
    wire				end_cnt_bit	;
    
    reg         [3:0]   bit_max;//bit最大值,復(fù)用需要考察每個(gè)狀態(tài)的bit值
    reg         [7:0]   tx_data_r;
    
    //計(jì)434次
    always @(posedge clk or negedge rst_n)begin 
       if(!rst_n)begin
            cnt_baud <= 'd0;
        end 
        else if(add_cnt_baud)begin 
            if(end_cnt_baud)begin 
                cnt_baud <= 'd0;
            end
            else begin 
                cnt_baud <= cnt_baud + 1'd1;
            end 
        end
    end 
    
    assign add_cnt_baud = cstate != IDLE;
    assign end_cnt_baud = add_cnt_baud && cnt_baud == MAX_1bit - 1'd1;
    
    //bit計(jì)數(shù)器
    always @(posedge clk or negedge rst_n)begin 
       if(!rst_n)begin
            cnt_bit <= 'd0;
        end 
        else if(add_cnt_bit)begin 
            if(end_cnt_bit)begin 
                cnt_bit <= 'd0;
            end
            else begin 
                cnt_bit <= cnt_bit + 1'd1;
            end 
        end
    end 
    
    assign add_cnt_bit = end_cnt_baud;
    assign end_cnt_bit = add_cnt_bit && cnt_bit == bit_max -1'd1;
    
    //計(jì)數(shù)器復(fù)用
    always @(*)begin 
        case (cstate)
            IDLE :bit_max = 'd0;
            START:bit_max = 'd1;//起始位1bit
            DATA :bit_max = 'd8;//數(shù)據(jù)位8bit
            STOP :bit_max = 'd1;//結(jié)束位1bit
            default: bit_max = 'd0;
        endcase
    end

    assign IDLE_START = (cstate == IDLE) && tx_data_vld;//考察到開(kāi)始傳輸信號(hào)
    assign START_DATA = (cstate == START) && end_cnt_bit;//計(jì)1bit數(shù)據(jù)
    assign DATA_STOP = (cstate == DATA) && end_cnt_bit;
    assign STOP_IDLE = (cstate == STOP) && end_cnt_bit;//計(jì)1bit數(shù)據(jù)

    //第一段:時(shí)序邏輯描述狀態(tài)轉(zhuǎn)移
    always @(posedge clk or negedge rst_n)begin 
        if(!rst_n)begin
            cstate <= IDLE;
        end 
        else begin 
            cstate <= nstate;
        end 
    end
    
    //第二段:組合邏輯描述狀態(tài)轉(zhuǎn)移規(guī)律和狀態(tài)轉(zhuǎn)移條件
    always @(*) begin
        case(cstate)
            IDLE  :begin
                if (IDLE_START) begin
                    nstate = START;
                end
                else begin
                    nstate = cstate;
                end
            end
            START :begin
                if (START_DATA) begin
                    nstate = DATA;
                end
                else begin
                    nstate = cstate;
                end
            end
            DATA  :begin
                if (DATA_STOP) begin
                    nstate = STOP;
                end
                else begin
                    nstate = cstate;
                end
            end
            STOP  :begin
                if (STOP_IDLE) begin
                    nstate = IDLE;
                end
                else begin
                    nstate = cstate;
                end
            end
            default : nstate = cstate;
        endcase
    end

    //寄存一拍
    always @(posedge clk or negedge rst_n) begin
        if (!rst_n) begin
            tx_data_r <= 'd0;
        end
        else if (tx_data_vld) begin
            tx_data_r <= tx_data;
        end
        else begin
            tx_data_r <= tx_data_r;
        end
    end
    

    //第三段:描述輸出,時(shí)序邏輯或組合邏輯皆可
    always @(*)begin 
        case (cstate)
            IDLE : tx = 1'b1;
            START: tx = 1'b0;//起始位為0
            DATA : tx = tx_data_r[cnt_bit];
            STOP : tx = 1'b1;//結(jié)束位為1
            default: tx = 1'b1;
        endcase
    end            
                
    assign ready = cstate == IDLE;//當(dāng)狀態(tài)為IDLE時(shí),表示tx端可以接收數(shù)據(jù)
    
    
    
endmodule

2.uart_rx

/**************************************功能介紹***********************************
Date	: 2023年8月16日18:25:03 
Author	: Alegg xy.
Version	: 1.0
Description: FPGA收上位機(jī)發(fā)來(lái)的數(shù)據(jù)【1bit(波形)變8bit】
*********************************************************************************/

//---------<模塊及端口聲名>------------------------------------------------------
module uart_rx( 
    input				clk		,
    input				rst_n	,
    input               rx      ,
    output              rx_data_vld,
    output  reg [7:0]   rx_data            
);								 
//---------<參數(shù)定義>--------------------------------------------------------- 
    parameter   MAX_1bit = 9'd434;//1bit要計(jì)434次
    //狀態(tài)機(jī)參數(shù)定義
    localparam  IDLE   = 'b001,//空閑狀態(tài)
                START  = 'b010,//起始位
                DATA   = 'b100;//數(shù)據(jù)位

//---------<內(nèi)部信號(hào)定義>-----------------------------------------------------    
    reg 	[2:0]	cstate     ;//現(xiàn)態(tài)
    reg	    [2:0]	nstate     ;//次態(tài)
    
    wire    IDLE_START;
    wire    START_DATA;
    wire    DATA_IDLE;

    reg			[8:0]	cnt_baud	   	;//波特計(jì)數(shù)器,波特率115200
    wire				add_cnt_baud	;
    wire				end_cnt_baud	;

    reg			[2:0]	cnt_bit	   	;//bit計(jì)數(shù)器,起始位1bit,數(shù)據(jù)位8bit,結(jié)束位1bit
    wire				add_cnt_bit	;
    wire				end_cnt_bit	;
    
    reg         [3:0]   bit_max;//bit最大值,復(fù)用需要考察每個(gè)狀態(tài)的bit值

    //計(jì)434次
    always @(posedge clk or negedge rst_n)begin 
       if(!rst_n)begin
            cnt_baud <= 'd0;
        end 
        else if(add_cnt_baud)begin 
            if(end_cnt_baud)begin 
                cnt_baud <= 'd0;
            end
            else begin 
                cnt_baud <= cnt_baud + 1'd1;
            end 
        end
    end 
    
    assign add_cnt_baud = cstate != IDLE;
    assign end_cnt_baud = add_cnt_baud && cnt_baud == MAX_1bit - 1'd1;
    
    //bit計(jì)數(shù)器
    always @(posedge clk or negedge rst_n)begin 
       if(!rst_n)begin
            cnt_bit <= 'd0;
        end 
        else if(add_cnt_bit)begin 
            if(end_cnt_bit)begin 
                cnt_bit <= 'd0;
            end
            else begin 
                cnt_bit <= cnt_bit + 1'd1;
            end 
        end
    end 
    
    assign add_cnt_bit = end_cnt_baud;
    assign end_cnt_bit = add_cnt_bit && cnt_bit == bit_max -1'd1;
    
    //計(jì)數(shù)器復(fù)用
    always @(*)begin 
        case (cstate)
            IDLE :bit_max = 'd0;
            START:bit_max = 'd1;//起始位1bit
            DATA :bit_max = 'd8;//數(shù)據(jù)位8bit
            default: bit_max = 'd0;
        endcase
    end

    assign IDLE_START = (cstate == IDLE) && rx == 0;//識(shí)別到起始位0
    assign START_DATA = (cstate == START) && end_cnt_bit;//計(jì)1bit數(shù)據(jù)
    assign DATA_IDLE = (cstate == DATA) && end_cnt_bit;//計(jì)8bit數(shù)據(jù)

    //第一段:時(shí)序邏輯描述狀態(tài)轉(zhuǎn)移
    always @(posedge clk or negedge rst_n)begin 
        if(!rst_n)begin
            cstate <= IDLE;
        end 
        else begin 
            cstate <= nstate;
        end 
    end
    
    //第二段:組合邏輯描述狀態(tài)轉(zhuǎn)移規(guī)律和狀態(tài)轉(zhuǎn)移條件
    always @(*) begin
        case(cstate)
            IDLE  :begin
                if (IDLE_START) begin
                    nstate = START;
                end
                else begin
                    nstate = cstate;
                end
            end
            START :begin
                if (START_DATA) begin
                    nstate = DATA;
                end
                else begin
                    nstate = cstate;
                end
            end
            DATA  :begin
                if (DATA_IDLE) begin
                    nstate = IDLE;
                end
                else begin
                    nstate = cstate;
                end
            end
            default : nstate = IDLE;
        endcase
    end

    //第三段:描述輸出,時(shí)序邏輯或組合邏輯皆可
    always @(posedge clk or negedge rst_n) begin
        if (!rst_n) begin
            rx_data <= 0;
        end
        else if (cstate == DATA && cnt_baud == MAX_1bit >> 1) begin//電平中間值采樣,邊沿采樣容易出錯(cuò)
            rx_data[cnt_bit] <= rx;
        end
        else begin
            rx_data <= rx_data;
        end
    end

    assign rx_data_vld = DATA_IDLE;//開(kāi)始傳輸數(shù)據(jù)信號(hào)為計(jì)滿數(shù)據(jù)位
    
    
endmodule

3.ctrl(FIFO)

/**************************************功能介紹***********************************
Date	: 2023年8月16日18:43:33
Author	: Alegg xy.
Version	: 1.0
Description: 調(diào)用FIFO
*********************************************************************************/
    
//---------<模塊及端口聲名>------------------------------------------------------
module ctrl( 
    input				clk		,
    input				rst_n	,
    input       [7:0]   rx_data ,
    input               rx_data_vld,
    input               ready   ,
    output              tx_data_vld,
    output      [7:0]   tx_data
);								 
//---------<參數(shù)定義>--------------------------------------------------------- 
    wire    fifo_rdempty;//FIFO讀空信號(hào)
    wire    fifo_wrfull;//FIFO寫(xiě)滿信號(hào)
//---------<內(nèi)部信號(hào)定義>-----------------------------------------------------
    fifo	fifo_inst (
	    .aclr ( ~rst_n ),
	    .data ( rx_data ),
	    .rdclk ( clk ),
	    .rdreq ( ready && ~fifo_rdempty ),
	    .wrclk ( clk ),
	    .wrreq ( rx_data_vld && ~fifo_wrfull ),
	    .q ( tx_data ),
	    .rdempty ( fifo_rdempty ),
	    .wrfull ( fifo_wrfulll )
	);
    
    assign tx_data_vld = ready && ~fifo_rdempty;
    
    
endmodule

4.top

/**************************************功能介紹***********************************
Date	: 2023年8月16日18:51:42 
Author	: Alegg xy.
Version	: 1.0
Description: 頂層模塊
*********************************************************************************/
    
//---------<模塊及端口聲名>------------------------------------------------------
module top( 
    input				clk		,
    input				rst_n	,
    input				rx		,
    output              tx
);								 
//---------<參數(shù)定義>--------------------------------------------------------- 
    wire    [7:0]   tx_data;
    wire            tx_data_vld;

    wire    [7:0]   rx_data;
    wire            rx_data_vld;

    wire            ready;
//---------<內(nèi)部信號(hào)定義>-----------------------------------------------------
    uart_tx u_uart_tx( 
        .clk		(clk),
        .rst_n	    (rst_n),
        .tx_data    (tx_data),
        .tx_data_vld(tx_data_vld),
        .ready      (ready),
        .tx         (tx)        
    );
    
    uart_rx u_uart_rx( 
        .clk		(clk),
        .rst_n	    (rst_n),
        .rx         (rx),
        .rx_data_vld(rx_data_vld),
        .rx_data    (rx_data)        
    );

    ctrl u_ctrl( 
        .clk		(clk),
        .rst_n	    (rst_n),
        .rx_data    (rx_data),
        .rx_data_vld(rx_data_vld),
        .ready      (ready),
        .tx_data_vld(tx_data_vld),
        .tx_data    (tx_data)
    );
    
    
endmodule

四.效果

串口fifo,FPGA學(xué)習(xí),fpga文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-820228.html

到了這里,關(guān)于uart串口環(huán)回(加FIFO)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • FPGA學(xué)習(xí)筆記——FIFO讀寫(xiě)

    FPGA學(xué)習(xí)筆記——FIFO讀寫(xiě)

    【實(shí)驗(yàn)任務(wù)】向FIFO中以50MHz的頻率按順序?qū)懭?~254,再?gòu)腇IFO中以5Hz的頻率按順序讀出0~254,輸出到LED中點(diǎn)亮。 FIFO全稱為“First-In-First-Out”,是FPGA內(nèi)部的存儲(chǔ)數(shù)據(jù)的緩沖器,讀寫(xiě)數(shù)據(jù)具有先入先出的特點(diǎn),與數(shù)據(jù)結(jié)構(gòu)中的“隊(duì)列”有異曲同工之妙。 本博客例化紫光同創(chuàng)官方提

    2024年02月15日
    瀏覽(19)
  • FPGA學(xué)習(xí)筆記(3):FIFO

    FPGA學(xué)習(xí)筆記(3):FIFO

    FIFO是First Input First Output的英文簡(jiǎn)寫(xiě) 代表先進(jìn)的數(shù)據(jù)先出 ,后進(jìn)的數(shù)據(jù)后出。 FIFO存儲(chǔ)器是系統(tǒng)的緩沖環(huán)節(jié),如果沒(méi)有FIFO存儲(chǔ)器,整個(gè)系統(tǒng)就不可能正常工作。 FIFO的功能可以概括為 (1)對(duì)連續(xù)的數(shù)據(jù)流進(jìn)行緩存,防止在進(jìn)機(jī)和存儲(chǔ)操作時(shí)丟失數(shù)據(jù); (2)數(shù)據(jù)集中起來(lái)進(jìn)行

    2024年01月19日
    瀏覽(24)
  • FPGA 學(xué)習(xí)分享-- 04 FIFO核的使用(2)

    FPGA 學(xué)習(xí)分享-- 04 FIFO核的使用(2)

    寫(xiě)在前面: 博主耗費(fèi)了四天?。?!完成了FIFO核的第二部分。 在這個(gè)部分,博主遇到了很多問(wèn)題,對(duì)著代碼不停修改,詢問(wèn)學(xué)長(zhǎng)和老師,好在終于沒(méi)有報(bào)錯(cuò),可以向大家交作業(yè)了!當(dāng)然,我會(huì)在本文詳細(xì)的幫助大家學(xué)習(xí)FIFO核的代碼編寫(xiě),帶著大家剖析每個(gè)部分,盡可能地通俗

    2024年02月03日
    瀏覽(22)
  • FPGA原理與結(jié)構(gòu)——FIFO IP核原理學(xué)習(xí)

    FPGA原理與結(jié)構(gòu)——FIFO IP核原理學(xué)習(xí)

    系列文章目錄:FPGA原理與結(jié)構(gòu)(0)——目錄與傳送門 ????????FIFO是英文First-In-First-Out的縮寫(xiě),是一種先入先出的數(shù)據(jù)緩沖器,與一般的存儲(chǔ)器的區(qū)別在于沒(méi)有地址線, 使用起來(lái)簡(jiǎn)單,缺點(diǎn)是只能順序讀寫(xiě)數(shù)據(jù),其數(shù)據(jù)地址由內(nèi)部讀寫(xiě)指針自動(dòng)加1完成,不能像普通存儲(chǔ)器

    2024年02月11日
    瀏覽(25)
  • FPGA原理與結(jié)構(gòu)(12)——FIFO IP核原理學(xué)習(xí)

    FPGA原理與結(jié)構(gòu)(12)——FIFO IP核原理學(xué)習(xí)

    系列文章目錄:FPGA原理與結(jié)構(gòu)(0)——目錄與傳送門 ????????FIFO是英文First-In-First-Out的縮寫(xiě),是一種先入先出的數(shù)據(jù)緩沖器,與一般的存儲(chǔ)器的區(qū)別在于沒(méi)有地址線, 使用起來(lái)簡(jiǎn)單,缺點(diǎn)是只能順序讀寫(xiě)數(shù)據(jù),其數(shù)據(jù)地址由內(nèi)部讀寫(xiě)指針自動(dòng)加1完成,不能像普通存儲(chǔ)器

    2024年02月08日
    瀏覽(31)
  • FPGA之FIFO詳解,初識(shí)FIFO

    FPGA之FIFO詳解,初識(shí)FIFO

    ? ? ? ?在篇博客里引入FIFO IP核的概念,F(xiàn)IFO是FPGA中最常用的IP核,經(jīng)常用在接口模塊、串并轉(zhuǎn)換、協(xié)議處理、數(shù)據(jù)緩存等很多場(chǎng)合,所以活學(xué)活用這個(gè)IP核對(duì)于后期項(xiàng)目開(kāi)發(fā)很重要,并且靈活掌握FIFO,也是一名合格的FPGA工程師的一項(xiàng)基本功。 ? ? ? ?FIFO顧名思義就是First

    2024年01月20日
    瀏覽(25)
  • FPGA FIFO基本介紹(FIFO Geneerator(13.2))

    FPGA FIFO基本介紹(FIFO Geneerator(13.2))

    軟件:vivado 2020.2? 參考文獻(xiàn): 文檔xilinx官網(wǎng)pg057-fifo-generator文檔下載鏈接官網(wǎng)https://docs.xilinx.com/v/u/en-US/pg057-fifo-generatorhttps://docs.xilinx.com/v/u/en-US/pg057-fifo-generator https://docs.xilinx.com/v/u/en-US/pg057-fifo-generator 原官網(wǎng)免費(fèi)文檔已被上傳為付費(fèi)文檔,筆者上傳的免費(fèi)文檔未過(guò)審核。

    2024年01月25日
    瀏覽(19)
  • FPGA中FIFO的應(yīng)用(二)——異步FIFO設(shè)計(jì)

    FPGA中FIFO的應(yīng)用(二)——異步FIFO設(shè)計(jì)

    ??作者簡(jiǎn)介: 小瑞同學(xué) ,一個(gè)努力精進(jìn)的 FPGA 和通信學(xué)習(xí)者。 ??個(gè)人主頁(yè):小瑞同學(xué)的博客主頁(yè) ??個(gè)人信條:越努力,越幸運(yùn)! ?日期:2023.12.3 ??來(lái)源:自學(xué)經(jīng)歷 ??文章內(nèi)容概述:介紹了 異步FIFO 的基本工作原理和深度計(jì)算,通過(guò)仿真觀察了其讀寫(xiě)過(guò)程。 連載系列

    2024年02月03日
    瀏覽(26)
  • FPGA——FIFO

    FPGA——FIFO

    FIFO FIFO(First In First Out,即先入先出),是一種數(shù)據(jù)緩沖器,用來(lái)實(shí)現(xiàn)數(shù)據(jù)先入先出的讀寫(xiě)方式。FIFO 根據(jù)讀寫(xiě)時(shí)鐘是否相同,分為 SCFIFO(single-clock FIFO)和 DCFIFO(duabl-clock FIFO),SCFIFO 的讀寫(xiě)為同一時(shí)鐘,應(yīng)用在同步時(shí)鐘系統(tǒng)中;DCFIFO 的讀寫(xiě)時(shí)鐘不同,應(yīng)用在異步時(shí)鐘系統(tǒng)

    2024年02月05日
    瀏覽(22)
  • 【LabVIEW FPGA入門】FIFO

    【LabVIEW FPGA入門】FIFO

    ????????要在 FPGA VI 的不同部分之間或 FPGA 目標(biāo)中的 VI 之間傳輸緩沖數(shù)據(jù),可使用 FIFO。FIFO 是一種先進(jìn)先出的緩沖器,第一個(gè)寫(xiě)入內(nèi)存的數(shù)據(jù)項(xiàng)就是第一個(gè)從內(nèi)存中讀取和刪除的數(shù)據(jù)項(xiàng),類似于隊(duì)列。 ????????FPGA FIFO 的功能類似于一個(gè)固定長(zhǎng)度的隊(duì)列,可將多個(gè)數(shù)據(jù)

    2024年03月27日
    瀏覽(20)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包