數字IC學習筆記(二)

數字IC學習筆記(二)


宏定義,異步FIFO, 時鐘來源,復位信號


文章目錄

  • 數字IC學習筆記(二)
  • 1. `define宏定義的使用
  • 2,異步FIFO原理
  • 3,時鐘來源
  • 4,復位
  • 參考資料


1. `define宏定義的使用

  • 宏定義的使用:
`define AAA = 1assign a = b + `AAA
  • 宏定義的用法和parameter參數相同,但宏定義可以統一寫到一個參數文件里,`include進行調用;
`include "abc.v"
  • 宏定義也可以通過判斷編譯時參數的選擇,根據不同的配置來選擇使用對應的宏定義;(例如VERSION1,VERSION2,VERSION3,VERSION4)
`ifdef VERSION1使用版本1的定義
`elsif VERSION2使用版本2的定義
`else VERSION3使用版本3的定義
`end`ifndef VERSION4如果編譯時沒有定義參數VERSION4·undef AAA    取消對AAA的宏定義

2,異步FIFO原理

代碼的讀寫地址,可以理解為FIFO讀寫的次數

always(posedge clk_r or negedge rst_n_r)if(!rst_n_r)beginaddr_w_1d <= 'd0;addr_w_2d <= 'd0;        endelse beginaddr_w_1d <= addr_w;  //addr_w是由fifo寫操作時鐘域clk_w 產生addr_w_2d <= addr_w_1d ; //打2拍消除亞穩態     endassign fifo_empty = addr_w_2d == addr_r;
  • 由于寫地址addr_w,要經過讀操作時鐘clk_r打2拍后才能傳輸到addr_w_2d,所以存在明明FIFO里當前還有數據,但addr_w_2d未及時更新,因此判斷FIFO為空;這種情況成為虛空.
always(posedge clk_w or negedge rst_n_w)if(!rst_n_w)beginaddr_r_1d <= 'd0;addr_r_2d <= 'd0;        endelse beginaddr_r_1d <= addr_r;  //addr_r是由fifo讀操作時鐘域clk_r 產生addr_r_2d <= addr_r_1d ; //打2拍消除亞穩態     endassign fifo_full = (addr_w_2d - addr_r) == FIFO_DEEP; //FIFO_DEEP為FIFO深度
  • 同理,由于讀地址addr_r,要經過寫操作時鐘clk_w打2拍后才能傳輸到addr_r_2d,所以存在明明FIFO里還沒滿,但addr_r_2d未及時更新,因此判斷FIFO為滿;這種情況成為虛滿.

虛滿和虛空會導致異步FIFO提前拉起empty或full信號,但卻保證異步FIFO不會丟失數據

3,時鐘來源

  • 3.1 振蕩器(RC Osillator,RCO)
    • 由電阻和電容組成,通電后產生時鐘信號;
    • 集成在芯片內部,成本較低,精度較差
  • 3.2 晶體/晶振
    • 元器件, 通電后產生時鐘信號;
    • 集成在芯片外部,成本較高,誤差較小
  • 3.3 鎖相環(Phase Locked Loop,PLL)
    • 需要輸出低頻的參考時鐘,生成輸出高頻時鐘
    • 輸入時鐘一般由晶體/晶振或RCO電路提供

4,復位

  • 從通電到時鐘信號逐步穩定,這段時間內芯片不合適工作,因此需要由復位信號將電路復位住;

  • 復位信號(Power On Reset,POR)通常上電時產生,逐漸拉高,升至高電平(1)后,表示時鐘信號穩定,可以開始工作了;

  • 異步復位:隨時可以拉低復位信號進行復位

  • 同步釋放:拉高復位信號時,拉高的操作同步到當前時鐘,防止出現亞穩態。

  • 類似于建立時間和保持時間,復位信號的拉高也有要求。 時鐘clock上升沿后的時間 t 1 t_1 t1?后拉高,復位信號的上升沿和下一個時鐘上升沿的間隔為 t 2 t_2 t2?;要求 t 1 t_1 t1?必須大于recovery time(恢復時間); 要求 t 2 t_2 t2?必須大于removal time(撤銷時間);

recovery time:恢復時間。撤銷復位時,恢復到非復位狀態的電平必須在時鐘有效沿到來之前的一段時間到來,才能保證時鐘能有效恢復到非復位狀態,此段時間為recovery time【1】。

removal time :撤銷時間。撤銷復位時,在時鐘有效沿到來之后復位信號還需要保持的時間為撤銷時間removal time【1】。

參考資料

【1】《數字IC設計入門》白櫟旸
【2】靜態時序分析之恢復時間recovery time和撤銷時間removal time

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

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

相關文章

日志輸出功能

當程序運行出現問題時&#xff0c;日志記錄是一種非常有用的工具&#xff0c;它可以幫助我們追蹤和定位問題。在 MicroPython 中&#xff0c;可以使用 log 模塊來記錄程序運行中的信息。本文將介紹 log 模塊的使用方法和常見功能。 日志級別 log.DEBUG 常量&#xff0c;用來…

【JVM】- 類加載與字節碼結構1

類文件結構 ClassFile {u4 magic;u2 minor_version;u2 major_version;u2 constant_pool_count;cp_info constant_pool[constant_pool_count-1];u2 access_flags;u2 this_class;u2 …

Android及Harmonyos實現圖片進度顯示效果

鴻蒙Harmonyos實現&#xff0c;使用ImageKnife自定義transform來實現圖片進度效果 import { Context } from ohos.abilityAccessCtrl; import { image } from kit.ImageKit; import { drawing } from kit.ArkGraphics2D; import { GrayScaleTransformation, PixelMapTransform…

linux 中的自動化之systemd

linux | 自動化之systemd linux 中的自動化之systemd 學習總是循序漸進的。 linux 中程序的自動化&#xff0c;包括早期手動啟動&#xff0c;查看啟動后的日志、分析啟動情況&#xff0c;再到后面封裝腳本(大致要求啟動后檢查是否掛了&#xff0c;掛了拉起&#xff0c;沒掛跳過…

【編譯工具】CodeRider 2.0:馭碼 CodeRider 2.0 全流程智能研發協作平臺深度技術測評報告

目錄 前言&#xff1a;CodeRider 2.0 簡介 &#xff08;1&#xff09;核心功能 &#xff08;2&#xff09;適用場景 &#xff08;3&#xff09;優勢 一、產品概述與技術架構 &#xff08;1&#xff09;產品定位與核心價值 &#xff08;2&#xff09;技術架構解析 &…

抓包 TCP 四次揮手報文

文章目錄 抓包 TCP 三次握手報文一、第一次揮手二、第二次揮手三、第三次揮手四、第四次揮手 抓包 TCP 三次握手報文 抓包 TCP 三次握手報文 一、第一次揮手 二、第二次揮手 三、第三次揮手 四、第四次揮手

KMP(Kotlin Multiplatform)發布Web版本亂碼

一、背景 最近用KMP嘗試運行在Android、iOS、desktop都成功了&#xff0c;網絡數據訪問也正常。 可是當運行wasmJs的時候遇到了2個較大的問題。 中文字體出現亂碼。 出現了跨域問題。 首先貼一下每個平臺的運行截圖&#xff1a; Android iOS Desktop 二、問題 當web跑起…

一個應用程序或移動網站項目提供最佳UI解決方案

一個應用程序或移動網站項目提供最佳UI解決方案 此套件是用大量的愛和辛勤工作制作的&#xff0c;為您的下一個應用程序或移動網站項目提供最佳解決方案。120個完全可編輯的界面&#xff0c;分為10個類別和2種文件格式&#xff0c;Photoshop和AI。簡單易用的結構將允許您以所…

Android studio打包生成jar包文件

Android studio打包生成jar包文件 一 項目配置1.修改 app/build.gradle2.修改 AndroidManifest.xml 二 打 Jar 包1.修改 app/build.gradle2.編譯生成 Jar 包 一 項目配置 1.修改 app/build.gradle 將com.android.application改成com.android.library注釋掉applicationId 2.…

JAVA類加載機制(jdk8)

三句話總結JDK8的類加載機制&#xff1a; 類緩存&#xff1a;每個類加載器對他加載過的類都有一個緩存。雙親委派&#xff1a;向上委托查找&#xff0c;向下委托加載。沙箱保護機制&#xff1a;不允許應用程序加載JDK內部的系統類。 JDK8的類加載體系 類加載器的核心方法 //…

更進一步深入的研究ObRegisterCallBack

引入 我們如果想hook對象的回調,在上篇文章里我們已經知道了對象回調函數存在一個列表里面&#xff0c;我們通過dt可以看見&#xff0c;這里他是一個LIST_ENTRY結構&#xff0c;但是實際調用的時候&#xff0c;這樣是行不通的&#xff0c;說明它結構不對 0: kd> dt _OBJEC…

Nginx-3 Nginx 的負載均衡策略

Nginx-3 Nginx 的負載均衡策略 Nginx 的負載均衡其實就是指將請求按照一定的策略轉發給服務集群中的一臺&#xff0c;提高了服務集群的可用性&#xff0c;解決數據流量過大、網絡負荷過重的問題。 AKF 擴展立方體 分為 3 個方向負載&#xff1a; x 軸&#xff1a;增加實例數…

Wiiu平臺RetroArch全能模擬器美化整合包v1.18

這款WiiU平臺RetroArch全能模擬器美化整合包v1.18的亮點包括&#xff1a; 1. 18款平臺完美兼容&#xff1a;無論你是喜歡NES時代的經典游戲&#xff0c;還是鐘愛SNES、GBA等平臺的大作&#xff0c;這款整合包都能滿足你的需求&#xff0c;讓你盡情暢玩游戲。 2. 三款自制主題&a…

MyBatis原理

Mybatis執行過程為&#xff1a;接口代理->sqlSession會話->executor執行器->JDBC操作 一、接口代理 Mybatis根據Mapper接口&#xff0c;動態生成相應實現類 二、SqlSession介紹 MyBatis核心對象SqlSession介紹 - MyBatis中文官網 三、Executor執行器介紹 精通My…

升級內核4.19-腳本

#bash cd /root yum remove -y kernel-tools-3.10.0-1160.el7.x86_64 yum remove -y kernel-tools-libs-3.10.0-1160.el7.x86_64tar -xvf rhel-7-amd64-rpms.tar.gz cd /root/rhel-7-amd64-rpms #安裝依賴、包括socat&conntrack yum localinstall -y *.rpm --skip-broken#升…

全面理解 JVM 垃圾回收(GC)機制:原理、流程與實踐

JVM 的 GC&#xff08;Garbage Collection&#xff09;機制是 Java 程序性能的關鍵支柱。本文將從堆內存布局、回收原理、GC 算法、流程細節、并發收集器機制等維度&#xff0c;系統講清楚 GC 的底層運作原理和優化思路。 一、JVM 堆內存結構 Java 堆是 GC 管理的主要區域&am…

runas命令讓其他用戶以管理員權限運行程序

RUNAS 用法: RUNAS使用示例&#xff1a; runas /noprofile /user:mymachine\administrator cmd #本機Administrator管理員身份執行CMD&#xff0c;/noprofile為不加載該用戶的配置信息。runas /profile /env /user:mydomain\admin “mmc %windir%\system32\dsa.msc” #本機上…

實戰指南:部署MinerU多模態文檔解析API與Dify深度集成(實現解析PDF/JPG/PNG)

MinerU web api部署 MinerU 能夠將包含圖片、公式、表格等元素的多模態 PDF、PPT、DOCX 等文檔轉化為易于分析的 Markdown 格式。 克隆 MinerU 的倉庫 git clone https://github.com/opendatalab/MinerU.gitcd 到 projects/web-api cd projects/web-api在可以科學上網的情況下…

向量外積與秩1矩陣的關系

向量外積與秩1矩陣的關系 flyfish 向量外積是構造秩1矩陣的基本工具&#xff0c;其本質是用兩組向量的線性組合刻畫矩陣的行和列相關性&#xff1b;任意秩1矩陣必可表示為外積&#xff0c;而低秩矩陣&#xff08;秩 k k k&#xff09;可分解為 k k k 個外積矩陣的和&#x…