原创 兩級級聯的鎖存器可以構成觸發器

兩級級聯的鎖存器可以構成觸發器,時序圖和電路結構如下:

原创 MIG連載-----7系列MIG介紹(2)

Spartan6 DDR佔用MCB資源(硬核資源),7系列佔用MIG資源; 1.添加IP 博文較多,此處至重點介紹其中關鍵信息; Clock Period : 指的是IP核給DDR3的時鐘,和速度等級有關,-n,其中n越大則最高

原创 Systemverilog語言(9)-------events and inter-process communication

1.topics event:主要實現握手 semaphores:共享資源管理 mailboxes:類似FIFO,傳輸數據時可以作爲緩存 event:用->觸發事件,用@觸發事件。 SV裏面event主要用於同步,類似於用於

原创 Systemverilog語言(5)-------Procedural statements and Routiness

1.outline SV裏面對task和function進行加強。 2. task and function 支持自增自減,但是很可能會產生race; 支持邏輯判斷符,當比較元素含x或z時,最終返回的結果是x或z; x或z

原创 手算平方根硬件實現之---(基本介紹)

首先劃分數字成組,不管是整數還是小數,均以小數點爲分界線,向左和向右每兩位數字劃爲一個單元(整數的話直接向左劃分),直到不夠兩個數字爲止。比如: 12345,可以看做1,23,45; 1234,可以看做12,34; 0.123看一看做0

原创 Systemverilog語言(8)-------threads and inter-process communication

1.topics threads :線程 semaphores:信號量 2.threads verilog裏面:begin…end(順序執行) ,fork…join(併發執行)可以構成線程。 fork…join:三個線程同時

原创 Systemverilog語言(4)-------data types(2/2)

1.topic 2.dynamic array 聲明動態數組一般用:【】 new 【】:可用於定義數組寬度,; 數據類型和寬度一致的固定數組也可以賦值給動態數組,滿足一致條件也可以相互賦值; 上圖:示例 dyn.delet

原创 PCIe的IP核接口信號介紹

xapp1052給的IP核接口,From pg054: 1.tx是針對用戶邏輯說的,實際對應IP個接收。 2.rx採用雷同於tx接口,只說幾個關鍵的信號。 3.物理層接口爲用戶監控鏈接狀態時使用,簡單介紹一下,具體查閱pg054。

原创 CMOS工藝的反相器版圖

CMOS工藝的反相器版圖。沿X方向一般稱爲:寬度;沿Y方向稱爲:長度。常說的xxnm工藝就是指的源漏之間的夠到長度,在同一工藝下,長度是不變的,但由於NMOS的導通電阻大約是PMOS的1/3,同一個互補的MOS管,N管和P管導通電阻一般

原创 Systemverilog語言(2)------- Systemverilog Interface

1.outline Interface是SV裏面新增加的概念; Stimulus timing:仿真的區間或者區域; Clocking Blocks :interface裏面用於同步的關鍵字; connecting tsetbe

原创 Systemverilog語言(3)-------data types(1/2)

1.overview enumenrated:枚舉 Two-state :雙狀態數據,相對於四狀態(0,1,x,z)數據而言的,最簡單的雙狀態類型bit; strings :字符串 (左上角一個單撇):表示位擴展信號,可以將

原创 systemverilog隨機函數

隨機函數 1.pre_randmosize() 和post_randmosize 有時需要在定義randmosize之前或之後立即執行一些操作,例如在隨機前設置類型的一些非隨機變量(上下限,條件值),或者在隨機化之後需要計算隨機

原创 verilog語法-----generate結構-(IEEE Std 1364™-2005翻譯)

verilog語法-----generate結構 文章主要觀點是從verilog-IEEE-2005裏面提取的,講的不透徹的,可以查看英文原本 Generate constructs generate constructs用於在

原创 內嵌約束中local的用法

在使用內嵌約束(inline constraint) randomsize()  with {CONSTRAINT}時,約束體中的變量名的查找順序默認是從被隨機化對象開始查找的,但如果調用randomize()的函數局部域(local s

原创 創建一個簡單的systemverilog程序

例如. Hello world! 作爲一個面向對象的語言,免不了來一個國際慣例: Hello world! 下面是完整的代碼: program tb(); initial begin $display("Hello,