锆石FPGA---verlog语法篇
生活随笔
收集整理的這篇文章主要介紹了
锆石FPGA---verlog语法篇
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Verilog HDL
概述
Verilog vs VHDL
Verilog :快速入門
VHDL:入門時間長
數字邏輯
0 1 x z
數據類型
寄存器 線網 參數
- 使用:always,initial
- 綜合: 時序-寄存器 組合-硬件連線 混合-鎖存器
- 默認為 z
運算符
±*/%
> < =
! && ||
== !=
a ? b: c<< >>
{ 拼接} {2’d2{b}}
基礎語法
可綜合語句:可以生成電路
不可綜合語句:用來仿真
可綜合關鍵字:
module end module
input output inout
wire reg parameter
always assign
if else begin end case end case default
posedge negedge or 上升 下降
基本框架
例實現與門
module yumen(a,b,c)input a;input b;output c;assign c=a&b;endmodule描述方式
分類:系統級、算法級、RTL級、門級、開關級
問題
- reg
- wire
- 產生情況:if else缺省
- 時序和組合區別
- 表達式左右具有相同元素
- 阻塞:順序執行 非阻塞:并行執行
- 阻塞:同時改變 非阻塞:有時間延遲
狀態機
- 可以實現順序時間,第一步、第二部、、、
- Mealy
- Moore
- 時序邏輯:記憶當前狀態
- 組合邏輯:次態邏輯(確定下一個狀態),輸出邏輯(確定狀態機輸出)
- 確定狀態機類型
- 列出狀態機所有狀態,編碼
- 列舉狀態圖、狀態表
- 描述狀態
- 二進制碼:編碼效率高,譯碼
- 格雷碼:高可靠性
- one-hot:位數資源多,每一位表示一種狀態
- 一段:可讀性差
- (二段):有毛刺
- (三段)
案例:自動售貨機
module Example_State (X,Z,CLK_50M,RST_N );input X; input RST_N; input CLK_50M;output Z; //X表示是否投入一元 //Z是否售出飲料reg Z; reg Z_N;parameter S0=2'b00; parameter S1=2'b01; parameter S2=2'b10;reg[1:0] FSM_CS; //current reg[1:0] FSM_NS;//Next state//時序邏輯 always @(posedge CLK_50M or negedge RST_N) beginif(!RST_N)//lowFSM_CS<=S0;elseFSM_CS<=FSM_NS; end //組合邏輯(次態邏輯) always @(*) begincase(FSM_CS)S0:begin if(X==1'b1)FSM_NS=S1;elseFSM_NS=S0;endS1:begin if(X==1'b1)FSM_NS=S2;elseFSM_NS=S1;endS2:begin if(X==1'b1)FSM_NS=S0;elseFSM_NS=S2;endendcase end//組合邏輯(輸出邏輯)always @(posedge CLK_50M or negedge RST_N) beginif(!RST_N)//lowZ<=1'b0;elseZ<=Z_N; endalways@ (*) beginif((FSM_CS==S2)&&(X==1'b1))Z_N=1'b1;elseZ_N=1'b0; endendmodule總結
以上是生活随笔為你收集整理的锆石FPGA---verlog语法篇的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 新能源汽车制造商Captain Tech
- 下一篇: Syntax Error: Error: