iT邦幫忙

verilog相關文章
共有 56 則文章
RISC-V CPU 設計與實作 系列 第 6

技術 [Day 06] Simulation with Icarus Verilog

前面的篇幅大致說明了基本的 Verilog 語法,如果想要認識更多內容可以參考筆者寫的 數位IC起手式 ,裡面記載我在學習 Verilog 的學習過程和思路,相...

RISC-V CPU 設計與實作 系列 第 5

技術 [Day 05] Blocking & Nonblocking

大家可會好奇,同樣是賦值,為什麼會有 <=, = 的區別呢?這就要提到 blocking 和 nonblocking 的概念。 先給一個 Pseudoco...

RISC-V CPU 設計與實作 系列 第 4

技術 [Day 04] Verilog 與 循序電路

數位電路大致上分成 2 種,組合電路 (Combinational Circuit) 和循序電路 (Sequential Circuit)。 當一個電路通電,組...

RISC-V CPU 設計與實作 系列 第 3

技術 [Day 03] 淺談 Verilog

Verilog 是 IC 設計中必備的工具或說是語言。認識 Verilog 之前,我們要先知道並非所有的語法都可以用來設計電路,部分的語法是用來「模擬」電路的。...

鐵人賽 Software Development DAY 27
數位 IC 設計起手式 系列 第 27

技術 Day 27: Synthesizable Verilog

我們認識了數位電路設計的組合電路、循序電路,也學習了 Verilog 的語法和實際練習撰寫 Verilog 的程式碼。學習他們的最終目標到底是什麼?就是設計出...

鐵人賽 Software Development DAY 26
數位 IC 設計起手式 系列 第 26

技術 Day 26: Compiler Directive

之前提到的議題都是在更加彈性設計電路,今天我們要介紹的是讓設計者方便撰寫 Verilog 程式碼。在 C 語言中,我們常常看見 #define, #includ...

鐵人賽 Software Development DAY 25
數位 IC 設計起手式 系列 第 25

技術 Day 25: 參數式模組

關鍵字 parameter 我們已經在上一篇看過了!但是它的功用到底是什麼? 我們先思考一個問題:下方是一個 4 bits Johnson Counter 的程...

鐵人賽 Software Development DAY 24
數位 IC 設計起手式 系列 第 24

技術 Day 24: Generate 家族成員

Generate 是個很強大的語法。 在寫 Verilog 時,我最討厭的狀況是:(以 Pseudocode 表示) if (cond == True)...

鐵人賽 Software Development DAY 23
數位 IC 設計起手式 系列 第 23

技術 Day 23: Sequential & Parallel

不知道大家會不會好奇 begin, end 是做什麼的?只是單純要去區分各個區塊,就像是 C 語言的 { } 嗎? 其實沒有那麼簡單!過去我們都是使用 Sequ...

鐵人賽 Software Development DAY 22
數位 IC 設計起手式 系列 第 22

技術 Day 22: 迴圈大禮包

迴圈是程式設計中最為重要的一環,因為他可以根據我們的設定重複執行某一項事情。 Verilog 也不例外,他包含 while, for, repeat, fore...

鐵人賽 Software Development DAY 21
數位 IC 設計起手式 系列 第 21

技術 Day 21: Race Condition

Race Condition 中文翻譯為「競爭條件」。 這個問題非常常見,不只是在設計電路時出現,軟體設計時也會見到這個問題。稍微概述一下這個問題:當有兩個以上...

鐵人賽 Software Development DAY 20
數位 IC 設計起手式 系列 第 20

技術 Day 20: Initial & Always 運作模式

自從循序電路的出現,我們大量接觸時間的觀念,順序變得相當重要! 最開始我們只使用到 = 來執行賦值的行為,而之後增加了 <= 來建構不同的電路。我們也說到...

鐵人賽 Software Development DAY 19
數位 IC 設計起手式 系列 第 19

技術 Day 19: 有限狀態機 下

大致認識了有限狀態機後,我們來試試透過 Verilog 實作出來吧! 我們先介紹一個 Verilog 的線上練習平台:HDLBits這個平台包含了各式各樣的...

鐵人賽 Software Development DAY 18
數位 IC 設計起手式 系列 第 18

技術 Day 18: 有限狀態機 上

