数据累加输出

数据累加输出

题目描述
实现串行输入数据累加输出,输入端输入8bit数据,每当模块接收到4个输入数据后,输出端输出4个接收到数据的累加结果。输入端和输出端与上下游的交互采用valid-ready双向握手机制。要求上下游均能满速传输时,数据传输无气泡,不能由于本模块的设计原因产生额外的性能损失。

电路的接口如下图所示。valid_a用来指示数据输入data_in的有效性,valid_b用来指示数据输出data_out的有效性;ready_a用来指示本模块是否准备好接收上游数据,ready_b表示下游是否准备好接收本模块的输出数据;clk是时钟信号;rst_n是异步复位信号。
在这里插入图片描述

`timescale 1ns/1nsmodule valid_ready(input 				clk 		,   input 				rst_n		,input		[7:0]	data_in		,input				valid_a		,input	 			ready_b		,output		 		ready_a		,output	reg			valid_b		,output  reg [9:0] 	data_out
);reg [1:0] cnt;always@(posedge clk or negedge  rst_n)beginif(!rst_n)cnt <= 1'b0;else if(valid_a == 1'b1 && ready_a == 1'b1)cnt <= cnt + 1'b1;elsecnt <= 1'b0;                endalways@(posedge clk or negedge rst_n)beginif(!rst_n)valid_b <= 1'b0;else if(cnt == 2'd3 && valid_a == 1'b1 && ready_a == 1'b1)valid_b <= 1'b1;else if(cnt == 2'd0 && valid_a == 1'b1 && ready_a == 1'b1 && ready_b == 1'b1)valid_b <= 1'b0;end//同时为高或同时为低时,考虑组合逻辑assign ready_a = !valid_b | ready_b;always@(posedge clk or negedge rst_n)beginif(!rst_n)data_out <= 10'b0;else if(cnt == 2'd0 && valid_a == 1'b1 && ready_a == 1'b1 && ready_b == 1'b1)//表示导入第一个数data_out <= data_in;else if(valid_a == 1'b1 && ready_a)//表示啥时加data_out  <= data_out + data_in;endendmodule

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/243091.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第一张信用卡,该选哪家的?

网友A:贷款教授你好&#xff0c;说一下我的情况&#xff0c;本人25岁工作2年&#xff0c;没有信用卡想办一张。但是现在的信用卡五花八门&#xff0c;也不知道怎么选择。所以请你帮我支支招。网友A:再说一下要求吧&#xff1a;1.不想第一张信用卡就给年费2.超市、购物、看电影、…

Linux学习资料

http://code.csdn.net/news/2821271 国内的专业Linux网站 ChinaUnix&#xff1a; 创办于2001年&#xff0c;是一个以讨论Linux/Unix类操作系统技术、软件开发技术、数据库技术和网络应用技术等为主的开源技术社区网站。 Linux伊甸园论坛&#xff1a; 中文GNU/Linux开源社区&…

为什么你总办不到大额信用卡?

通常的信用卡&#xff0c;额度都是1-2万&#xff0c;大额的信用卡标准是5万及以上&#xff0c;有时候一张大额的信用卡能顶3张一般的信用卡&#xff0c;从卡片管理到额度来说都是大额信用更受到人们的青睐。但是&#xff0c;为什么自己总是办不到银行的大额信用卡呢&#xff1f…

非整数倍数据位宽转换24to128

非整数倍数据位宽转换24to128 题目描述 实现数据位宽转换电路&#xff0c;实现24bit数据输入转换为128bit数据输出。其中&#xff0c;先到的数据应置于输出的高bit位。 电路的接口如下图所示。valid_in用来指示数据输入data_in的有效性&#xff0c;valid_out用来指示数据输出…

通过 dhcp-agent 访问 Metadata - 每天5分钟玩转 OpenStack(168)

OpenStack 默认通过 l3-agent 创建和管理 neutron-ns-metadata-proxy&#xff0c;进而与 nova-metadata-api 通信。但不是所有环境都有 l3-agent&#xff0c;比如直接用物理 router 的场景。这时就需要走另一条路&#xff1a;让 dhcp-agent 来创建和管理 neutron-ns-metadata-p…

乱查征信,贷款不想要了吗?

前几天接待了一个客户&#xff0c;客户自己是做皮具批发的&#xff0c;想要贷款50万&#xff0c;他个人在深圳有房有车&#xff0c;公司月营业额100多万&#xff0c;目前有120万的贷款&#xff0c;信用记录最近两年有过1次逾期&#xff0c;只是逾期了几天&#xff0c;不算严重。…

Fedora telnet配置

一、检测软件包是否安装 1、# rpm -q telnet (检测客户端软件是否安装) 2、# rpm -q telnet-server (检测服务器端软件是否安装) 如果无&#xff0c;就找个fedora的HTTP或者FTP服务器(也可以是fedora的安装光盘)&#xff0c;下载telnet和telnet-server的RPM包安装一下 安装&…

非整数倍数数据位宽转换8to12

非整数倍数数据位宽转换8to12 题目描述 实现数据位宽转换电路&#xff0c;实现8bit数据输入转换为12bit数据输出。其中&#xff0c;先到的数据应置于输出的高bit位。 电路的接口如下图所示。valid_in用来指示数据输入data_in的有效性&#xff0c;valid_out用来指示数据输出da…

instance 怎么获得自己的 Metadata - 每天5分钟玩转 OpenStack(169)

要想从 nova-api-metadata 获得 metadata&#xff0c;需要指定 instance 的 id。但 instance 刚启动时无法知道自己的 id&#xff0c;所以 http 请求中不会有 instance id 信息&#xff0c;id 是由 neutron-metadata-agent 添加进去的。针对 l3-agent 和 dhcp-agent 这两种情况…

网上仅凭身份证就可以贷款,可信吗?

近段有一位网友跟贷款教授反映了一个事情&#xff0c;他说他在一个QQ群里面看到有人发布凭借身份证就能贷款的信息&#xff0c;而且利息只有月息1%&#xff0c;他觉得很划算&#xff0c;所以就跟那人联系上&#xff0c;结果联系上之后&#xff0c;把身份证照片提供给那个人&…

整数倍数据位宽转换8to16

整数倍数据位宽转换8to16 题目描述 实现数据位宽转换电路&#xff0c;实现8bit数据输入转换为16bit数据输出。其中&#xff0c;先到的8bit数据应置于输出16bit的高8位。 电路的接口如下图所示。valid_in用来指示数据输入data_in的有效性&#xff0c;valid_out用来指示数据输出…

fedora 20下使用gcc 4.8.2编译gcc-4.4.1的错误

In file included from /root/Downloads/gcc-4.4.1/libgcc/../gcc/unwind-dw2.c:333: /root/Downloads/gcc-4.4.1/libgcc/../gcc/config/i386/linux-unwind.h: In function ‘x86_fallback_frame_state’: /root/Downloads/gcc-4.4.1/libgcc/../gcc/config/i386/linux-unwind.h…

状态机-非重叠的序列检测

状态机-非重叠的序列检测 题目描述 设计一个状态机&#xff0c;用来检测序列 10111&#xff0c;要求&#xff1a; 1、进行非重叠检测 即101110111 只会被检测通过一次 2、寄存器输出且同步输出结果 注意rst为低电平复位 信号示意图&#xff1a; timescale 1ns/1nsmodule…

实践 config drive - 每天5分钟玩转 OpenStack(170)

如果 instance 无法通过 metadata service 获取 metadata&#xff08;无 DHCP 或者 nova-api-metadata 服务&#xff09;&#xff0c;instance 还可以通过 config drive 获得 metadata。 config drive 是一个特殊的文件系统&#xff0c;OpenStack 会将 metadata 写到 config dr…

nothing to build for project 'XXX'

有时候使用Eclipse CDT或者CCS 写程序时出现 nothing to build for project 的错误&#xff0c;这是因为新建的项目类型和实际的源代码类型不一致造成的&#xff0c;比如你新建了C Project, 注意不是 C project, 但是你添加的源文件却是 .cpp 等的C源代码的后缀&#xff0c;那…

借款人死亡后,贷款必须由家属偿还吗?

这几天在网上看到一个网友发了这样一个问题&#xff0c;说在自己死之前&#xff0c;能不能在网上大量申请无抵押贷款&#xff0c;然后留给后代&#xff1f;看了这填信息&#xff0c;估计很多网友都会灵光一现&#xff0c;这貌似留给后人一笔财产不错的选择&#xff0c;生前先大…

状态机-重叠序列检测

状态机-重叠序列检测 题目描述 设计一个状态机&#xff0c;用来检测序列 1011&#xff0c;要求&#xff1a; 1、进行重叠检测 即10110111 会被检测通过2次 2、寄存器输出&#xff0c;在序列检测完成下一拍输出检测有效 注意rst为低电平复位 信号示意图 画出状态转移图 …

Juniper Space License Issue on Citrix Xen Environment

Based on Juniper “Junos Space Virtual Appliance Installation and Configuration Guide” , JunOS Space “ must deploy the virtual appliance on a VMware ESX, VMWare ESXi or KVM server, which provides a CPU, hard disk, RAM, and a network controller, but requi…

warning: pointer of type 'void *' used in arithmetic

对 void* 类型的指针进行加减运算的时候&#xff0c;这是不安全的&#xff0c;因为编译器并不知道你指针的单元是多少&#xff0c;需要移动多长的距离。作为扩展&#xff0c;大部分编译器都允许给void 指针做算术运算。

中国人均负债15.5万元,你贡献了多少?

近段时间&#xff0c;借钱&#xff0c;高利贷&#xff0c;资金断裂等各种词汇频繁出现在网络上&#xff0c;东北辉山乳业百亿债危机&#xff0c;山东邹平齐星集团资金断裂欠债百亿&#xff0c;雨润欠下百亿巨款、还有女企业主借高利贷被催收引发的辱母事件等等&#xff0c;一时…