NIOS II 自定義IP核編寫基本框架


關於自定義IP
1、接口
    a、全局信號 時鍾(Clk),復位(reset_n)
    
    b、avalon mm slave  
        地址(as_address)
        片選(as_chipselect /as_chipselect_n)
        寫請求(as_write / as_write_n)
        寫數據(as_writedata(按照字節對齊,8/16/32位位寬)
        讀請求(as_read / as_read_n)
        讀數據(as_readdata)(按照字節對齊,8/16/32位位寬)
        
        等待信號(as_waitrequest / as_waitrequest_n)
        讀數據有效信號(as_data_valid)
    
        中斷請求(irq / irq_n)
    
    c、導出信號,導出到NIOS 系統頂層,分配到IO,或者連接到Qsys系統以外的邏輯

2、內部寄存器和線網的定義
    數據寄存器(讀/寫)
    狀態寄存器(IP運行狀態、數據狀態……)
    控制寄存器
    中斷屏蔽寄存器
    用戶自定義寄存器

3、Avalon總線對寄存器的讀寫

    //寫入數據
    always@(posedge clk or negedge reset_n)
    if(!reset_n)
        channel <= 3'd0;
    else if(as_chipselect && as_write && (as_address == 1))
        channel <= as_writedata[2:0];

    //寫指定地址實現相應功能,不考慮寫入值
    always@(posedge clk or negedge reset_n)
    if(!reset_n)
        control <= 1'd0;
    else if(as_chipselect && as_write && (as_address == 3))
        control <= 1'd1;
    else
        control <= 1'd0;
        
    //讀寄存器邏輯        
    always@(posedge clk or negedge reset_n)
    if(!reset_n)
        as_readdata <= 16'd0;
    else if(as_chipselect && as_read)begin
        case(as_address)
            0:as_readdata <= {4'd0, data};
            1:as_readdata <= {13'd0, channel};
            2:as_readdata <= {8'd0, freq_sclk};
            4:as_readdata <= {15'd0, irqmask};
            5:as_readdata <= {14'd0, status};
            default:as_readdata <= 16'd0;
        endcase    
    end

4、用戶邏輯對寄存器的賦值    
    always@(posedge clk or negedge reset_n)
    if(!reset_n)
        status[0] <= 1'd0;
    else if(Conv_Done)
        status[0] <= 1'b1;
    else if(as_chipselect && as_read && (as_address == 0))
        status[0] <= 1'b0;
    
    always@(posedge clk or negedge reset_n)
    if(!reset_n)
        status[1] <= 1'd0;
    else if(ADC_State)
        status[1] <= 1'b1;
    else 
        status[1] <= 1'b0;
    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM