【chisel】如何用chisel寫一個上升沿檢測程序

自定義上升沿檢測

class RisingEdgeDetector extends Module {val io = IO(new Bundle {val inSig = Input(Bool())val outSig = Output(Bool())val clock = Input(Clock())})// 定義 risingedge 函數def risingedge(x: Bool): Bool = x && !RegNext(x)// 使用 risingedge 函數檢測上升沿io.outSig := risingedge(io.inSig)// Chisel 會為 RegNext 自動生成一個寄存器來保存 inSig 的值// 并在下一個時鐘周期提供這個值
}

實現主程序

package helloimport chisel3.{Clock, _}
class RisingEdgeDetector extends Module {val io = IO(new Bundle {val inSig = Input(Bool())val outSig = Output(Bool())})// 定義 risingedge 函數def risingedge(x: Bool): Bool = x && !RegNext(x)// 使用 risingedge 函數檢測上升沿io.outSig := risingedge(io.inSig)// Chisel 會為 RegNext 自動生成一個寄存器來保存 inSig 的值// 并在下一個時鐘周期提供這個值
}class risingedge extends Module {val io = IO(new Bundle {val detectedRisingEdge  = Output(Bool()) // IO names will be the sameval someBoolSignal  = Input(Bool())  // (without 'io_' in prefix)})// 創建 RisingEdgeDetector 模塊的實例val detector = Module(new RisingEdgeDetector)// 連接輸入和輸出detector.io.inSig := io.someBoolSignal // 這里的 someBoolSignal 應該是你的設計中的一個 Bool 類型的信號io.detectedRisingEdge := detector.io.outSig // 這將是一個 Bool 類型的信號,表示上升沿的檢測結果
}
object risingedgeMain extends App {(new chisel3.stage.ChiselStage).emitVerilog(new risingedge(), Array("--target-dir", "generated"))
}

運行以上chisel,生成Verilog如下

module RisingEdgeDetector(input   clock,input   io_inSig,output  io_outSig
);reg  _T; // @[risingedge.scala 11:48]wire  _T_1 = ~_T; // @[risingedge.scala 11:40]assign io_outSig = io_inSig & _T_1; // @[risingedge.scala 14:13]always @(posedge clock) begin_T <= io_inSig;end
endmodulemodule risingedge(input   clock,input   reset,output  io_detectedRisingEdge,input   io_someBoolSignal
);wire  detector_clock; // @[risingedge.scala 26:24]wire  detector_io_inSig; // @[risingedge.scala 26:24]wire  detector_io_outSig; // @[risingedge.scala 26:24]RisingEdgeDetector detector ( // @[risingedge.scala 26:24].clock(detector_clock),.io_inSig(detector_io_inSig),.io_outSig(detector_io_outSig));assign io_detectedRisingEdge = detector_io_outSig; // @[risingedge.scala 29:25]assign detector_clock = clock;assign detector_io_inSig = io_someBoolSignal; // @[risingedge.scala 28:21]
endmodule

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

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

相關文章

代碼簽名證書的重要作用及申請途徑

代碼簽名技術是一種確保軟件完整性和來源可信度的安全措施。它通過數字證書和加密算法為軟件代碼或可執行文件加上一個“簽名”&#xff0c;以此驗證軟件未被篡改&#xff0c;并確認其來源于可信賴的開發者。 一、代碼簽名證書的重要作用 1、提高下載率和安裝率&#xff1a;用…

Linux提權--Rsync(未授權訪問) Docker 組掛載

免責聲明:本文僅做技術學習與交流... 目錄 Rsync&#xff08;未授權訪問&#xff09; 介紹: 靶場及過程: 提權過程&#xff1a; Docker 組掛載 原理: 復現&#xff1a; 利用&#xff1a; 具體操作: 1-確定是否有docker服務 2-查看用戶是否在docker組里面 3-執行命…

包管理工具npm、cnpm、yarn、NVM

文章目錄 npmnpm基本使用npm搜索包生產環境與開發環境開發依賴與生產依賴全局安裝環境變量Path安裝包依賴安裝指定版本的包、刪除依賴配置命令別名 cnpm安裝操作命令&#xff1a;配置 yarnyarn安裝及常用命令yarn 配置淘寶鏡像 NVM使用常用命令 擴展內容npm和yarn的選擇npm發布…

USB轉串口芯片CH341、CH372、CH374、CH375等的電路及 PCB 設計的重要注意事項

前言 USB芯片的電路和PCB設計參考及注意事項&#xff0c;含CH34X、CH37X等系列芯片的電路設計說明。涉及工作穩定性和抗干擾以及USB-HOST帶電熱插拔。基于 USB 芯片的電路及 PCB 設計的重要注意事項 版本&#xff1a;2E 1、摘要 本文主要針對以下因電路及 PCB 設計不佳而引起…

文檔解析與向量化技術加速多模態大模型訓練與應用

前言 隨著人工智能技術的不斷發展&#xff0c;多模態大模型作為一種新型的機器學習技術&#xff0c;逐漸成為人工智能領域的熱點話題。多模態大模型能夠處理多種媒體數據&#xff0c;如文本、圖像、音頻和視頻等&#xff0c;并通過學習不同模態之間的關聯&#xff0c;實現更加…

Q1咖啡機行業線上市場(京東天貓淘寶)銷售數據分析

回顧疫情那幾年&#xff0c;咖啡機市場可能是大環境帶動下爆發飛速的品類之一。在整體廚房小家電大盤銷售不佳的情況下&#xff0c; 咖啡機市場的表現是亮眼的。而今年Q1季度&#xff0c;在廚衛小電市場整體低迷的狀態下&#xff0c;咖啡機市場依然保持著穩中向好的趨勢。 根據…

Windows 命令修改時間

Windows 命令修改時間 運行w32tm /resync&#xff0c; 顯示“此計算機沒有重新同步&#xff0c;因為沒有可用的時間數據”&#xff0c; 運行w32tm /query /source &#xff0c; 顯示“Local CMOS Clock”&#xff0c;表示正在使用的是主板上的時間&#xff0c;沒有使用外部…

樹莓派|連接CSI接口攝像頭+opencv

CSI&#xff08;Camera Serial Interface&#xff09;接口攝像頭是一種常見的嵌入式系統或移動設備中使用的攝像頭接口。它通常用于與處理器或圖像傳感器進行直接連接&#xff0c;實現高速的圖像數據傳輸。 CSI接口攝像頭具有以下特點&#xff1a; 高速傳輸&#xff1a;CSI接口…

Spring MVC(五) 文件上傳

1 單文件上傳 在程序開發中&#xff0c;有時候需要上傳一些文件。我們在學習Servlet的時候&#xff0c;也做過文件上傳的操作&#xff0c;只不過基于Servlet的文件上傳操作起來過于復雜&#xff0c;因此所有的MVC框架都提供了自己的文件上傳操作&#xff0c;基本上都是基于File…

UE5 FARFilter篩選器使用方法

UE5 查找資源時可以用FARFilter進行篩選&#xff0c;之前可以用ClassNames進行篩選&#xff0c;但是5.1之后就棄用這個屬性改成ClassPaths屬性 構造一個FTopLevelAssetPath對象需要兩個FName參數&#xff0c;但是沒找到應該傳什么 查找官方文檔&#xff0c;明顯是錯誤的&#x…

AAAI: Generalized Singular Value Thresholding論文閱讀

1 Abstract 這篇論文研究了與非凸函數g相關的廣義奇異值閾值(Generalized Singular Value Thresholding, GSVT)算子Proxσ g ()&#xff0c;定義為 P r o x g σ ( B ) arg ? min ? X ∑ i 1 m g ( σ i ( X ) ) 1 2 ∥ X ? B ∥ F 2 , \mathbf{Prox}_{g}^{\sigma}(\mat…

Python學習-Numpy-1

學習參考鏈接&#xff1a; Numpy的介紹和安裝和性能對比_嗶哩嗶哩_bilibili Numpy相對List的優勢和特點 1、Numpy的數據結構是array數組 2、相較List的性能更好&#xff0c;并且包含大量的便捷的函數&#xff0c;以及數組中元數據的信息 3、array的數據類型必須一致&#xff0c…

實驗名稱:TCP 連接管理

目錄 實驗目的&#xff1a; 實驗原理&#xff1a; 實驗步驟&#xff1a; 1) 啟動WireShark&#xff0c;設置抓包狀態 2) 訪問指定服務器 &#xff0c;通過Wireshark抓取通信數據報文 3) 分析TCP連接建立的三次握手和連接釋放的四次握手過程 原始數據記錄&#xff1a; 實…

微信小程序生命周期揭秘:從啟動到消亡的全過程剖析【附代碼】

微信小程序生命周期揭秘&#xff1a;從啟動到消亡的全過程剖析 一、小程序生命周期概覽核心生命周期函數 二、深入理解生命周期回調2.1 onLoad: 首次亮相的準備2.2 onShow: 重登舞臺的瞬間2.3 onReady: 舞臺就緒&#xff0c;靜待表演2.4 onHide & onUnload: 謹慎離場&#…

【數據結構陳越版筆記】第1章 概述【習題】

1. 碎碎念 我這答案做的可能不對&#xff0c;如果不對&#xff0c;歡迎大家指出錯誤 2. 答案 1.1 判斷正誤 &#xff08;1&#xff09; N ( log N ) 2 N(\text{log}N)^{2} N(logN)2是 O ( N 2 ) O(N^{2}) O(N2)的。 &#xff08;2&#xff09; N 2 ( log N ) 2 N^{2}(\text…

藍橋杯備戰12.階乘

P5739 【深基7.例7】計算階乘 - 洛谷 | 計算機科學教育新生態 (luogu.com.cn) 遞歸 #include<bits/stdc.h> #define endl \n #define int long long using namespace std; const int N 2e710,M 1e310; double a[N]; int jie(int n) {if(n1)return 1;else return n*ji…

HTML/CSS3

1.CSS CSS的作用在于在HTML的基礎上(決定網頁的內容和結構)對網頁進行排版布局 對網頁中的元素提供樣式 使得網頁顯得更加精美CSS全稱是cascading style sheets 即層疊樣式表CSS樣式的書寫格式&#xff1a;樣式名: 樣式值 例如&#xff1a;color: red建議:之后進行空格 CSS樣式…

AXI Interconnect IP核的連接模式簡介

AXI Interconnect IP核內部包含一個 Crossbar IP核&#xff0c;用于在 Slave Interfaces&#xff08;SI&#xff09;和 Master Interfaces&#xff08;MI&#xff09;之間路由傳輸。在連接 SI 或 MI 到 Crossbar 的每條路徑上&#xff0c;可以選擇性地添加一系列 AXI Infrastru…

2024年安全員C證報名條件

安全員c證&#xff0c;又稱建筑施工企業三類人員c證&#xff0c;持證者一般是建筑施工企業專職安全生產管理的專業人員。安全員c證報名條件是: 1、職業道德良好&#xff0c;身體健康&#xff0c;年齡不超過60周歲(法定代表人除外); 2、具有中專及以上文化程度或初級及以上技術…

WMS系統批次管理概述

為了提高倉庫運作效率&#xff0c;降低庫存成本&#xff0c;越來越多的企業開始引入WMS倉庫管理系統&#xff0c;WMS系統批次管理作為其核心功能之一&#xff0c;對于實現精細化、智能化的倉儲管理具有重要意義。 二、WMS系統批次管理概述 WMS系統批次管理是指通過對倉庫中的貨…