適合新手入門,完整的介紹了Verilog HDL硬件描述語言 目 錄 譯者序 前言 第1章 簡介 1 1.1 什么是Verilog HDL? 1 1.2 歷史 1 1.3 主要能力 1 第2章 HDL指南 4 2.1 模塊 4 2.2 時延 5 2.3 數據流描述方式 5 2.4 行為描述方式 6 2.5 結構化描述形式 8 2.6 混合設計描述方式 9 2.7 設計模擬 10 第3章 Verilog語言要素 14 3.1 標識符 14 3.2 注釋 14 3.3 格式 14 3.4 系統任務和函數 15 3.5 編譯指令 15 3.5.1 `define和`undef 15 3.5.2 `ifdef、`else 和`endif 16 3.5.3 `default_nettype 16 3.5.4 `include 16 3.5.5 `resetall 16 3.5.6 `timescale 16 3.5.7 `unconnected_drive和 `nounconnected_drive 18 3.5.8 `celldefine 和 `endcelldefine 18 3.6 值集合 18 3.6.1 整型數 18 3.6.2 實數 19 3.6.3 字符串 20 3.7 數據類型 20 3.7.1 線網類型 20 3.7.2 未說明的線網 23 3.7.3 向量和標量線網 23 3.7.4 寄存器類型 23 3.8 參數 26 第4章 表達式 28 4.1 操作數 28 4.1.1 常數 28 4.1.2 參數 29 4.1.3 線網 29 4.1.4 寄存器 29 4.1.5 位選擇 29 4.1.6 部分選擇 29 4.1.7 存儲器單元 30 4.1.8 函數調用 30 4.2 操作符 30 4.2.1 算術操作符 31 4.2.2 關系操作符 33 4.2.3 相等關系操作符 33 4.2.4 邏輯操作符 34 4.2.5 按位操作符 35 4.2.6 歸約操作符 36 4.2.7 移位操作符 36 4.2.8 條件操作符 37 4.2.9 連接和復制操作 37 4.3 表達式種類 38 第5章 門電平模型化 39 5.1 內置基本門 39 5.2 多輸入門 39 5.3 多輸出門 41 5.4 三態門 41 5.5 上拉、下拉電阻 42 5.6 MOS開關 42 5.7 雙向開關 44 5.8 門時延 44 5.9 實例數組 45 5.10 隱式線網 45 5.11 簡單示例 46 5.12 2-4解碼器舉例 46 5.13 主從觸發器舉例 47 5.14 奇偶電路 47 第6章 用戶定義的原語 49 6.1 UDP的定義 49 6.2 組合電路UDP 49 6.3 時序電路UDP 50 6.3.1 初始化狀態寄存器 50 6.3.2 電平觸發的時序電路UDP 50 6.3.3 邊沿觸發的時序電路UDP 51 6.3.4 邊沿觸發和電平觸發的混合行為 51 6.4 另一實例 52 6.5 表項匯總 52 第7章 數據流模型化 54 7.1 連續賦值語句 54 7.2 舉例 55 7.3 線網說明賦值 55 7.4 時延 55 7.5 線網時延 57 7.6 舉例 57 7.6.1 主從觸發器 57 7.6.2 數值比較器 58 第8章 行為建模 59 8.1 過程結構 59 8.1.1 initial 語句 59 8.1.2 always語句 61 8.1.3 兩類語句在模塊中的使用 62 8.2 時序控制 63 8.2.1 時延控制 63 8.2.2 事件控制 64 8.3 語句塊 65 8.3.1 順序語句塊 66 8.3.2 并行語句塊 67 8.4 過程性賦值 68 8.4.1 語句內部時延 69 8.4.2 阻塞性過程賦值 70 8.4.3 非阻塞性過程賦值 71 8.4.4 連續賦值與過程賦值的比較 72 8.5 if 語句 73 8.6 case語句 74 8.7 循環語句 76 8.7.1 forever 循環語句 76 8.7.2 repeat 循環語句 76 8.7.3 while 循環語句 77 8.7.4 for 循環語句 77 8.8 過程性連續賦值 78 8.8.1 賦值—重新賦值 78 8.8.2 force與release 79 8.9 握手協議實例 80 第9章 結構建模 83 9.1 模塊 83 9.2 端口 83 9.3 模塊實例語句 83 9.3.1 懸空端口 84 9.3.2 不同的端口長度 85 9.3.3 模塊參數值 85 9.4 外部端口 87 9.5 舉例 89 第10章 其他論題 91 10.1 任務 91 10.1.1 任務定義 91 10.1.2 任務調用 92 10.2 函數 93 10.2.1 函數說明部分 93 10.2.2 函數調用 94 10.3 系統任務和系統函數 95 10.3.1 顯示任務 95 10.3.2 文件輸入/輸出任務 97 10.3.3 時間標度任務 99 10.3.4 模擬控制任務 99 10.3.5 定時校驗任務 100 10.3.6 模擬時間函數 101 10.3.7 變換函數 102 10.3.8 概率分布函數 102 10.4 禁止語句 103 10.5 命名事件 104 10.6 結構描述方式和行為描述方式的 混合使用 106 10.7 層次路徑名 107 10.8 共享任務和函數 108 10.9 值變轉儲文件 110 10.9.1 舉例 111 10.9.2 VCD文件格式 112 10.10 指定程序塊 113 10.11 強度 114 10.11.1 驅動強度 114 10.11.2 電荷強度 115 10.12 競爭狀態 116 第11章 驗證 118 11.1 編寫測試驗證程序 118 11.2 波形產生 118 11.2.1 值序列 118 11.2.2 重復模式 119 11.3 測試驗證程序實例 123 11.3.1 解碼器 123 11.3.2 觸發器 124 11.4 從文本文件中讀取向量 126 11.5 向文本文件中寫入向量 127 11.6 其他實例 128 11.6.1 時鐘分頻器 128 11.6.2 階乘設計 130 11.6.3 時序檢測器 132 第12章 建模實例 136 12.1 簡單元件建模 136 12.2 建模的不同方式 138 12.3 時延建模 139 12.4 條件操作建模 141 12.5 同步時序邏輯建模 142 12.6 通用移位寄存器 145 12.7 狀態機建模 145 12.8 交互狀態機 147 12.9 Moore有限狀態機建模 150 12.10 Mealy型有限狀態機建模 151 12.11 簡化的21點程序 153 附錄 語法參考 157 參考文獻 172 |
3.98 MB, 下載積分: 積分 -1