SystemVerilog語法之內建數據類型

簡介:SystemVerilog引進了一些新的數據類型,具有以下的優點:(1)雙狀態數據類型,更好的性能,更低的內存消耗;(2)隊列、動態和關聯數組,減少內存消耗,自帶搜索和分類功能。(3)類和結構:支持抽象數據結構。(4)聯合和合并結構:允許對同一數據有多種視圖。(5)字符串:支持內建的字符序列。(6)枚舉類型:方便代碼編寫,增加可讀性。

1.1內建數據類型

Verilog-1995有兩種基本數據類型:變量和線網。變量可以是reg,integer,time與real。其中integer是32比特的有符號數。所有的存儲都是靜態的,意味著所有變量在整個仿真過程中都是存活的,子程序不能通過堆棧來保存形式參數和局部變量。Verilog-2001允許使用者在靜態和動態存儲之間切換,例如堆棧。

1.1.1邏輯類型(logic)

SystemVerilog對經典的reg數據類型進行改進,使得它除了作為一個變量以外,還可以被連續賦值,門單元和模塊所驅動,命名為logic。任何使用線網的地方都可以使用logic類型,但是要求logic類型不能有多個結構性驅動,例如雙向總線,必須使用wire類型。

module logic_data_type(input logic rst_h);parameter CYCLE = 20;logic q,q_l,d,clk,rst_l;initial beginclk = 0;forever #(CYCLE/2) clk = ~clk;endassign rst_l = ~rst_h;not n1(q_1, q);my_dff(q,d,clk,rst_l);endendmodule
1.1.2雙狀態數據類型

SystemVerilog引入的雙狀態數據類型有利于提高仿真器的性能并減少內存的使用量。最簡單的雙狀態數據類型是bit,它是無符號的。雙狀態數據類型:bit,int,byte,shortint,longint,real。四狀態數據類型:integer,time。無符號數據類型:bit,time。有符號數據類型:int,byte,int,integer。可以使用unsigned或者signed改變數據的符號類型。

注意:在把雙狀態變量連接到被測設計時,尤其時被測設計的輸出時務必要小心,如果被測設計試圖產生X或Z,這些值會被轉換為0或1.使用$isunknown操作符,可以在表達式任意位出現X或Z時返回1.

?if ($isunknown(iport) == 1) begin$display("@%0t:4-state value detected on iport %b", $time, iport);end

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

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

相關文章

藍光三維掃描技術:高效精密測量相機鏡頭底座注塑件

如今越來越多的攝影愛好者、vlog拍攝者使用數碼相機以及無人機,隨時隨地記錄生活中的每一刻美好瞬間,對相機設備的要求也不斷提高。 — 案例背景 — 相機鏡頭底座涉及鏡頭裝置可靠、螺絲位置度連接以及殼體組裝,鏡頭底座注塑件生產廠商&…

【前端】【面試】【業務場景】前端如何獲取并生成設備唯一標識

? 總結 問題:前端如何獲取并生成設備唯一標識? 核心要點:瀏覽器原生信息有限,但通過組合多個維度可生成設備指紋(Device Fingerprint),用于唯一標識設備。 常見方式: 瀏覽器信息&…

極刻AI搜v1.0 問一次問題 AI工具一起答

軟件名:極刻AI搜 版本:v1.0 功能:囊括了互聯網上比較好用的一些支持”搜索“的網站或者工具 開發平臺:nodepythonweb 分類有: AI搜索(支持智能問答的AI搜索引擎) 常規搜索:&#xff…

《2025最新Java面試題全解析:從基礎到高并發架構設計》

25年Java開發者面試中最常考察的100道面試題,涵蓋Java基礎、JVM、多線程、Spring框架、分布式系統等核心知識點,并結合大廠真實面試案例進行深度解析,助你順利通過技術面試。 一、Java基礎篇(高頻15問) 1. HashMap底層…

[c語言日寄]免費文檔生成器——Doxygen在c語言程序中的使用

【作者主頁】siy2333 【專欄介紹】?c語言日寄?:這是一個專注于C語言刷題的專欄,精選題目,搭配詳細題解、拓展算法。從基礎語法到復雜算法,題目涉及的知識點全面覆蓋,助力你系統提升。無論你是初學者,還是…

51c嵌入式~單片機~合集5~DMA

我自己的原文哦~ https://blog.51cto.com/whaosoft/12940885 一、DMA DMA,全稱Direct Memory Access,即直接存儲器訪問。 DMA傳輸將數據從一個地址空間復制到另一個地址空間,提供在外設和存儲器之間或者存儲器和存儲器之間的高速數據傳輸…

Linux隨記(十七)

一、綜合報錯:fork: Cannot allocatte memory 和 modues is unknwon 和 pam_limits(crond:session) : unknwon limit item ‘noproc’ 1.1 fork: Cannot allocatte memory 處理 - 隨記 排查時間2025年4月。 環境描述: 2014年左右的服務器,…

支持mingw g++14.2 的c++23 功能print的vscode tasks.json生成調試

