「Verilog學習筆記」不重疊序列檢測

專欄前言

本專欄的內容主要是記錄本人學習Verilog過程中的一些知識點,刷題網站用的是牛客網

????????題目要求檢測a的序列,a為單bit輸入,每個時刻可能具有不同的值, 當連續的六個輸入值符合目標序列表示序列匹配,當六個輸入值的一個或多個不符合則表示序列不匹配。

????????值得注意的是:題目要求以六位數據為一組,不同于常見的序列檢測,要求檢測重復序列,在畫狀態轉移圖時要注意,例如第一位不匹配,不應該返回到初始狀態去進行第一位的判斷,因為此時的輸入是第二位數值,題目要求不對該數值做判斷,而需要等到六個時鐘周期之后,即第七位數據(第二組數值的第一位)再判斷是否匹配目標序列的第一位。

`timescale 1ns/1ns
module sequence_detect(input clk,input rst_n,input data,output reg match,output reg not_match);// 011100reg [3:0] pstate, nstate ; // 當前狀態、下一狀態parameter idle = 4'b0,s1 = 4'd1,s2 = 4'd2,s3 = 4'd3,s4 = 4'd4,s5 = 4'd5,s6 = 4'd6,sf1 = 4'd7, sf2 = 4'd8,sf3 = 4'd9, sf4 = 4'd10,sf5 = 4'd11, sf6 = 4'd12 ;always @ (posedge clk or negedge rst_n) begin if (~rst_n) pstate <= idle ; else pstate <= nstate ; endalways @ (pstate or data) begin // 對應狀態轉移圖case (pstate) idle : if (data == 0) nstate = s1 ; //0else nstate = sf1 ; s1 : nstate = data ? s2 : sf2 ; //1s2 : nstate = data ? s3 : sf3 ; //1s3 : nstate = data ? s4 : sf4 ; //1s4 : nstate = data ? sf5 : s5 ; //0s5 : nstate = data ? sf6 : s6 ; //0s6 : nstate = data ? sf1 : s1 ; sf1 : nstate = sf2 ;sf2 : nstate = sf3 ;sf3 : nstate = sf4 ;sf4 : nstate = sf5 ;sf5 : nstate = sf6 ;sf6 : nstate = data ? sf1 : s1 ;default :nstate = idle ; endcaseendalways @ (pstate or data or rst_n) begin  // 輸出if (!rst_n) begin match <= 1'b0 ; not_match <= 1'b0 ; endelse if (pstate == s6) begin match <= 1'b1 ;not_match <= 1'b0 ; endelse if (pstate == sf6) begin match <= 1'b0 ; not_match <= 1'b1 ; endelse begin match <= 1'b0 ; not_match <= 1'b0 ; endendendmodule

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/165540.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/165540.shtml
英文地址,請注明出處:http://en.pswp.cn/news/165540.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

免費接口集合讓開發更簡單

企業基本信息(含聯系方式)&#xff1a;通過公司名稱/公司ID/注冊號或社會統一信用代碼獲取企業基本信息和企業聯系方式&#xff0c;包括公司名稱或ID、類型、成立日期、電話、郵箱、網址等字段的詳細信息。企業基本信息&#xff1a;通過公司名稱/公司ID/注冊號或社會統一信用代…

Redisson分布式鎖源碼解析、集群環境存在的問題

一、使用Redisson步驟 Redisson各個鎖基本所用Redisson各個鎖基本所用Redisson各個鎖基本所用 二、源碼解析 lock鎖 1&#xff09; 基本思想&#xff1a; lock有兩種方法 一種是空參 另一種是帶參 * 空參方法&#xff1a;會默認調用看門狗的過期時間30*1000&…

內網穿透的應用-如何在本地安裝Flask,以及將其web界面發布到公網上并進行遠程訪問

輕量級web開發框架&#xff1a;Flask本地部署及實現公網訪問界面 文章目錄 輕量級web開發框架&#xff1a;Flask本地部署及實現公網訪問界面前言1. 安裝部署Flask2. 安裝Cpolar內網穿透3. 配置Flask的web界面公網訪問地址4. 公網遠程訪問Flask的web界面 前言 本篇文章講解如何…

linux環境下samba服務器的配置

linux服務器怎么創建用戶 在Linux服務器上&#xff0c;可以使用以下步驟創建用戶&#xff1a; 使用adduser命令創建新用戶&#xff1a; sudo adduser username將 username 替換為你要創建的用戶名。這個命令會提示你輸入新用戶的密碼以及其他相關信息。 如果需要為新用戶設…

qml PathPercent使用介紹

PathPercent 是一個QML類型,它表示 Path 上的一個百分比位置。這個類型通常在 PathAnimation 或 PathInterpolator 中使用,以便在路徑上產生一個特定的位置。它提供了一種方式來表示在 Path 元素上的某個點。通過 PathPercent,你可以指定一個百分比,來表示沿著路徑的位置,…

『亞馬遜云科技產品測評』活動征文|通過Lightsail搭建個人筆記

提示&#xff1a;授權聲明&#xff1a;本篇文章授權活動官方亞馬遜云科技文章轉發、改寫權&#xff0c;包括不限于在 Developer Centre, 知乎&#xff0c;自媒體平臺&#xff0c;第三方開發者媒體等亞馬遜云科技官方渠道 文章目錄 前言實踐知識儲備Lightsail介紹Leanote介紹實踐…

系統架構設計: 21 論敏捷軟件開發方法及其應用

論敏捷軟件開發方法及其應用 請圍繞“敏捷軟件開發方法及其應用”論題,依次從以下三個方面進行論述。 ①簡述你所參與開發的運用了敏捷技術的項目,以及你所擔任的工作; ②分析并討論敏捷<

VSCode插件koroFileHeader的使用。

文章目錄 前言一、koroFileHeader是什么&#xff1f;二、使用步驟1.安裝1.配置2.食用 前言 今天的天氣還不錯&#xff0c;真是金風玉露一相逢&#xff0c;便勝卻人間無數&#xff0c;寫篇博客玩玩&#xff0c;主題&#xff1a;注釋。注釋的本質就是對代碼的解釋和說明&#xf…

nginx 配置靜態緩存全教程 (以及靜態緩存文件沒有生成)

一、第一步定義一個緩存目錄設置目錄結構 在 http 模塊下定義(keys_zone 緩存區名&#xff1a;后面是緩存區大小 inactive 不活躍的文件多久清理 max_size 緩存區所占磁盤的上限 use_temp_path 默認關閉&#xff08;有需要自己百度&#xff09;) proxy_cache_path /path/your…

16 Go的反射

概述 在上一節的內容中&#xff0c;我們介紹了Go的并發&#xff0c;包括&#xff1a;Goroutines、Channels、WaitGroups、Mutex、Select等。在本節中&#xff0c;我們將介紹Go的反射。Go語言中的反射是一種在運行時檢查類型信息并操作對象的能力&#xff0c;通過反射&#xff0…

STM32_6(TIM)

TIM定時器&#xff08;第一部分&#xff09; TIM&#xff08;Timer&#xff09;定時器定時器可以對輸入的時鐘進行計數&#xff0c;并在計數值達到設定值時觸發中斷16位計數器、預分頻器、自動重裝寄存器的時基單元&#xff0c;在72MHz計數時鐘下可以實現最大59.65s的定時不僅…

在游戲開發中,實時渲染和離線渲染對于游戲平衡的影響有哪些?

實時渲染和離線渲染對游戲平衡有那些影響呢&#xff1f;在游戲開發中&#xff0c;渲染方式的選擇對游戲的整體表現和玩家體驗有著至關重要的作用。那么&#xff0c;實時渲染和離線渲染究竟有哪些利弊呢&#xff1f; 一、實時渲染 實時渲染&#xff0c;顧名思義&#xff0c;是…

Ubuntu 1.84.2Visual Studio Code 下載配置與vscode查看內存Hex Editor插件,簡單易懂

目錄 前言 一 首先我為啥要重裝Vs Code呢&#xff1f; 二 下載1.84.2Visual Studio Code 三 配置Vscode終端字體 四 安裝插件 前言 這是一篇將老版本的VsCode下載至最新版的博文&#xff0c;從下載到調試全篇 一 首先我為啥要重裝Vs Code呢&#xff1f; 因為我想安裝這個…

網絡安全深入學習第九課——本機信息收集

文章目錄 一、Windows基本信息收集1、查看當前權限2、查看指定用戶的詳細信息3、查看用戶SID4、查看網卡配置5、查看服務器版本\補丁等6、查看系統架構7、查看安裝的軟件及版本8、查看本機服務信息9、查詢進程信息和列表10、查看啟動程序信息11、查看計劃任務12、查看主機開機時…

1、postman的安裝及使用

一、安裝、登錄 1.安裝 下載地址 2.注冊登錄&#xff08;保存云服務進度&#xff09; 二、界面介紹 三、執行接口測試頁面 請求頁簽&#xff1a; 1、params&#xff1a;當是get請求時&#xff0c;通過params傳參 2、authorization&#xff1a;鑒權 3、headers&#xff1…

大數據-之LibrA數據庫系統告警處理(ALM-37000 MPPDBServer數據目錄或Redo目錄缺失)

告警解釋 當出現如下情況時&#xff0c;產生該告警&#xff1a; 數據實例數據目錄被刪除。數據實例Redo目錄&#xff08;pg_xlog&#xff09;被刪除。 告警屬性 告警ID 告警級別 可自動清除 37000 嚴重 是 告警參數 參數名稱 參數含義 ServiceName 產生告警的服務…

OTP語音芯片WTN6系列:多樣化選擇,滿足各種產品應用需求

隨著科技的快速發展&#xff0c;語音芯片已經成為了智能產品中不可或缺的核心組件。在這個領域中&#xff0c;唯創知音OTP語音芯片WTN6系列以其出色的性能和多樣化的選擇&#xff0c;贏得了廣大開發者的青睞。本文將詳細介紹WTN6系列的幾個重要型號及其特點&#xff0c;并為讀者…

idea 26 個天花板技巧

1、 查看代碼歷史版本&#xff1b;2、 調整idea的虛擬內存&#xff1a;&#xff1b;3、 idea設置成eclipse的快捷鍵&#xff1b;4、 設置提示詞忽略大小寫&#xff1b;5、 關閉代碼檢查&#xff1b;6、 設置文檔注釋模板&#xff1b;7、 顯示方法分隔符&#xff1b;8、 設置多行…

DAOS低時延與高性能RDMA網絡

什么是RDMA RDMA&#xff08;Remote Direct Memory Access&#xff09;遠程直接內存訪問是一種技術&#xff0c;它使兩臺聯網的計算機能夠在主內存中交換數據&#xff0c;而無需依賴任何一臺計算機的處理器、緩存或操作系統。與基于本地的直接內存訪問 ( DMA ) 一樣&#xff0c…

C++ Qt屬性Property使用介紹

文章目錄 C++ 普通類使用Qt屬性Qt窗口類使用屬性自定義控件使用屬性在 Qt 中,屬性(Property)系統提供了一種機制來定義對象的屬性。這些屬性可以在運行時動態地查詢和修改,而且可以通過設計師工具進行可視化編輯。Qt 屬性系統還支持屬性綁定、動畫和其他高級特性。 屬性在…