探索AMBA AHB协议的UVM验证环境源码

版权申诉
3星 · 超过75%的资源 2 下载量 168 浏览量 更新于2024-11-27 收藏 27KB ZIP 举报
资源摘要信息: "AHB2-master_ahbvipuvm_ambaahb_UVM_ahbuvm_UVMAHB_源码.zip" 该资源名称暗示了一个与验证相关的源码包,具体涉及到的是AMBA AHB(Advanced High-performance Bus)总线协议的UVM(Universal Verification Methodology)验证环境。下面将对标题中出现的关键技术和概念进行详细说明。 ### AHB (Advanced High-performance Bus) AMBA AHB是ARM公司推出的一种高性能总线协议,主要用于连接和传输高速外设和处理器核之间的数据。它是AMBA高级外设总线系列的一部分,适用于高性能的系统核心。AHB协议支持突发传输、分裂事务以及流水线操作,非常适合于要求高带宽和低延迟的应用场景。 ### VIP (Verification IP) 验证IP(VIP)是一种预先设计好的模块,用于在复杂的数字电路设计验证中提供特定协议的验证功能。VIP通常包含了符合某一标准的协议实现、测试环境以及预定义的测试用例,能够提高验证效率,减少重复工作,并允许验证工程师专注于核心验证逻辑的开发。在本资源中,“ahbvip”很可能指的是符合AMBA AHB协议的验证IP。 ### UVM (Universal Verification Methodology) UVM是一种基于SystemVerilog的验证方法学,它提供了一套完整的框架和一系列的类库,用于构建可重用、可扩展的硬件验证环境。UVM借鉴了其他验证方法的优点,如eRM(e Reusable Methodology)和VMM(Verification Methodology Manual),并进一步发展了模块化、层次化的设计思想,以及面向对象编程的特性。UVM广泛应用于现代电子设计自动化(EDA)领域中,特别是在复杂系统的功能验证上。 ### AHB UVM验证环境 该资源中的“ahbuvm”指的是一个专门为AMBA AHB协议设计的UVM验证环境。这意味着该环境提供了一个可配置的、用于测试和验证AMBA AHB兼容的设备或子系统的框架。它可能包括了各种UVM组件,如agents、sequences、sequences、scoreboards、coverage monitors等。 ### UVMAHB UVMAHB很可能是指一个特定的UVM组件或类库,专门用于创建AMBA AHB协议相关的验证环境。它可能是UVM基础库中的一个模块,或者是一个第三方提供的扩展库,用于支持AHB总线协议的验证。 ### 源码包 文件名称中包含“源码包”字样,表明该压缩包中包含的是一系列源代码文件。这些文件可能包括了UVM验证环境的实现代码、AMBA AHB VIP的定义以及用于特定测试或验证的脚本和配置文件。源码包为验证工程师提供了完整的底层实现细节,允许他们修改和扩展验证环境以满足特定的验证需求。 ### 总结 综上所述,该资源提供了一个针对AMBA AHB总线协议的UVM验证环境的源码包,包含了用于验证符合该协议的硬件设备或子系统所需的全部代码和脚本。通过使用该源码包,验证工程师可以快速搭建起一个功能强大的验证平台,以确保设计符合AMBA AHB协议的要求。由于资源名称中未包含具体的版本号或其他标签信息,我们无法确定这个源码包的具体内容细节,但可以推测它包含了UVM验证环境中与AMBA AHB总线相关的所有必要组件。对于从事AMBA AHB相关设计或验证的工程师而言,这将是一个非常有价值的资源,有助于提高验证工作的效率和质量。
2023-03-25 上传

Calling tool in ralgen.py: /hpc/simulation/jzhou/awakening_soc/infra/flow/dv/tools/ralgen/../../../../util/regtool.py -s -t /tmp/mct_dv_bb_env-ral_0.1cvwdpui1 /hpc/simulation/jzhou/awakening_soc/design/bb/dv/env/../../data/bb.hjson RAL pkg for bb written to /tmp/mct_dv_bb_env-ral_0.1cvwdpui1. INFO: Wrote dependency graph to /hpc/simulation/jzhou/awakening_soc/scratch/default/gnss_top-sim-vcs/default/sim-vcs/mct_dv_bb_sim_0.1.deps-after-generators.dot WARNING: The file ../../include/yuu_ahb_interface.svi in /hpc/simulation/jzhou/awakening_soc/infra/verif/uvc/yuu_ahb/src/sv/ahb_env.core is not within the directory containing the core file. This is deprecated and will be an error in a future FuseSoC version. A typical solution is to move core file into the root directory of the IP block it describes WARNING: The file ../../include/yuu_ahb_pkg.sv in /hpc/simulation/jzhou/awakening_soc/infra/verif/uvc/yuu_ahb/src/sv/ahb_env.core is not within the directory containing the core file. This is deprecated and will be an error in a future FuseSoC version. A typical solution is to move core file into the root directory of the IP block it describes. WARNING: The file ../../test/ahb_base_seq.sv in /hpc/simulation/jzhou/awakening_soc/infra/verif/uvc/yuu_ahb/src/sv/ahb_env.core is not within the directory containing the core file. This is deprecated and will be an error in a future FuseSoC version. A typical solution is to move core file into the root directory of the IP block it describes. ERROR: Setup failed : Cannot find ../../test/ahb_base_seq.sv in : /hpc/simulation/jzhou/awakening_soc/infra/verif/uvc/yuu_ahb/src/sv

2023-07-20 上传

在保持原来的代码逻辑的条件下,根据STM32F407的特性,把下面STM32F1的代码移植到STM32F407。void ExtiGpioInit(void) { GPIO_InitTypeDef GPIO_InitStruct; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO, ENABLE); GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_InitStruct.GPIO_Pin = GPIO_Pin_4|GPIO_Pin_5 ; GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOC, &GPIO_InitStruct); } void ExtiNvicInit(void) { NVIC_InitTypeDef NVIC_InitStructure; NVIC_InitStructure.NVIC_IRQChannel = EXTI4_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn ; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); } void ExtiModeInit(void) { EXTI_InitTypeDef EXTI_InitStructure; GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource4); EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; EXTI_InitStructure.EXTI_Line = EXTI_Line4; EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_Init(&EXTI_InitStructure); GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource5); EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; EXTI_InitStructure.EXTI_Line = EXTI_Line5; EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_Init(&EXTI_InitStructure); }

2023-07-09 上传
2023-07-20 上传