有限狀態機 維基百科中有一段有限狀態機的定義 有限狀態機(英語:finite-state machine,縮寫:FSM)又稱有限狀態自動機(英語:finite...

鐵人賽 Software Development DAY 17
數位 IC 設計起手式 系列 第 17

技術 Day 17: 計數器實作

了解了計數器的規則,這一篇我們要來實作 Johnson Counter 和 Ring Counter ,其實兩者的實作差異不大,希望大家在學會 Johnson...

鐵人賽 Software Development DAY 16
數位 IC 設計起手式 系列 第 16

技術 Day 16: 計數器概論

學會正反器之後,我們該應用一下了吧!之前提到正反器是一種有記憶的電路,透過這種電路,我們可以有不同的初始狀態。而我們要介紹的計數器就是其中一種應用。 以 0 ~...

鐵人賽 Software Development DAY 15
數位 IC 設計起手式 系列 第 15

技術 Day 15: Blocking & Nonblocking

同樣是賦值,Verilog 共提供了兩種形式:blocking 、 nonblocking 。 Blocking 就是我們想像中的賦值,程式碼由上而下進行。但是...

鐵人賽 Software Development DAY 14
數位 IC 設計起手式 系列 第 14

技術 Day 14: 條件判斷與正反器

這篇文章的目標就是實作正反器,但是在開始之前我們要先學習新的 Verilog 語法,這可以有效幫助我們簡化程式碼。 條件判斷 條件判斷在軟體撰寫共分成兩種:if...

鐵人賽 Software Development DAY 13
數位 IC 設計起手式 系列 第 13

技術 Day 13: 循序電路之序章

邏輯電路可以分成兩種,一種是我們之前在接觸的組合電路 (Combinational Circuit) ,另一種是比較難理解的循序電路 (Sequential C...

鐵人賽 Software Development DAY 12
數位 IC 設計起手式 系列 第 12

技術 Day 12: Testbench 新天地

我們來介紹另一種測試方式! Verilog 提供了一系列的指令,讓我們能與系統溝通 (System Task) ,如上一篇使用過的 $dumpfile(), $...

鐵人賽 Software Development DAY 11
數位 IC 設計起手式 系列 第 11

技術 Day 11: 初探 Testbench

完成了一個模組後,要怎麼知道他的正確性? 第一步就是編譯檔案,編譯器會告訴你這份檔案是否有語法錯誤,或是其他能檢查出的錯誤。但是編譯成功代表這個模組 100%...

鐵人賽 Software Development DAY 10
數位 IC 設計起手式 系列 第 10

技術 Day 10: BCD 加法器

簡單的模組觀念就先暫時說到這邊,我們先用之前所學的觀念來實作 BCD 加法器! BCD 是什麼? 數字的編碼方式其實有很多種,舉例來說,十進位是生活中常用的數字...

鐵人賽 Software Development DAY 9
數位 IC 設計起手式 系列 第 9

技術 Day 09: 自製模組啟用!

宣告模組後,我們就可以開始使用它了!但是在那之前我們先來回顧之前提到的內建模組吧! 內建邏輯閘模組 我們曾經說過 Verilog 提供了邏輯閘的模組,例如:an...

鐵人賽 Software Development DAY 8
數位 IC 設計起手式 系列 第 8

技術 Day 08: 第一個 Verilog 模組

介紹完了線路和線路的應用後,我們要開始組裝成模組囉! 但是在開始之前,我們要先認識模組的基本元件。 Port Port 的中文是端口,意思是說如果外部想要與模組...

鐵人賽 Software Development DAY 7
數位 IC 設計起手式 系列 第 7

技術 Day 07: 線路的拆與合

Vector 其實比我們想像的靈活,上一篇我們提到的 vector 在一開始就將線路綑綁完成了,那如果我們想要把線路拆解或是組合成更龐大的 vector 又該怎...

鐵人賽 Software Development DAY 6
數位 IC 設計起手式 系列 第 6

技術 Day 06: Vector 的出現

上一篇提到一條 wire 最多表示兩種數值,那麼如果要表示更多數值,我們需要使用 vector 。 Vector 是什麼呢?中文翻譯叫向量,但是向量可能沒那麼好...

鐵人賽 Software Development DAY 5
數位 IC 設計起手式 系列 第 5

技術 Day 05: 線路三兩事

既然 Verilog 是硬體描述語言,那麼其中的組成肯定不是單純的變數,如:整數、浮點數、字串等。Verilog 中最重要的變數是 wire ,翻成中文就是線路...

鐵人賽 Software Development DAY 4
數位 IC 設計起手式 系列 第 4

技術 Day 04: Verilog 環境架設

不同的軟體支援不同的作業系統,因為我所使用的軟體都是免付費的,所以限制會稍多一點。但是找到可以被我們使用的環境才是我們的目的! Windows 寫完了 Veri...

鐵人賽 Software Development DAY 3
數位 IC 設計起手式 系列 第 3

技術 Day 03: Verilog 組織架構

Verilog 是由一個一個模組 (module) 堆疊起來的,而最上層的模組 (top module) 與 C 語言的主函式 (main function),...

鐵人賽 Software Development DAY 2
數位 IC 設計起手式 系列 第 2

技術 Day 02: Verilog 設計思維

Verilog 是一個硬體描述語言,除了設計硬體之外,他也涵蓋了 C 語言等軟體設計特色。 因此 Verilog 的設計思維其實非常廣泛的,同一個電路,程式碼的...