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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

Verilog自编函数clog2替代SV中的系统函数$clog2

發布時間:2025/3/13 windows 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Verilog自编函数clog2替代SV中的系统函数$clog2 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

先放函數,已驗證和$clog2輸出一致,注意需滿足輸入n ≥ 1

// 返回以2為底的n的對數 function integer clog2 (input integer n); beginn = n - 1;for (clog2 = 0; n > 0; clog2 = clog2 + 1)n = n >> 1; end endfunction

另外,經評論區提醒,在Vivado 2017以后的版本中,可以直接使用系統函數$clog2(),不需要去自編函數了。后續又測試了Quartus 18.1 同樣支持$clog2(),各位可自行測試使用的工具是否支持$clog2()。

一.為什么需要以2為底n的對數的函數

在Verilog編寫代碼過程中,經常需要根據一個常量來定義一個變量的位寬,例如,要編寫一個計數器,計數最大值為常量N,那么計數變量cnt的位寬應該是多少呢?這個問題在SV可利用系統函數$clog2來解決,如下:

module counter #(parameter CNT_MAX = 1023 )(output logic cnt_finish,input logic clk,input logic rstn );logic [$clog2(CNT_MAX+1)-1 : 0] cnt; always_ff @(posedge clk, negedge rstn) beginif (~rstn)cnt <= '0;else if (cnt < CNT_MAX)cnt <= cnt + 1'b1;elsecnt <= '0; endassign cnt_finish = cnt == CNT_MAX;endmodule

但是在Verilog中沒有這個系統函數,所以需要自行編寫

二.Verilog編寫求以2為底n的對數的函數

將上面計數器的SV代碼改為Verilog,用自編的clog2替代SV的系統函數$clog2

module counter #(parameter CNT_MAX = 1023 )(output wire cnt_finish,input wire clk,input wire rstn );reg [clog2(CNT_MAX+1)-1 : 0] cnt; always @(posedge clk, negedge rstn) beginif (~rstn)cnt <= 'd0;else if (cnt < CNT_MAX)cnt <= cnt + 1'b1;elsecnt <= 'd0; endassign cnt_finish = cnt == CNT_MAX;// 以2為底的對數函數 function integer clog2 (input integer n); beginn = n - 1;for (clog2 = 0; n > 0; clog2 = clog2 + 1)n = n >> 1; end endfunctionendmodule

三.仿真驗證

仿真驗證自編函數clog2的輸出和SV系統函數$clog2的輸出是否一致,仿真工具:modelsim SE-64 2020.4,testbench(try_tb.sv)如下:

module try_tb();timeunit 1ns; timeprecision 10ps;initial beginfor (integer i=1; i<1025; i++) begin$display("$clog(%d) = %d, clog2(%d) = %d", i, $clog2(i), i, clog2(i));end end// 以2為底的對數函數 function integer clog2 (input integer n); beginn = n - 1;for (clog2 = 0; n > 0; clog2 = clog2 + 1)n = n >> 1; end endfunctionendmodule

部分仿真結果:

可見,clog2(n) 與 $clog2(n) 輸出一致。

總結

以上是生活随笔為你收集整理的Verilog自编函数clog2替代SV中的系统函数$clog2的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 蜜桃99视频一区二区三区 | 日韩精品二区在线观看 | 成年人视频在线观看免费 | 久操热| 性爱免费在线视频 | 日本中文字幕在线观看 | 亚洲美女自拍 | 黄视频免费在线看 | 老鸭窝久久 | 永久免费汤不热视频 | 变态另类ts人妖一区二区 | 欧美激情啪啪 | 中文字幕日韩电影 | 国产精品久久毛片 | 久久中文字幕视频 | 在线观看欧美亚洲 | 成人免费一区 | 97福利网| 色涩涩| 男操女视频网站 | 亚洲v日韩v综合v精品v | 一区二区三区免费在线 | 日日操日日碰 | a级片日本 | 亚洲午夜不卡 | 超碰影院在线 | 亚洲区免费 | 天堂中文在线免费观看 | 日韩淫视频 | 少妇偷人精品无码人妻 | 国产日韩精品电影 | 蜜桃久久久久久久 | 欧美日韩国内 | 亚洲天堂视频网 | 欧美性生活免费视频 | 一区二区三区四区久久 | 日日骚一区二区 | 黄色最新网址 | 色偷偷网站 | 日本成人在线视频网站 | 操女人免费视频 | 九草影院 | av不卡在线看 | 中国老熟女重囗味hdxx | 97香蕉超级碰碰久久免费软件 | 制服诱惑一区二区 | 毛片久久久久久久 | 18女人毛片 | www国产黄色| 亚洲一区二区三区无码久久 | 成年人午夜网站 | 阿拉伯性视频xxxx | 毛片手机在线 | 精品无码久久久久久久 | 麻豆日产六区 | 九九天堂 | 午夜伦理视频 | 大尺度网站在线观看 | 亚洲综合在线五月 | 蜜臀一区二区三区精品免费视频 | 亚洲第四页 | 日韩资源 | 四虎影视最新网址 | 成人网战| 可以免费看的毛片 | 国产激情二区 | 久久亚洲一区二区三区四区五区 | 成人毛片视频在线观看 | 男男av网站 | 精品人妻一区二区三区免费 | 天堂av官网| 手机看片中文字幕 | 欧美做受高潮1 | 成年人看的毛片 | 六月婷婷七月丁香 | 日韩视频网站在线观看 | 日韩在线免费视频观看 | 无限国产资源 | 狠狠躁夜夜躁av无码中文幕 | 亚洲成人自拍偷拍 | av大全网站 | 国模吧一区二区三区 | 国产又粗又猛又爽又黄无遮挡 | 韩国av一区 | 欧美多p | 在线观看黄色国产 | 男人操女人的视频 | 国产女主播一区二区 | 欧美精品一级在线观看 | 日韩三级免费观看 | 色婷婷av一区 | 激情网综合 | 免费黄网站在线 | 中文亚洲字幕 | 波多野 在线 | 免费黄色在线播放 | 国产精品美女久久久久图片 | 黄免费在线观看 | 亚洲小说春色综合另类 |