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

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

3天内不再提示

BMD64与BMD128比较

NJ90_gh_bee81f8 来源:面包板社区 2020-01-29 09:36 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

结合排查之前pio_writeReadBack_test0测试出现的问题,需要参考前人写的相关博客,大部分都是基于BMD64,而我的示例是基于BMD128。

pio_writeReadBack_test0测试HOST发起一个MEM32写,然后再启动MEM32读回,所以先要探究MEM32写,分析BMD RX 引擎(用于接收、解析TLP)。下图是https://blog.csdn.net/ningjinghai11/article/details/80924209博文中给出的BMD64模式下的MEM32写时序仿真图,可以看到存储器写请求TLP有2个,所以相应的bmd_64_rx_state分别有MEM_WR32_QW1和MEM_WR32_WT两个状态对应。

而我在仿真BMD128模式时,由于数据位宽为128bit,所以存储器写只有一个128bit的TLP就足够,而bmd_rx_state只一个MEM_WR32_WT就结束并进入RST状态,具体时序图如下:


(注:BMD_MEM_RD32_FMT_TYPE 和BMD_MEM_WR32_FMT_TYPE 两种标头对应的TLP是以PIO的模式传输,所以只会传输一个DW数据,再加上3DW标头;所以在BMD64模式下,一共两帧数据,而在上一个状态已经传输了一帧,本状态传输最后一帧数据,所以需要判断trn_reof_n 帧结束信号,同样需要主、从设备都准备好,即trn_rsrc_rdy_n 和trn_rdst_rdy_n 同时有效才能传输。而在BMD128模式下,只需一帧数据就足够了。这可以从上面两个时序图中可以清晰看出来。)
下面比较下BMD64和BMD128的RX引擎中对几个状态机的定义。
先来看看BMD64:

//接收引擎关键状态机的8个状态 `define BMD_64_RX_RST 8'b00000001//接收引擎复位状态 `define BMD_64_RX_MEM_RD32_QW1 8'b00000010//存储器读状态 `define BMD_64_RX_MEM_RD32_WT 8'b00000100//等待存储器读结束 `define BMD_64_RX_MEM_WR32_QW1 8'b00001000//存储器写状态 `define BMD_64_RX_MEM_WR32_WT 8'b00010000//等待存储器写结束 `define BMD_64_RX_CPL_QW1 8'b00100000//不带数据的完成 `define BMD_64_RX_CPLD_QW1 8'b01000000//带数据完成 `define BMD_64_RX_CPLD_QWN 8'b10000000//带数据完成 //接收引擎4种标头 `define BMD_MEM_RD32_FMT_TYPE 7'b00_00000//存储器读请求:TLP头大小为3个双字,不带数据 `define BMD_MEM_WR32_FMT_TYPE 7'b10_00000//存储器写请求:TLP头大小为3个双字,带数据 `define BMD_CPL_FMT_TYPE 7'b00_01010//完成报文:TLP头大小为3个双字,不带数据;包括存储器、配置和I/O写完成 `define BMD_CPLD_FMT_TYPE 7'b10_01010//带数据完成报文:TLP头大小为3个双字;包括存储器读、配置读、I/O读和原子读操作完成先来看看BMD128:

//定义了8种关键状态机状态 `define BMD_128_RX_RST 8'b00000001 `define BMD_128_RX_MEM_RD32_STRAD 8'b00000010 `define BMD_128_RX_MEM_RD32_WT 8'b00000100 `define BMD_128_RX_MEM_WR32_STRAD 8'b00001000 `define BMD_128_RX_MEM_WR32_WT 8'b00010000 `define BMD_128_RX_CPL_STRAD 8'b00100000 `define BMD_128_RX_CPLD_STRAD 8'b01000000 `define BMD_128_RX_CPLD_QWN 8'b10000000 //定义了4种标头 `define BMD_MEM_RD32_FMT_TYPE 7'b00_00000 `define BMD_MEM_WR32_FMT_TYPE 7'b10_00000 `define BMD_CPL_FMT_TYPE 7'b00_01010 `define BMD_CPLD_FMT_TYPE 7'b10_01010

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

    关注

    1663

    文章

    22493

    浏览量

    638959
  • 存储器
    +关注

    关注

    39

    文章

    7753

    浏览量

    172159

原文标题:FPGA图文笔记:BMD64与BMD128比较

