iT邦幫忙

verilog相關文章
共有 63 則文章

技術 [simple-mips] mem stage

系列文章 : 使用 Verilog 實作 in-order CPU mem-stage mem-stage 負責 決定是否該進行 branch,並且將這個結果...

技術 [simple-mips] execute stage

系列文章 : 使用 Verilog 實作 in-order CPU execute-stage execute stage 負責 計算出 branch 發生的...

技術 [simple-mips] decode stage

系列文章 : 使用 Verilog 實作 in-order CPU decode-stage decode-stage 負責 : 將 instruction...

技術 [simple-mips] fetch stage

系列文章 : 使用 Verilog 實作 in-order CPU fetch-stage fetch-stage 會利用 pc 值,去跟 Inst_Mem 去...

技術 使用 Verilog 實作 in-order CPU

非常感謝 Sean 把陽明交通大學的計算機組織的課堂作業分享出來,讓我這個已經畢業的大叔可以跟著課堂作業一起練習。 開始練習的時候,難免會想著,別人大一大二,甚...

技術 [simple-mips] 一個簡單的 5 stage CPU

系列文章 : 使用 Verilog 實作 in-order CPU 這邊的練習是來自陽明交通大學的計算機組織作業。雖然我沒有上過陽明交通大學的計算機組織,但網路...

技術 [simple-mips] 使用開源的 `ICARUS Verilog` 模擬簡單的電路

系列文章 : 使用 Verilog 實作 in-order CPU 在實作一個簡單的 CPU 之前,會需要一個可以模擬電路運行的工具!這邊會使用一個厲害的開源工...

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...