VL27 不重叠序列检测

这里最大的问题是:
always @(*) always @(posedge clk or negedge rst_n)的区别
always @(*) 在当前时钟内会变化
always @(posedge clk or negedge rst_n)由时钟驱动,所以会在下一个时钟才发生变化

代码

module sequence_detect(input clk,input rst_n,input data,output reg match,output reg not_match);parameter zero=0,one=1,two=2,three=3,four=4,five=5,six=6,fail=7;reg [2:0] current_stage,next_stage;reg [2:0] cnt;always @(posedge clk or negedge rst_n) beginif(~rst_n)begincnt <= 3'b0 ;endelse begin cnt <= (cnt == 3'd6) ? 3'b1: cnt+ 3'b1 ;endendalways @(posedge clk or negedge rst_n) beginif(~rst_n)begincurrent_stage <= zero;endelse begincurrent_stage <= next_stage;endendalways @(*) beginif(~rst_n)beginnext_stage <= zero;endelse begincase(current_stage)zero  : next_stage = data==1'b0 ? one  : fail;one   : next_stage = data==1'b1 ? two  : fail;two   : next_stage = data==1'b1 ? three: fail;three : next_stage = data==1'b1 ? four : fail;four  : next_stage = data==1'b0 ? five : fail;five  : next_stage = data==1'b0 ? six  : fail;six   : next_stage = data==1'b0 ? one  : fail;fail : next_stage = (cnt == 6 && data == 1'b0) ? one : fail ;default : next_stage = zero;     endcaseendendalways @(*) beginif(~rst_n)beginmatch <= 1'b0 ;not_match <= 1'b0;endelse beginmatch <= (cnt == 6 && current_stage == six) ;not_match <= (cnt == 6 && current_stage == fail);endendendmodule

testbench

  
module testbench_sequence_detect;  reg clk, rst_n, data;  wire match, not_match;  // Instantiate the Unit Under Test (UUT)  sequence_detect uut (  .clk(clk),   .rst_n(rst_n),   .data(data),   .match(match),   .not_match(not_match)  );  // Clock generation  initial begin  clk = 1;  forever #(5) clk = ~clk;  // Generate a 10ns period clock signal  end  // Test stimulus  initial begin   rst_n = 0;  
//        data = 0;  #10;  // Reset the module  rst_n = 1;data = 0;  #10;  // Send a sequence that does not match the expected pattern  
//        data = 1'b0; #10;  data = 1'b1; #10;  data = 1'b1; #10;  data = 1'b1; #10;  data = 1'b0; #10;  data = 1'b0; #10;  data = 1'b0; #10; // Check if not_match is asserted  if (not_match) begin  $display("Sequence did not match at time %t", $time);  end else begin  $display("Test failed: not_match was not asserted when expected");  
//            $finish;  end  //        // Reset the state  
//        #10;  
//        rst_n = 0;  
//        #10;  
//        rst_n = 1;  // Send the correct sequence  data = 1'b0; #10;  data = 1'b1; #10;  data = 1'b1; #10;  data = 1'b1; #10;  data = 1'b0; #10;  data = 1'b0; #10;  data = 1'b0; #10;  // Check if match is asserted  if (match) begin  $display("Sequence matched at time %t", $time);  end else begin  $display("Test failed: match was not asserted when expected");  
//            $finish;  end  // Finish the simulation  $finish;  end  endmodule

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

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

相关文章

Waymo视角革新!MoST:编码视觉世界,刷新轨迹预测SOTA!

论文标题&#xff1a; MoST: Multi-modality Scene Tokenization for Motion Prediction 论文作者&#xff1a; Norman Mu, Jingwei Ji, Zhenpei Yang, Nate Harada, Haotian Tang, Kan Chen, Charles R. Qi, Runzhou Ge, Kratarth Goel, Zoey Yang, Scott Ettinger, Rami A…

Day34 事件聚合器实现消息过滤功能

​ 当前章节,实现了消息事件过滤功能 在上一章节中,我们发现在Login视图页和Main视图页都使用了同一个事件聚合器,导致在Login视图页发送的消息也被Main 视图主页所接收,这违反了事件传递的意图和模块化设计的原则。为了解决这个问题,我们需要为事件聚合器引入消息过滤的…

锁存器(Latch)的产生与特点

Latch 是什么 Latch 其实就是锁存器&#xff0c;是一种在异步电路系统中&#xff0c;对输入信号电平敏感的单元&#xff0c;用来存储信息。锁存器在数据未锁存时&#xff0c;输出端的信号随输入信号变化&#xff0c;就像信号通过一个缓冲器&#xff0c;一旦锁存信号有效&#…

深入解析Java中volatile关键字

前言 我们都听说过volatile关键字&#xff0c;也许大家都知道它在Java多线程编程编程中可以减少很多的线程安全问题&#xff0c;但是会用或者用好volatile关键字的开发者可能少之又少&#xff0c;包括我自己。通常在遇到同步问题时&#xff0c;首先想到的一定是加锁&#xff0…

大模型押题高考语文作文,带着大模型参加语文高考会怎么样?

前沿 大语言模型通常是指那些经过大量数据训练,能够理解和生成自然语言文本的人工智能系统。这些模型通常具有数百万到数十亿个参数,能够执行多种语言任务,例如语言翻译、文本摘要、问答系统、文本生成等。大语言模型能够捕捉语言的复杂性和细微差别,提供更加准确和自然的…

21data 数据可视化

echarts 快速上手 - 使用手册 - Apache ECharts 概念篇 图表容器及大小样式数据集数据转换坐标轴视觉映射图例 应用篇 常用图表类型 标签 python画图-matplotlib 21data 数据可视化 代码合集-CSDN博客 折线图 柱状图 雷达图 条形图 气泡图 折线堆积图 簇状柱形图

