SV实验0 DUT设计描述

2023-10-11 06:40
文章标签 sv 设计 实验 描述 dut

本文主要是介绍SV实验0 DUT设计描述,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、功能描述
  • 二、设计结构
  • 三、接口描述
  • 四、接口时序
  • 五、寄存器描述
  • 六、仿真部分代码(.v)

一、功能描述

MCDF(多通道数据整形器,Multi-Channel Data Formatter)
将上行(uplink)多个通道数据经过内部FIFO,并以数据包(data packet)的形式送出。
上行和下行数据的接口协议不同;MCDF有寄存器读写接口,可以支持更多控制功能。

二、设计结构

image

  • Channel Slave(上行数据通道从端) 负责接收上行数据,并存储到对应的FIFO中。
  • Arbiter(仲裁器) 可以选择从不同的FIFO中读取数据,并将数据传送至formatter。
  • Formatter(整形器) 将数据按一定接口时序送出至下行接收端。
  • Control Registers(控制寄存器) 有专用寄存器读写接口,负责接收命令并对MCDF功能做出修改。

三、接口描述

1. System Signal

  • CLK(0):时钟信号。
  • RSTN(0):复位信号,低位有效。

2. Channel Slave Interface

  • CHx_DATA(31:0):通道数据输入。
  • CHx_VALID(0):通道数据有效标志信号,高位有效。
  • CHx_READY(0):通道数据接收信号,高位表示接收成功。

3. Formatter Interface

  • FMT_CHID(1:0):整形数据包的通道ID号。
  • FMT_LENGTH(4:0):整形数据包长度信号。
  • FMT_REQ(0):整形数据包发送请求。
  • FMT_GRANT(0):整形数据包被允许发送的接受标示。
  • FMT_DATA(31:0):数据输出端口。
  • FMT_START(0):数据包起始标示。
  • FMT_END(0):数据包结束标示。

4. Control Registers Interface

  • CMD(1:0):寄存器读写命令。
  • CMD_ADDR(7:0):寄存器地址。
  • CMD_DATA_IN(31:0):寄存器写入数据。
  • CMD_DATA_OUT(31:0):寄存器读出数据。

四、接口时序

1. Channel Slave 接口时序
image

  • valid为高表示要写入数据。
  • ready为高,表示当前时钟周期已将数据写入;ready为低,则需等到ready为高的时钟周期才可写入。

2. Formatter 接口时序
image

  • Formatter按数据包形式发送数据,数据包长度有4、8、16、32。Formatter必须完整发送完某一通道数据包,才可准备发送下一个数据包,在数据包发送期间fmd_chidfmt_length应保持不变。
  • Formatter准备发送数据包时,首先将fmd_req置为高,同时等待接收端的fmt_grant。当fmd_grant变为高时,在下一个周期将fmt_req置为低。fmt_start也必须在接收到fmt_grant高有效的下一个时钟被置为高,且维持一个时钟周期。
  • fmt_start拉高的同一周期数据开始传送,数据之间不允许有空闲周期,即应连续发送,直到发送完最后一个数据,fmd_end也应置为高且保持一个时钟周期。
  • 相邻的数据包之间应保持至少一个时钟周期的空闲,即fmd_end拉低后至少一个时钟周期fmd_req才可再次拉高。

3. Control Registers 接口时序
image

  • Control Registers在每个时钟解析读写命令cmd,当cmdWR时,把数据cmd_data_in写入到cmd_addr对应的寄存器中;当cmdRD时,从cmd_addr对应的寄存器中读取数据,并在下一个周期,将数据被驱动至cmd_data_out接口。

五、寄存器描述

  • 地址0x00 通道1控制寄存器 32bits 读写寄存器
  • 地址0x04 通道2控制寄存器 32bits 读写寄存器
  • 地址0x08 通道3控制寄存器 32bits 读写寄存器
bit功能
0通道使能信号。1为打开,0位关闭。复位值为1。
2:1优先级。0为最高,3为最低。复位值为3。
5:3数据包长度,0对应长度4,1对应8,2对应16,3对应32,4~7均暂时对应32。复位值为0。
31:6保留位,无法写入。复位值为0。
  • 地址0x10 通道1状态寄存器 32bits 只读寄存器
  • 地址0x14 通道2状态寄存器 32bits 只读寄存器
  • 地址0x18 通道3状态寄存器 32bits 只读寄存器
bit功能
7:0上行数据从端FIFO的可写余量,同FIFO的数据余量保持同步变化。复位值为FIFO的深度数。
31:8保留位,复位值为0。

六、仿真部分代码(.v)

MCDT为MCDF子模块,仅包含Channel_slave和Arbiter部分。
MCDT

Verilog实现的Testbench如下:

