微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 如何用Verilog找出某一个特定的数据

如何用Verilog找出某一个特定的数据

时间:10-02 整理:3721RD 点击:
我从发端接收到一段数据,要从这一段数据中找到连续的两个值,比如说0x47,0x7F,请问一下我该如何写Verilog啊,我是菜鸟,大神们帮帮忙,谢谢了!

简单的很,如果类似某种序列的话,利用状态机;如果是单一几个数据的话,利用几个比较器足矣
建议先分析下设计需求,再建立对应的模型,进而硬件代码实现



    我只需要判断两个数也需要用状态机吗?感觉不需要吧,随便问一下,一个时钟可以读一个十六进制的数吗?



    那就要看你数据传输的位宽了,以及传输速率



    传输的位宽是16位的话,是不是一个时钟可以读取一个十六进制的数据啊!



    可以,每个特定的设计都有自己特有的design requirements,建议你跟周围的同事或者leader沟通下,再进行设计开发
    数字电路设计,无非就是在时钟的牵引下,根据不同的控制需求,把特定数据接受过来,经过必要加工处理,再发送出去

先假设输入数据位宽为N,当前输入数据时data[N-1:0],则该数据延时一拍为d1_data[N-1:0];
有2种情况,{data_1d【7:0],data【N-1:N-8]} == 0X477F;或者data【N-M-1:N-M-16] == 0x477x。



    恩恩,差不多知道了,谢谢你啊!



    经你这一讲,我就非常明白了,现在不管是两个数还是三个数我都会了,非常感谢,真是令我这菜鸟佩服啊,(*^__^*) 嘻嘻……

就相当于dataalign 的问题 数据从新组合判定就可以了

很简单,用两个寄存器构成移位寄存器,把数据移入,就检测两个寄存器的输出是否是你想的两个值,这样就做到连续检测两个理想值的功能了。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top