在mingw14.2版本中, print庫的功能默認沒有開啟, 生成可執行文件的tasks.json里要顯式加-lstdcexp, 注意放置順序. tasks.json (支持mingw g14.2 c23的print ) {"version": "2.0.0","tasks": [{"type": "cppbuild","…

賦能能源 | 智慧數據,構建更高效智能的儲能管理系統

行業背景 隨著新能源產業的快速發展,大規模儲能系統在電力調峰、調頻及可再生能源消納等領域的重要性日益凸顯。 儲能電站作為核心基礎設施,其能量管理系統(EMS)需要處理海量實時數據,包括電池狀態、功率變化、環境監…

使用 Flutter 遇坑小計

前言 首先, 谷哥很貼心地為國內用戶準備了一份使用手冊 不過很遺憾 就算你照著它的手冊來了, 還是會在后續使用中遇到其它的坑 今天我踩了, 保不齊明天就是其他人(lol) running gradle task ‘assembledebug’ stuck 首先去確定下當下Android Studio(或者說你目前的Flutter項…

鏈表與文件

鏈表 單鏈表 1.鏈表的初始化 typedef struct node {char name[100];int number;struct node *next; }Node,*LinkList;}Node;2.鏈表的初始化函數(Initlist) LinkList InitList() {LinkList head;head(Node*)malloc(sizeof(Node));head->nextNULL;return head; }3.建立鏈…

uniapp打ios包

uniapp在windows電腦下申請證書并打包上架 前言 該開發筆記記錄了在window系統下,在蘋果開發者網站生成不同證書,進行uniapp打包調試和上線發布,對window用戶友好 注:蘋果打包涉及到兩種證書:開發證書 和 分發證書 …

OpenCV 圖形API(48)顏色空間轉換-----將 LUV 顏色空間的圖像數據轉換為 BGR 顏色空間函數LUV2BGR()

操作系統:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 編程語言:C11 算法描述 將圖像從LUV顏色空間轉換為BGR顏色空間。 該函數將輸入圖像從LUV顏色空間轉換為BGR。B、G和R通道值的常規范圍是0到255。 輸出圖像必須是8位無符…

HOW MUCH POSITION INFORMATION DO CONVOLUTIONAL NEURAL NETWORKS ENCODE?

1. 動機: 卷積神經網絡中的卷積操作實際上是一個局部的操作,這樣的話就會使得它雖然知道自己看的是什么,但是卻不清楚他在圖像中的位置信息,但是位置信息實際上是很有用的,因此CNN可能潛在的學習到了如何去編碼這種位置信息。所以這篇論文就是為了研究這種位置信息是如何在…

56、如何快速讓?個盒??平垂直居中

在網頁開發中&#xff0c;有多種方式能讓一個盒子實現水平垂直居中。下面為你介紹幾種常見且快速的方法。 1. 使用 Flexbox 布局 Flexbox 是一種非常便捷的布局模型&#xff0c;能夠輕松實現元素的水平和垂直居中。 html <!DOCTYPE html> <html lang"en"&…

RAG應用過程監控系統選型:LangFuse

Langfuse 是一個開源的大語言模型&#xff08;LLM&#xff09;工程平臺&#xff0c;旨在協助團隊構建、調試和改進由人工智能驅動的應用程序。憑借其全面的工具套件&#xff0c;Langfuse 使開發者能夠深入洞察其 LLM 應用程序&#xff0c;并優化性能。 Stars 數10,522Forks 數9…

Java+nanomsg快速實現去broker的數據通信

先說一下nanomsgJava需要做什么&#xff1a; 1、nanomsg的so文件的制作與放置路徑 2、Java代碼引入nanomsg的依賴 3、支持Socket參數的調節&#xff08;包括ipv4/ipv6的網絡支持&#xff09; 在我目前的認知范圍內要與一個通訊目標實現數據交互通常有這些方式 1、broker中間人…

lightgbm原理、特殊點、參數分析

lightgbm&#xff1a; 一、位置&#xff1a; 相比XGB&#xff0c;LGBM有更高效的計算效率和更低的內存占用&#xff0c;并且面對高維數據&#xff0c;LGBM算法擁有更好的過擬合特性&#xff0c;這使得在建模數據量日趨增加的今天&#xff0c;LGBM會更適合作為前期探索性建模的模…

車載軟件架構 --- 二級boot設計說明需求規范

我是穿拖鞋的漢子,魔都中堅持長期主義的汽車電子工程師。 老規矩,分享一段喜歡的文字,避免自己成為高知識低文化的工程師: 周末洗了一個澡,換了一身衣服,出了門卻不知道去哪兒,不知道去找誰,漫無目的走著,大概這就是成年人最深的孤獨吧! 舊人不知我近況,新人不知我過…

Cpp實現window上cmd執行效果

Cpp實現window上cmd執行效果 文章目錄 Cpp實現window上cmd執行效果1.頭文件包含部分2.main 函數部分3. 獲取當前工作目錄部分4.主循環部分5.退出條件部分6.處理 cd 命令部分7.執行其他命令部分8.讀取命令輸出部分9.關閉管道并處理返回碼部分10.源碼 1.頭文件包含部分 #include…