ZYNQ Block Design中总线位宽的截取与合并操作
前言
在某些需求下,数据的位宽后级模块可能不需要原始位宽宽度,需要截位,而某些需求下,需要进行多个数据的合并操作。
在verilog下,截位操作可如下所示:
wire [7:0] w_in;
wire [3:0] w_out;
assign w_out = win[3:0];
合并操作可如下所示:
wire [3:0] w_in0;
wire [3:0] w_in1;
wire [7:0] w_out;
assign w_out = {w_in1,w_in0};
所以问题就来了:如何在不写代码的情况下在block design设计中实现截取与合并的操作呢?

用到的IP
(1)constant IP。
此IP可以输出可配置位宽的常数,电平可配置0或者1。

(2)concat IP。
此IP可以使得分立的线拼接成单一线输出,相当于verilog描述的拼接操作。输入端口数和位宽均可配置。注意In1会放置在高位,[In1,In0]。

(3)slice IP。
此IP功能跟concat IP相反,会把输入截取想要的位宽输出。相当于verilog的位宽截取操作。输入位宽,输出位宽,截取msb和截取lsb都是可以配置的。

实例
100M网口使用MII接口。可以知道数据tx和rx都是4bit位宽的,但在MII IP接口中,数据位宽为8bit。则需截位与合并。
(1)总线位宽合并。
如下图所示,对于100M的网口使用,rx的高4bit需要接0。则需要使用到constant IP和concat IP。

(2)总线位宽截取。
对于100M网口的tx,高位是没用的,则通过slice IP截取低4bit作为输出。

重新生成wrapper,可以看到位宽符合预期,这么做的好处在于无需手动去修改生成的信号位宽,一劳永逸。

以上。
ZYNQ Block Design中总线位宽的截取与合并操作的更多相关文章
- ZYNQ block design警告:[BD 41-968] AXI interface port /axi_lite4 is not associated to any clock port. It may not work correctly.
前言 在Block design中引出AXI接口给外部,检查设计告警如下: [BD 41-968] AXI interface port /axi_lite4 is not associated to ...
- Verilog中变量位宽注意
Verilog中,变量定义方式可以为:reg[位宽-1:0] 数据名:reg[位宽:1] 数据名.其他变量也类似. 以reg变量cnt为例,当cnt位宽为4时,可定义为reg[3:0] cnt,或者定 ...
- C++中输出 位宽和小数点后位数 的控制
要用到这个头文件: <iomanip> setw(x) : 表示控制输出x的位宽 setprecision(x) :表示 控制输出小数点后 x 位 cout.precision(x): 表 ...
- 使用js方法将table表格中指定列指定行中相同内容的单元格进行合并操作。
前言 使用js方法对html中的table表格进行单元格的行列合并操作. 网上执行此操作的实例方法有很多,但根据实际业务的区别,大多不适用. 所以在网上各位大神写的方法的基础上进行了部分修改以适合自己 ...
- s3c2440裸机-内存控制器(二、不同位宽外设与CPU地址总线的连接)
不同位宽设备的连接 black 我们先看一下2440芯片手册上外设rom是如何与CPU地址总线连接的. 8bit rom与CPU地址线的连接 8bit*2 rom与CPU地址线的连接 8bit*4 r ...
- C语言-字、半字、内存位宽相关
1.32位系统:32位系统指的是32位数据线,但是一般地址线也是32位,这个地址线32位决定了内存地址只能有32位二进制,所以逻辑上的大小为2的32次方.内存限制就为4G.实际上32位系统中可用的内存 ...
- system verilog中的类型转换(type casting)、位宽转换(size casting)和符号转换(sign casting)
类型转换 verilog中,任何类型的任何数值都用来给任何类型赋值.verilog使用赋值语句自动将一种类型的数值转换为另一种类型. 例如,当一个wire类型赋值给一个reg类型的变量时,wire类型 ...
- 【设计经验】3、ISE中烧录QSPI Flash以及配置mcs文件的加载速度与传输位宽
一.软件与硬件平台 软件平台: 操作系统:Windows 7 64-bit 开发套件:ISE14.7 硬件平台: FPGA型号:XC6SLX45-CSG324 QSPI Flash型号:W25Q128 ...
- Vivado中备份设计好的block design
参考链接 https://blog.csdn.net/dimples_song/article/details/81391615 前言 为了不每次都重新生成block design,避免重复劳动. 可 ...
随机推荐
- sklearn学习 第一篇:knn分类
K临近分类是一种监督式的分类方法,首先根据已标记的数据对模型进行训练,然后根据模型对新的数据点进行预测,预测新数据点的标签(label),也就是该数据所属的分类. 一,kNN算法的逻辑 kNN算法的核 ...
- 在ts+vue中实现前端批量下载打包二维码
---恢复内容开始--- 一.插件安装 首先是插件的安装与引入,这里我们用的是qrcode的这个插件,直接使用npm install qrcodejs2安装即可,但是这里要注意,如果你用的是ts进行开 ...
- 金蝶K3 V12.2版本,对已发生业务单据的物料启用辅助计量单位
/****************************************************************************** 联达双计量单位 yLD_K3Data_S ...
- 新浪微博SSO授权后回调客户端没有执行sinaweiboDidLogIn&无法返回应用
TARGETS --> URL Types --> 添加 --> 在URL Schemes里填上sinaweibosso.XXXX(AppKey),Identifier这里可以随机 ...
- React 基于antd+video.js实现m3u8格式视频播放及实时切换
文档连接地址(官网看起麻烦,看中文别人整理好的)https://blog.csdn.net/a0405221/article/details/80923090 React项目使用 安装依赖 npm ...
- 史上最全面的SignalR系列教程-1、认识SignalR
SignalR 是什么? SignalR 是一个面向 ASP.NET 开发人员的库,可简化将实时 web 功能添加到应用程序的过程. 实时 web 功能是让服务器代码将内容推送到连接的客户端立即可用, ...
- spring-boot 示例大全
spring-boot-demo Spring Boot 学习示例,将持续更新... 本项目基于spring boot 最新版本(2.1.7)实现 什么是spring-boot Spring Boot ...
- LeetCode——264. Ugly Number II
题目: Write a program to find the n-th ugly number. Ugly numbers are positive numbers whose prime fact ...
- Spring AOP JDK动态代理与CGLib动态代理区别
静态代理与动态代理 静态代理 代理模式 (1)代理模式是常用设计模式的一种,我们在软件设计时常用的代理一般是指静态代理,也就是在代码中显式指定的代理. (2)静态代理由 业务实现类.业务代理类 两部分 ...
- 阿里P8架构师浅析——MySQL的高并发优化
一.数据库结构的设计 1.数据行的长度不要超过8020字节,如果超过这个长度的话在物理页中这条数据会占用两行从而造成存储碎片,降低查询效率. 2.能够用数字类型的字段尽量选择数字类型而不用字符串类型的 ...