移动web性能测试工具有哪些呢?

摘要&#xff1a;本文将介绍一系列移动Web性能测试工具&#xff0c;以帮助开发人员评估和优化移动网站和应用程序的性能。我们将从基本概念开始&#xff0c;逐步深入&#xff0c;详细介绍每种工具的特点、用途和使用方法。 1. 概述 1.1 移动Web性能测试的重要性 1.2 测试工具…

微信小程序-wx.showToast超长文字展示不全

wx.showToast超长文字展示不全 问题解决方法1 问题 根据官方文档&#xff0c;iconnone&#xff0c;最多显示两行文字。所以如果提示信息较多&#xff0c;超过两行&#xff0c;就需要用其他方式解决。 解决方法1 使用vant组件里面的tost 根据官方例子使用&#xff1a; 1、在…

【Python报错】已解决ModuleNotFoundError: No module named ‘packaging’

成功解决“ModuleNotFoundError: No module named ‘packaging’”错误的全面指南 在Python编程中&#xff0c;遇到ModuleNotFoundError: No module named packaging这样的错误&#xff0c;通常意味着你的Python环境中缺少名为packaging的模块&#xff0c;或者该模块没有被正确…

YOLOV5 图像分割:利用yolov5进行图像分割

1、介绍 本章将介绍yolov5的分割部分,其他的yolov5分类、检测项目参考之前的博文 分类:YOLOV5 分类:利用yolov5进行图像分类_yolov5 图像分类-CSDN博客 检测:YOLOV5 初体验:简单猫和老鼠数据集模型训练-CSDN博客 yolov5的分割和常规的分割项目有所区别,这里分割的结果…

网络编程(UPD和TCP)

//发送数据 //UDP协议发送数据 package com.example.mysocketnet.a02UDPdemo;import java.io.IOException; import java.net.*;public class SendMessageDemo {public static void main(String[] args) throws IOException {//发送数据//1.创建DatagramSocket对象(快递公司)//…

【Linux】线程安全的艺术:解锁互斥量在并发编程中的应用

文章目录 前言&#xff1a;1. 进程线程间的互斥相关背景概念1.1. 操作共享变量会有问题的售票系统代码&#xff1a; 2. 互斥量的接口2.1. 解决方案2.1.1. 使用全局的锁&#xff1a;2.1.2. 使用局部的锁&#xff1a;2.1.3. 封装为RAII风格的加锁和解锁&#xff1a;2.1.4. C 11 中…

Liunx音频

一. echo -e "\a" echo 通过向控制台喇叭设备发送字符来发声&#xff1a; echo -e "\a"&#xff08;这里的 -e 选项允许解释反斜杠转义的字符&#xff0c;而 \a 是一个响铃(bell)字符&#xff09; 二. beep 下载对应的包 yum -y install beep 发声命令 be…

spring cloud 网关服务项目

一、base-server &#xff08;网关服务&#xff09; 可采用gataway 或者 zuul 首先主启动类上添加SpringBootApplication EnableZuulProxy 注解 如果使用nacos作为注册中心和配置中心的话需要再bootstrap.yml文件中配置 针对windows本地测试nacos需要配置环境变量然后使用脚…

YashanDB携手宏杉科技助力国产软件生态发展

近日&#xff0c;深圳计算科学研究院崖山数据库系统YashanDB与宏杉科技系列存储、系列服务器与数据库一体机等多款产品顺利完成兼容性互认证。经严格测试&#xff0c;双方产品完全兼容&#xff0c;稳定运行&#xff0c;共同提供高效、稳定、安全的国产软硬件一体化解决方案&…

后端开发面经系列 -- 中望C++一面面经

中望软件C一面面经 公众号&#xff1a;阿Q技术站 文章目录 中望软件C一面面经1、常见的qt特性&#xff1f;2、多态&#xff1f;动态多态如何实现的&#xff1f;虚表存储在哪里&#xff1f;虚表的数据结构是什么&#xff1f;3、构造函数可以是虚函数吗&#xff1f;4、析构函数…

求最大公约数

#include <bits/stdc.h>using namespace std;int gcd(int a,int b) {return b 0 ? a : gcd(b,a%b); }int main() {cout << gcd(13,3);return 0; } 函数解析&#xff1a; 该函数运用欧几里得公式&#xff1a;a,b的最大公约数等于 b 和a%b的最大公约数&#xff…

神经网络---网络模型的保存、加载

方式1&#xff1a;结构参数 保存 import torch import torchvision from torch import nn from torchvision.models import vgg16, VGG16_Weightsvgg16 torchvision.models.vgg16(weightsVGG16_Weights.DEFAULT)# 保存方式1, 模型解构模型参数 torch.save(vgg16, vgg16_1.pt…

《精通ChatGPT:从入门到大师的Prompt指南》大纲目录

第一部分&#xff1a;入门指南 第1章&#xff1a;认识ChatGPT 1.1 ChatGPT是什么 1.2 ChatGPT的应用领域 1.3 为什么需要了解Prompt 第2章&#xff1a;Prompt的基本概念 2.1 什么是Prompt 2.2 好Prompt的特征 2.3 常见的Prompt类型 第二部分&#xff1a;Prompt设计技巧 第…

Meta Llama 3 文本编码为 token

Meta Llama 3 文本编码为 token flyfish tiktoken 是一个用于 OpenAI 模型的快速 BPE 分词器&#xff0c;这里用在Meta Llama 3上。主要功能包括将文本编码为token&#xff0c;以及将token解码回文本。这个过程通常使用BPE&#xff08;Byte Pair Encoding&#xff09;算法或其…