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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

[文档].艾米电子 - 在综合中使用函数,Verilog

發布時間:2023/12/15 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [文档].艾米电子 - 在综合中使用函数,Verilog 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

對讀者的假設

已經掌握:

  • 可編程邏輯基礎
  • Verilog HDL基礎
  • 使用Verilog設計的Quartus II入門指南
  • 使用Verilog設計的ModelSIm入門指南

內容

1 概述

在Verilog的模塊里,有些表達式也許會出現很多次。為了不重復輸入這些代碼,我們可以把常用的這部分抽象為一個routine,模塊內的function可以實現這一點。Verilog的函數有一個或多個的輸入參數,僅返回單值。在綜合期間,函數被展開,以映射為相應的硬件。因此,出于綜合的考慮,函數應該保持簡單,可以當作一些復雜表達式的縮略寫法。函數的基本寫法如下:

module . . . . . . // function defined within module function [result_type] [func_id] ([input_arg]); begin[statement] end endfunction . . . endmodule

函數需要被定義在function和endfunction限定詞內部。可選的[result_type]指定返回值得數據類型,常選用帶范圍的reg或integer類型。[input_arg]被用來聲明輸入的參數,[func_id]被用來指定函數的名稱。函數通過表達式來返回的結果,如

[func_id] = ... ;

2 范例

在二進制計數器那一節,我們討論了模-m計數器。有兩個參數:M,指定計數的范圍為[0, M-1];N,指定M個數需要多少位寬來存儲,其值為大于或等于log2(M)的整數。N的值不應該一個獨立的參數,一個更好的做法定義一個局部常量,然后在模塊內部計算它的值。通過使用函數可以實現,修改后的代碼如下:

module mod_m_bin_counter #(parameter M=10) // mod-M (// global clock and asyn resetinput clk,input rst_n,// counter interfaceoutput max_tick,output min_tick,output [N-1:0] q );// signal declaration localparam N = log2(M); // number of bits in counter reg [N-1:0] r_reg; wire [N-1:0] r_next;// body // register always@(posedge clk, negedge rst_n)if(!rst_n)r_reg <= 0;elser_reg <= r_next;// next-state logic assign r_next = (r_reg == (M-1)) ? 0 : r_reg + 1'b1; //output logic assign q = r_reg; assign max_tick = (r_reg == (M-1)) ? 1'b1 : 1'b0; assign min_tick = (r_reg == 0) ? 1'b1 : 1'b0;// log2 constant function function integer log2(input integer n);integer i; beginlog2 = 1;for(i=0; 2**i<n; i = i + 1)log2 = i + 1; end endfunctionendmodule

定義在模塊內的函數log2(),用于求取局部變量N的值。由于在綜合之前的預處理中,函數已執行計算;因此函數將不引用任何物理電路。

參考

1 Pong P. Chu.FPGA Prototyping By Verilog Examples: Xilinx Spartan-3 Version.Wiley

另見

[與艾米一起學FPGA/SOPC].[邏輯實驗文檔連載計劃]

轉載于:https://www.cnblogs.com/yuphone/archive/2010/12/12/1903743.html

總結

以上是生活随笔為你收集整理的[文档].艾米电子 - 在综合中使用函数,Verilog的全部內容,希望文章能夠幫你解決所遇到的問題。

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