0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一个简单的Wishbone从设备的RTL代码

SwM2_ChinaAET 来源:未知 作者:李倩 2018-07-31 09:11 次阅读

一个8比特从设备

前文曾经指出,Wishbone总线规范是"轻量级(Lightweight)"规范,它实现起来非常简单紧凑,接口需要的互联逻辑非常少。这里给出一个Wishbone从设备的一个例子,如图21所示。该从设备由一个与门和8个D触发器构成。在写周期,当STB_I和WE_I同时有效,数据DAT_I[7:0]在时钟CLK_I的上升沿被写到触发器中。

图21 一个简单的Wishbone从设备

该从设备的RTL代码如下:

moduleslave8bit( inputCLK_I,//这里使用了Verilog2001语法 inputRST_I, input[7:0]DAT_I, inputSTB_I,inputWE_I, outputreg[7:0]DAT_O,outputACK_O); always@(posedgeCLK_IorposedgeRST_I) begin if(RST_I) begin DAT_O<=8'h00;                            end                    else if(STB_I&WE_I)                            begin                                   DAT_O<=DAT_I;                            end            end                assign ACK_O=STB_I; endmodule

该从设备的Wishbone文档如表5。

表5从设备的Wishbone文档

一个32比特RTL级随机数生成器从设备

下面我们举一个实用一点的例子,一个随机数生成器。随机数生成理论和随机数生成器随机数生成理论和随机数生成器模块的RTL代码见附录2。该模块端口定义如下:

module rng(clk,reset,loadseed_i,seed_i,number_o);

number_o为随机数输出,当loadseed_I有效时,种子seed_I被送入number_o成为随机数的第一个值。

我们的目的是将其包装成WISHBONE兼容的从模块,其Verilog RTL代码如下:

moduleRng_wbc( inputCLK_I, inputRST_I, input[31:0]DAT_I, inputSTB_I,inputWE_I, input[3:0]SEL_I, output[31:0]DAT_O,outputACK_O); assignACK_O=STB_I; wireloadseed=WE_I&STB_I&(|SEL_I); wire[31:0]seed; assignseed[7:0]=SEL_I[0]?DAT_I[7:0]:8'h00; assignseed[15:8]=SEL_I[1]?DAT_I[15:8]:8'h00; assignseed[23:16]=SEL_I[2]?DAT_I[23:16]:8'h00; assignseed[31:24]=SEL_I[3]?DAT_I[31:24]:8'h00; wire[31:0]rand_number; assignDAT_O[7:0]=SEL_I[0]?rand_number[7:0]:8'h00; assignDAT_O[15:8]=SEL_I[1]?rand_number[15:8]:8'h00; assignDAT_O[23:16]=SEL_I[2]?rand_number[23:16]:8'h00; assignDAT_O[31:24]=SEL_I[3]?rand_number[31:24]:8'h00; //随机数生成器的莉化 rngunit_rng(.clk(CLK_I),.reset(RST_I), .loadseed_i(loadseed),.seed_i(seed), .number_o(rand_number)); endmodule

该从设备的Wishbone文档如表6。

表6从设备的Wishbone文档

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 触发器
    +关注

    关注

    14

    文章

    1685

    浏览量

    60412
  • Wishbone
    +关注

    关注

    0

    文章

    16

    浏览量

    10389

原文标题:【博文连载】Wishbone总线从设备接口示例

文章出处:【微信号:ChinaAET,微信公众号:电子技术应用ChinaAET】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何在不改变RTL代码的情况下,优化FPGA HLS设计

    用软件从 C 转化来的 RTL 代码其实并不好理解。今天我们就来谈谈,如何在不改变 RTL 代码的情况下,提升设计性能。 本项目所需应用与工具:赛灵思HLS、Plunify Cloud
    的头像 发表于 12-20 11:46 1485次阅读
    如何在不改变<b class='flag-5'>RTL</b><b class='flag-5'>代码</b>的情况下,优化FPGA HLS设计

    从可综合的RTL代码的角度聊聊interface

    SystemVerilog引入了interface,这里我们从可综合的RTL代码的角度聊聊interface。
    的头像 发表于 10-12 09:06 889次阅读
    从可综合的<b class='flag-5'>RTL</b><b class='flag-5'>代码</b>的角度聊聊interface

    RTL代码和仿真代码的区别

    RTL代码和仿真代码的区别,哪些verilog语句是可综合的??哪些不能??
    发表于 07-21 13:08

    wishbone总线

    想请教各位前辈,wishbone在工作中很常用吗?我最近在学关于这个的代码,感觉很难懂,而时间又感觉不大够用,需要重点攻击, 所以想知道是否值得投入大量的时间去研究它。望各位前辈不吝赐教
    发表于 03-02 23:37

    基于WISHBONE总线的FLASH闪存接口设计

    总线的另一个优点。由于IP核种类多样,其间并没有种统的间接方式。为满足不同系统的需要,WISHBONE总线提供了四种不同的IP核互连方式:点到点(point-to-point),用
    发表于 12-05 10:35

    AXI互连RTL将1设备连接到2设备怎么实现?

    嗨,我正在使用AXI互连RTL将1设备连接到2设备。以下是IP的规范地址宽度为maste
    发表于 05-20 09:27

    分享简单的RTOS代码

    如何去编写简单的RTOS代码呢?
    发表于 11-29 06:13

    基于Wishbone片上总线的IP核的互联

    以 FPGA 技术为基础,以Verilog HDL 为载体,设计了遵守Wishbone 片上总线规范的IP 核接口,实现了片上系统的IP 核互联。
    发表于 01-13 15:09 13次下载

    基于Wishbone总线的UART IP核设计

    本文介绍的基于Wishbone总线的UART IP核的设计方法,通过验证表明了各项功能达到预期要求,为IP核接口的标准化设计提供了依据。此外,该IP核代码全部采用模块化的Verilog-HDL语言编写,
    发表于 06-10 11:47 3512次阅读
    基于<b class='flag-5'>Wishbone</b>总线的UART IP核设计

    基于WISHBONE总线的FLASH闪存接口设计

    本文简要介绍了AMD 公司Am29LV160D 芯片的特点,并对WISHBONE总线作了简单的介绍,详细说明了FLASH memory 与WISHBONE 总线的硬件接口设计及部分Verilog HDL 程序源
    发表于 06-23 16:32 18次下载
    基于<b class='flag-5'>WISHBONE</b>总线的FLASH闪存接口设计

    基于WISHBONE总线的通用接口控制器

    通用IO接口是Soc系统中非常重要的一种外围端口.本文完成了一种基于WISHBONE总线的GPIO_W B拉制器的逻拜设计和物理实现.文中较其体地介绍了GPIO_W B核的体系结构以及WISHBONE接Q和DMA传偷方式
    发表于 09-21 16:57 32次下载
    基于<b class='flag-5'>WISHBONE</b>总线的通用接口控制器

    Wishbone总线实现UART IP核设计

    该设计采用了自顶向下的模块化划分和有限状态机相结合的方法,由于其应用了标准的Wishbone总线接口,从而使微机系统与串行设备之间的通信更加灵活方便。验证结果表明,这种新的架构
    发表于 10-19 15:01 27次下载
    <b class='flag-5'>Wishbone</b>总线实现UART IP核设计

    设计复用的RTL指导原则

    设计可复用的基本要求是RTL 代码可移植。通常的软件工程指导原则在RTL 编码时也适用。类似软件开发,基本的编码指导原则要求RTL 代码
    发表于 12-24 00:46 32次下载

    基于AMBA与WISHBONE的SoC总线桥KBar控制器的设计

    基于AMBA与WISHBONE的SoC总线桥KBar控制器的设计_陈俊锐
    发表于 03-19 11:31 0次下载

    用Elaborated Design优化RTL代码

    在Vivado FlowNavigator中有一个Elaborated Design,如下图所示,属于RTL Analysis这一步对应的设计。可能很多工程师都没有使用到,而实际上对于代码优化,它是很有帮助的。
    的头像 发表于 10-21 10:56 4541次阅读
    用Elaborated Design优化<b class='flag-5'>RTL</b>的<b class='flag-5'>代码</b>