Verilog设计:简易的PCS模块66b同步设计

本文基于IEEE Std 802.3-2022 PCS 章节,介绍几种66b同步方法,处理位宽包括64bit数据到32bit数据,并给出一些优化方案。 整个简化流程可以表示为: 64bit输入数据->增加同步头->转换成64bit位宽数据-----> PMA tx ----->PMA rx ----

Verilog设计:简易的PCS模块66b同步设计
Verilog设计:分优先级的CPU访问接口协议设计

Verilog设计:分优先级的CPU访问接口协议设计

问题背景:模块A内部有一块RAM作为内部状态信息缓存,这个信息一方面需要被内部逻辑进行读写,一方面又需要被外部CPU总线读写,此时已经在模块A中分了时隙用于同时处理两个接口访问。现在模块B也需要对模块A中的RAM进行访问,并且优先级比CPU总线要高,因为外部CPU访问没那么紧急,都是可以挂起等待的。

MATLAB HDL Coder 开发入门

前言:本文属于历史项目,跨越的时间线非常长,从 2021 到 2024 年,主要涉及的版本有 MATLAB 2022a 和 MATLAB 2024a。有部分函数和代码都是继承的 2022a,现在我整理时用的 2024a,会发现 HDL Coder 工具箱在这两年变化挺大,新增了很多功能,手册也修改了

MATLAB HDL Coder 开发入门
MATLAB 安装 MinGW-w64

MATLAB 安装 MinGW-w64

错误使用 mex 未检测到支持的编译器。您可以安装免费提供的 MinGW-w64 C/C++ 编译器;请参阅安装 MinGW-w64 编译 器。有关更多选项,请访问 https://www.mathworks.com/support/compilers。 在使用 HDL Coder 工具箱时,遇到了

Verilog 实现不同类型的RAM

本文为个人的学习笔记,内容均为网络资料总结,价值有限~ 参考资料附在文后 RAM分类 RAM 按照功能可以分为 单端口RAM(SP),简单双端口RAM(SDP),真双端口RAM(TDP)。 按照底层实现可以分为 分布式RAM(DRAM),块RAM(BRAM),寄存器RAM(REG),有些器件也可以用

Verilog 实现不同类型的RAM
《UVM实战》运行第一个验证平台 STEP7

《UVM实战》运行第一个验证平台 STEP7

本篇为验证平台的最后一个环节,step by step 的最后一步,给平台添加测试用例。 项目地址:https://github.com/shirainbown/UVM-Step-by-Step/tree/master 我们理论上已经将平台完整搭建出来了,不过还存在一个问题,虽然平台能够发送激励并且

《UVM实战》运行第一个验证平台 STEP6

本文为验证平台添加了 sequence和sequencer两个组件,整个验证平台基本成型,文中并没有选择《UVM实战》2.4.3中的default_sequence 的方式,因为我在工作中也没有采用这种方式。 https://github.com/shirainbown/UVM-Step-by-St

《UVM实战》运行第一个验证平台 STEP6
《UVM实战》运行第一个验证平台 STEP5

《UVM实战》运行第一个验证平台 STEP5

本篇文章在已有的基础上,继续给验证平台添加reference model 和scoreboard组件。 https://github.com/shirainbown/UVM-Step-by-Step/tree/master 1. reference model reference model 用于接

《UVM实战》运行第一个验证平台 STEP4

上篇文章讲了如何添加interface,用于充当DUT 和验证平台之间的数据接口,可以避免使用绝对路径来对数据进行驱动。这篇文章尝试搭建一个较为完整的UVM平台,实现数据的驱动和采集,添加transaction,monitor,agent,env等组件。 https://github.com/shi

《UVM实战》运行第一个验证平台 STEP4