文章出处:【微信号:gh_bee81f890fc1,微信公众号:面包板社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    探秘MCF51JM128 ColdFire微控制器:功能、特性与电气参数详解

    Semiconductor的MCF51JM128 ColdFire微控制器,看看它有哪些独特之处。 文件下载: PCF51JM128EVLK.pdf 一、MCF51JM128家族配置 1.1 设备
    的头像 发表于 04-10 14:40 130次阅读

    深入解析MCF51JF128:功能特性与设计要点

    MCF51JF128VLH、MCF51JF64VLF等。它具有广泛的工作特性,电压范围为1.71 V至3.6 V,闪存写入电压范围同样是1.71 V至3
    的头像 发表于 04-10 14:40 130次阅读

    探索MCF51QM128:一款卓越的微控制器

    它有哪些独特的特性和优势。 文件下载: MCF51QM128VLH.pdf 一、MCF51QM128概述 MCF51QM128支持多种型号,如MCF51QM128VLH、MCF51QM
    的头像 发表于 04-09 16:10 188次阅读

    深入剖析Freescale MC9S08JE128系列MCU:高效节能的理想之选

    MC9S08JE128系列涵盖了MC9S08JE128和MC9S08JE64两款产品,提供64 - LQFP(10mm x 10mm)、80 - LQFP(12mm x 12mm)和
    的头像 发表于 04-09 14:15 146次阅读

    深入剖析ATxmega128A1U/ATxmega64A1U:特性、应用与设计要点

    深入剖析ATxmega128A1U/ATxmega64A1U:特性、应用与设计要点 在电子设计领域,选择合适的微控制器对项目的成功至关重要。Microchip的ATxmega128
    的头像 发表于 04-07 09:15 109次阅读

    Atmel ATxmega128B3/ATxmega64B3微控制器:高性能之选

    Atmel ATxmega128B3/ATxmega64B3微控制器:高性能之选 在当今电子技术飞速发展的时代,选择一款合适的微控制器对于工程师们来说至关重要。Atmel的ATxmega128
    的头像 发表于 04-06 16:05 1064次阅读

    AT90CAN32/64/128:高性能8位微控制器的深度剖析

    AT90CAN32/64/128:高性能8位微控制器的深度剖析 在嵌入式系统设计领域,选择一款合适的微控制器至关重要。AT90CAN32、AT90CAN64和AT90CAN128这三款
    的头像 发表于 04-06 09:40 304次阅读

    AT90CAN32/64/128:高性能8位微控制器的技术剖析

    AT90CAN32/64/128:高性能8位微控制器的技术剖析 在嵌入式控制应用领域,一款合适的微控制器往往能起到事半功倍的效果。今天,我们就来深入探讨一下Atmel公司推出的AT90CAN32
    的头像 发表于 04-06 09:40 251次阅读

    深入剖析Atmel AT90USB64/128微控制器:特性、应用与挑战

    深入剖析Atmel AT90USB64/128微控制器:特性、应用与挑战 在电子工程师的工具箱中,微控制器是实现各种智能设备和嵌入式系统的核心组件。Atmel AT90USB64/128
    的头像 发表于 03-26 11:45 267次阅读

    Atmel AVR ATUC64/128/256L3/4U微控制器:高性能与低功耗的完美结合

    Atmel AVR ATUC64/128/256L3/4U微控制器:高性能与低功耗的完美结合 在嵌入式系统设计领域,一款性能卓越且功耗低的微控制器是工程师们梦寐以求的。Atmel AVR
    的头像 发表于 03-12 15:15 204次阅读

    深入解析Microchip 25AA128/25LC128 128K SPI总线串行EEPROM

    深入解析Microchip 25AA128/25LC128 128K SPI总线串行EEPROM 一、引言 在电子设计领域,串行EEPROM是一种常用的非易失性存储器,广泛应用于各种需要数据存储
    的头像 发表于 02-09 16:50 595次阅读

    NVIDIA Omniverse USD插件开发中的UI卡顿问题复现及分析

    在外部摄影机记录原始的绿幕影片素材的时候,点击开始 / 结束分别会触发一个时间码 (Timecode)的信号,信号可以在 BMD 采集卡当中通过 SDK 获得,这样我们把从开始到结束的相机定位轨迹记录存至 buffer 中,然后更新到 USD 的 stage sublayer 中。
    的头像 发表于 11-03 15:17 773次阅读
    NVIDIA Omniverse USD插件开发中的UI卡顿问题复现及分析

    W25Q128JVSIM与GD25Q128ESIGR引脚兼容分析

    华邦W25Q128JVSIM作为常用的128Mbit SPI NOR Flash芯片,其兼容替代方案兆易创新GD25Q128ESIGR已获得批量客户的认可及使用。
    的头像 发表于 10-13 09:33 1542次阅读
    W25Q<b class='flag-5'>128</b>JVSIM与GD25Q<b class='flag-5'>128</b>ESIGR引脚兼容分析

    FLASHDB中KVDB 的FDB_WRITE_GRAN可以改为64bit或者128bit而TSDB为什么不行?

    FLASHDB中KVDB 的FDB_WRITE_GRAN可以改为64bit或者128bit而TSDB为什么不行?
    发表于 09-23 06:54

    中微CMS32F402DK64FB LQFP64 STAR-MC1内核32位微控制器MCU

    CMS32F402是STAR-MC1内核,最快支持128MHz运行,工作电压2.5V~5.5V,多达57个GPIO,4个UART,7个SPI,9个I2C,1个CAN,内置4路模拟比较器、4路可编程
    发表于 07-29 11:45