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

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

题目描述
实现数据位宽转换电路,实现24bit数据输入转换为128bit数据输出。其中,先到的数据应置于输出的高bit位。

电路的接口如下图所示。valid_in用来指示数据输入data_in的有效性,valid_out用来指示数据输出data_out的有效性;clk是时钟信号;rst_n是异步复位信号
在这里插入图片描述
题目解读
要实现24bit数据至128bit数据的位宽转换,必须要用寄存器将先到达的数据进行缓存。24bit数据至128bit数据,相当于5个输入数据+第6个输入数据的拼接成一个输出数据,出于对资源的节省以及时序要求,采用120bit的寄存器(data_lock)进行数据缓存。

为什么采用120bit的寄存器进行数据缓存呢?

因为120bit刚好能存储5个24bit输入数据,当第6个数据到了之后,将寄存器内缓存的前5个数据数据和第6个输入数据的高8bit输出,剩下的低16bit在下个时钟周期存入到寄存器中。具体实现方式后面根据代码再解释。

为什么不采用更小bit位宽的寄存器存储而是120bit呢?原因如下:如果数据缓存寄存器的位宽小于128bit,那么寄存器的位宽就必须满足能存下5个输入数据,这样当第6个数据到来时,就直接将输入端的8bit的数据和已缓存的120bit数据,如果寄存器存不下5个输入数据,那么意味着将有1个以上的数据数据没有缓存,那么就会造成数据丢失。

根据时序推演,数据是在第6个、第11个、第16个数据到来之后输出,所以内部设计一个计数器(valid_cnt),用来指示数据接收状态。当检测到valid_in拉高时,valid_cnt加1,valid_cnt在0-15之间循环,valid_cnt复位值是0。当valid_cnt是5或10或15,且valid_in为高时,输出数据,valid_out拉高。

在这里插入图片描述

`timescale 1ns/1nsmodule width_24to128(input 				clk 		,   input 				rst_n		,input				valid_in	,input	[23:0]		data_in		,output	reg			valid_out	,output  reg [127:0]	data_out
);reg [119:0] data_lock;//128%24=5;5*24=120reg [3:0] valid_cnt;//24*16=128*3always@(posedge clk or negedge rst_n)beginif(!rst_n)valid_cnt <= 4'd0;else if(valid_in == 1'b1 && valid_cnt == 4'd15)valid_cnt <= 4'd0;else if(valid_in == 1'b1)valid_cnt <= valid_cnt + 1'b1;elsevalid_cnt <= valid_cnt;            endalways@(posedge clk or negedge rst_n)beginif(!rst_n)begindata_lock <= 120'b0;data_out  <= 128'b0;endelse if(valid_in == 1'b1 && valid_cnt == 4'd5)begindata_lock <= {data_lock[119:16], data_in[15:0]};data_out  <= {data_lock, data_in[23:16]};endelse if(valid_in == 1'b1 && valid_cnt == 4'd10)begindata_lock <= {data_lock[119:8], data_in[7:0]};data_out  <= {data_lock[111:0], data_in[23:8]};endelse if(valid_in == 1'b1 && valid_cnt == 4'd15)begindata_lock <= {data_lock[119:24], data_in};data_out  <= {data_lock[103:0], data_in};endelse if(valid_in == 1'b1)data_lock <= {data_lock[95:0], data_in};endalways @(posedge clk or negedge rst_n ) beginif(!rst_n) valid_out <= 'd0;else if(valid_in && valid_cnt == 4'd5)valid_out <= 1'd1;else if(valid_in && valid_cnt == 4'd10)valid_out <= 1'd1;else if(valid_in && valid_cnt == 4'd15)valid_out <= 1'd1;elsevalid_out <= 'd0;end
endmodule

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

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

相关文章

通过 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;不算严重。…

非整数倍数数据位宽转换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用来指示数据输出…

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

状态机-非重叠的序列检测 题目描述 设计一个状态机&#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…

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

这几天在网上看到一个网友发了这样一个问题&#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…

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

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

时钟分频(偶数)

时钟分频&#xff08;偶数&#xff09; 题目描述 请使用D触发器设计一个同时输出2/4/8分频的50%占空比的时钟分频器 注意rst为低电平复位。 信号示意图&#xff1a; timescale 1ns/1nsmodule even_div(input wire rst ,input wire clk_in,output wire clk_out2,o…

cloud-init 工作原理 - 每天5分钟玩转 OpenStack(171)

cloud-init 是 linux 的一个工具&#xff0c;当系统启动时&#xff0c;cloud-init 可从 nova metadata 服务或者 config drive 中获取 metadata&#xff0c;完成包括但不限于下面的定制化工作&#xff1a; 设置 default locale 设置 hostname 添加 ssh keys到 .ssh/authorize…

信用卡的3种分期模式全面比较

信用卡不同与储蓄卡&#xff0c;它可以具备储蓄功能&#xff0c;也具备透支功能。但是信用卡的过度消费&#xff0c;会使还款压力加大。别担心&#xff0c;信用卡还有一项分期还款功能。下面跟着雷小锋一起全面认识一下信用卡的3种不同的分期模式吧。现在信用卡的分期模式分为以…

世界上唯一可以刷卡买飞机的信用卡

如果有人去购买一个飞机&#xff0c;刷了1个亿的信用卡&#xff0c;大家会相信吗&#xff1f;不管你相不相信&#xff0c;现实总是存在的&#xff0c;2014年7月&#xff0c;收藏家刘益谦从香港苏富比以2.8亿港元拍得鸡缸杯&#xff0c;刷的就是信用卡&#xff0c;当然此信用卡非…

自动贩售机1

自动贩售机1 题目描述&#xff1a; 设计一个自动贩售机&#xff0c;输入货币有三种&#xff0c;为0.5/1/2元&#xff0c;饮料价格是1.5元&#xff0c;要求进行找零&#xff0c;找零只会支付0.5元。 ps: 投入的货币会自动经过边沿检测并输出一个在时钟上升沿到1&#xff0c;在…

使用vivado进行逻辑开发时,进行到Generate Bitstream时报错

使用vivado进行逻辑开发时&#xff0c;进行到Generate Bitstream时报错&#xff0c;如下&#xff1a; [Drc 23-20] Rule violation (NSTD-1) Unspecified I/O Standard - 4 out of 142 logical ports use I/O standard (IOSTANDARD) value DEFAULT, instead of a user assigned…

房贷断供会有什么严重后果?

当前我国的房价市场存在很大的泡沫&#xff0c;虽然房价还在涨&#xff0c;但是泡沫终究会有破裂的一天&#xff0c;一旦房产泡沫破裂&#xff0c;那房价势必会下跌&#xff0c;一旦房价下跌&#xff0c;就会出现很多人弃房断供。当然房贷断供并不一定要等到房价崩盘的那天&…

人民的名义中,为什么蔡成功的贷款这么难?

在人民的名义电视剧中&#xff0c;大风厂被山水集团和达康书记的老婆欧阳菁设圈套&#xff0c;蔡成功以大风厂全部股权作质押&#xff0c;向山水集团借了6000万的过桥资金&#xff0c;约定利息是日息千分之4&#xff0c;结果京州城市银行没有给蔡成功贷款&#xff0c;而向信用社…