日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

锆石FPGA---verlog语法篇

發布時間:2023/12/16 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 锆石FPGA---verlog语法篇 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Verilog HDL

概述

Verilog vs VHDL

Verilog :快速入門
VHDL:入門時間長

數字邏輯

0 1 x z

數據類型

寄存器 線網 參數

  • reg
    • 使用:always,initial
    • 綜合: 時序-寄存器 組合-硬件連線 混合-鎖存器
  • wire
    • 默認為 z
  • parameter
  • 運算符

    ±*/%

    > < =

    ! && ||

    == !=

    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級、門級、開關級

  • 結構化描述
  • module example (A,B,C,L);input A; input B; input C; output L;wire AB,BC,AC; and U1(AB,A,B); and U2(BC,B,C); and U3(AC,A,C);or U4(L,AB,BC,AC);endmodule
  • 數據流描述
  • assign L=((!A)&B&C)|((!B)&A&C)|((!C)&B&A); endmodule
  • 行為描述
  • always@(A,C,B) begin case({A,B,C})3'b000: L=1'b0;3'b001: L=1'b0;3'b010: L=1'b0;3'b011: L=1'b1;3'b100: L=1'b0;3'b101: L=1'b1;3'b110: L=1'b1;3'b111: L=1'b1;default:L=1'bx;endcase end
  • 模塊化設計
  • module Example_Module (input a,input b,output c,output s);Example_yumen yumen_module (.yumen_a(a),.yumen_b(b),.yumen_c(c) ); Example_yihuo yihuo_module (.yihuo_a(a),.yihuo_b(b),.yihuo_c(s) ); endmodule

    問題

  • 數據類型選擇
    • reg
    • wire
  • latch的產生(保持不變)
    • 產生情況: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语法篇的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。