IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> intel fpga avalon自制ip -> 正文阅读

[网络协议]intel fpga avalon自制ip

  1. Avalon是一个总线协议,设计的必须符合接口协议。具体协议上传到资源中,自行下载。
    信号定义:
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
  2. 示例pwm设计ip并调用
//逻辑设计
module pwm_logic(
    input               clk         ,
    input               rst_n       ,
    input               en          ,
    input   [31:0]      counter_arr , //预重装载值
    input   [31:0]      counter_ccr , //比较值
    output   reg        pwm         
);

//
reg   [31:0]        cnt;
wire            add_cnt;
wire            end_cnt;

reg   [31:0]        counter_ccr_r; //用于暂存用的 

always @(posedge clk or negedge rst_n)begin 
    if(!rst_n)begin
        cnt <= 0;
    end 
    else if(add_cnt)begin 
        if(end_cnt)begin 
            cnt <= 0;
        end
        else begin 
            cnt <= cnt + 1;
        end 
    end
end 
assign add_cnt = en;  //打开使能 开始计数
assign end_cnt = add_cnt && cnt == counter_arr - 1; //计数到预重装载值得最大值就清零

//在一定周期内 修改传入的比较值的值
always @(posedge clk)begin 
    if(!cnt)begin
        counter_ccr_r <= counter_ccr;
    end 
    else begin 
        counter_ccr_r <= counter_ccr_r;
    end 
end

//pwm
always @(posedge clk or negedge rst_n)begin 
    if(!rst_n)begin
        pwm <= 1'b0;
    end 
    else if(cnt >= counter_ccr_r)begin 
        pwm <= 1'b1;
    end 
    else if(cnt < counter_ccr_r )begin 
        pwm <= 1'b0;
    end 
    else begin
        pwm <= pwm ;
    end
end 
endmodule

avalone接口协议

module pwm_avalon_port(
    input                   clk         ,
    input                   rst_n       ,

    //avalon mm slave    
    input                   as_chipselect, //片选信号
    input       [1:0]       as_address   , //地址信号
    input                   as_write     , //写使能信号
    input       [31:0]      as_writedata , //写数据
    output  reg [31:0]      as_readdata  , //读数据

    //pwm
    output  wire            pwm_dout    
);

reg                 control;  //控制寄存器 控制什么时候输出PMW波
reg   [31:0]    counter_arr;  //预重装载值寄存器 确定频率
reg   [31:0]    counter_ccr;  //比较寄存器   确定占空比

//counter_arr
always @(posedge clk or negedge rst_n)begin 
    if(!rst_n)begin
        counter_arr <= 32'b0;
    end 
    else if(as_chipselect && as_write && (as_address == 0))begin 
        counter_arr <= as_writedata;
    end 
    else begin 
        counter_arr <= counter_arr;
    end 
end

//counter_ccr
always @(posedge clk or negedge rst_n)begin 
    if(!rst_n)begin
        counter_ccr <= 32'b0;
    end 
    else if(as_chipselect && as_write && (as_address == 1))begin 
        counter_ccr <= as_writedata;
    end 
    else begin 
        counter_ccr <= counter_ccr;
    end 
end

//control
always @(posedge clk or negedge rst_n)begin 
    if(!rst_n)begin
        control <= 1'b0;
    end 
    else if(as_chipselect && as_write && (as_address == 2))begin 
        control <= as_writedata[0];
    end 
    else begin 
        control <= control;
    end 
end

//as_readdata
always @(posedge clk or negedge rst_n)begin 
    if(!rst_n)begin
        as_readdata <= 32'b0;
    end 
    else if(as_chipselect)begin 
        case (as_address)
            0:  as_readdata <= counter_arr  ;
            1:  as_readdata <= counter_ccr  ;
            2:  as_readdata <= control      ;
            default: as_readdata <= 32'b0;
        endcase
    end 
end

pwm_logic inst_pwm_logic(
    .clk                (clk        ),
    .rst_n              (rst_n      ),
    .en                 (control    ),
    .counter_arr        (counter_arr), //预重装载值
    .counter_ccr        (counter_ccr), //比较值
    .pwm                (pwm_dout   )
);

endmodule
  1. 具体操作流程
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-04-15 00:40:35  更:2022-04-15 00:43:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 3:53:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码