`timescale 1ns/1psmodule tb1;
// 模块端口定义和例化省略...initial begin  // 时钟周期10nsclk <= 0;forever begin#5 clk <= !clk;end
endinitial begin  // 在10~110ns内触发复位#10 rstn <= 0;repeat(10) @(posedge clk);rstn <= 1;
endinitial begin @(posedge rstn);repeat(5) @(posedge clk);// channel 0 testchnl_write(0, 'h00C0_0000);chnl_write(0, 'h00C0_0001);chnl_write(0, 'h00C0_0002);chnl_write(0, 'h00C0_0003);chnl_write(0, 'h00C0_0004);chnl_write(0, 'h00C0_0005);chnl_write(0, 'h00C0_0006);chnl_write(0, 'h00C0_0007);chnl_write(0, 'h00C0_0008);chnl_write(0, 'h00C0_0009);// channel 1,2 test省略...
endtask chnl_write(input reg[1:0] id, input reg[31:0] data); case(id)0: begin@(posedge clk);ch0_valid <= 1;ch0_data <= data;@(posedge clk);  // 下一拍idle,数据无效ch0_valid <= 0;ch0_data <= 0;end1: begin@(posedge clk);ch1_valid <= 1;ch1_data <= data;@(posedge clk);ch1_valid <= 0;ch1_data <= 0;end2: begin@(posedge clk);ch2_valid <= 1;ch2_data <= data;@(posedge clk);ch2_valid <= 0;ch2_data <= 0;enddefault: $error("channel id %0d is invalid", id);endcase
endtaskendmodule

这篇关于SV实验0 DUT设计描述的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/186262

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

怎么让1台电脑共享给7人同时流畅设计

在当今的创意设计与数字内容生产领域,图形工作站以其强大的计算能力、专业的图形处理能力和稳定的系统性能,成为了众多设计师、动画师、视频编辑师等创意工作者的必备工具。 设计团队面临资源有限,比如只有一台高性能电脑时,如何高效地让七人同时流畅地进行设计工作,便成为了一个亟待解决的问题。 一、硬件升级与配置 1.高性能处理器(CPU):选择多核、高线程的处理器,例如Intel的至强系列或AMD的Ry

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

SprinBoot+Vue网络商城海鲜市场的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平台Java领域优质创作者,全网30w+

STM32(十一):ADC数模转换器实验

AD单通道: 1.RCC开启GPIO和ADC时钟。配置ADCCLK分频器。 2.配置GPIO,把GPIO配置成模拟输入的模式。 3.配置多路开关,把左面通道接入到右面规则组列表里。 4.配置ADC转换器, 包括AD转换器和AD数据寄存器。单次转换,连续转换;扫描、非扫描;有几个通道,触发源是什么,数据对齐是左对齐还是右对齐。 5.ADC_CMD 开启ADC。 void RCC_AD

单片机毕业设计基于单片机的智能门禁系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍程序代码部分参考 设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订

Spring的设计⽬标——《Spring技术内幕》

读《Spring技术内幕》第二版,计文柯著。 如果我们要简要地描述Spring的设计⽬标,可以这么说,Spring为开发者提供的是⼀个⼀站式的轻量级应⽤开发框架(平台)。 作为平台,Spring抽象了我们在 许多应⽤开发中遇到的共性问题;同时,作为⼀个轻量级的应⽤开发框架,Spring和传统的J2EE开发相⽐,有其⾃⾝的特点。 通过这些⾃⾝的特点,Spring充分体现了它的设计理念:在

开题报告中的研究方法设计:AI能帮你做什么?

AIPaperGPT,论文写作神器~ https://www.aipapergpt.com/ 大家都准备开题报告了吗?研究方法部分是不是已经让你头疼到抓狂? 别急,这可是大多数人都会遇到的难题!尤其是研究方法设计这一块,选定性还是定量,怎么搞才能符合老师的要求? 每次到这儿,头脑一片空白。 好消息是,现在AI工具火得一塌糊涂,比如ChatGPT,居然能帮你在研究方法这块儿上出点主意。是不

创业者该如何设计公司的股权架构

本文来自七八点联合IT橘子和车库咖啡的一系列关于设计公司股权结构的讲座。 主讲人何德文: 在公司发展的不同阶段,创业者都会面临公司股权架构设计问题: 1.合伙人合伙创业第一天,就会面临股权架构设计问题(合伙人股权设计); 2.公司早期要引入天使资金,会面临股权架构设计问题(天使融资); 3.公司有三五十号人,要激励中层管理与重要技术人员和公司长期走下去,会面临股权架构设计问题(员工股权激

HNU-2023电路与电子学-实验3

写在前面: 一、实验目的 1.了解简易模型机的内部结构和工作原理。 2.分析模型机的功能,设计 8 重 3-1 多路复用器。 3.分析模型机的功能,设计 8 重 2-1 多路复用器。 4.分析模型机的工作原理,设计模型机控制信号产生逻辑。 二、实验内容 1.用 VERILOG 语言设计模型机的 8 重 3-1 多路复用器; 2.用 VERILOG 语言设计模型机的 8 重 2-1 多