91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Verilog中clk為什么要用posedge,而不用negedge

FPGA設計論壇 ? 來源:FPGA設計論壇 ? 作者:FPGA設計論壇 ? 2022-08-31 15:51 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

取某個信號的上升沿或下降沿信號

取一個信號的上升沿或下降沿信號,可以通過將信號delay后,然后將原信號和delay信號,通過不同的與非操作,獲取上升沿信號或下降沿信號: 階段一: reg delay; // delay信號 always @ ( posedge clk or negedge rstn ) if( !rstn ) delay <= 0; else delay <= orig;? ?// orig是原信號 wire pos_signal = orig && ( ~delay ); // 原信號上升沿位置處產生的pulse信號 wire neg_signal = ( ~orig ) && delay; // 原信號下降沿位置處產生的pulse信號 階段二: 上述操作會存在亞穩態問題,并且得到的上升沿信號pos_signal和下降沿信號neg_signal無法被原采樣時鐘clk采樣。正確做法是,先將原信號用采樣時鐘delay 2次(打兩拍),得到和采樣時鐘同時鐘域的信號delay2,然后再按上述方法獲取上升沿和下降沿信號,這時得到的上升沿或下降沿就可以被原采樣時鐘采樣。 例句如下: reg ori_signal;// 需取上升沿或下降沿的原信號 reg delay1; reg delay2; always @ ( posedge clk or negedge rstn ) if( !rstn ) delay1 <= 0; else delay1 <= ori_signal;? ? always @ ( posedge clk or negedge rstn ) if( !rstn ) delay2 <= 0; else delay2 <= delay1;? // delay2 已與clk同域 reg delay3; always @ ( posedge clk or negedge rstn ) if( !rstn ) delay3 <= 0; else delay3 <= delay2;? ? wire pos_signal = delay2 && ( ~delay3 ); // 原信號上升沿位置處產生的pulse信號 wire neg_signal = ( ~delay2 ) && delay3; // 原信號下降沿位置處產生的pulse信號 上升沿電路如下:465c7812-2901-11ed-ba43-dac502259ad0.jpg ? ? ? ?注意:前兩個觸發器的運用就是起同步作用,將某個信號同步到采樣時鐘域,以后要重點注意使用。 階段三: 用階段二的語句會比較繁瑣,可以用下述語句簡化: reg[2:0] delay; always @ ( posedge clk or negedge rstn ) if( !rstn ) delay <= 0; else delay <= { delay[1:0], ori_signal} ; // ori_signal是原信號 wire pos_signal = delay[1] && ( ~delay[2] ); // 原信號上升沿位置處產生的pulse信號 wire neg_signal = ( ~delay[1] ) && delay[2]; // 原信號下降沿位置處產生的pulse信號

Verilog中clk為什么要用posedge,而不用negedge

posedge是上升沿,電平從低到高跳變

negedge是下降沿,電平從高到低跳變

對于典型的counter邏輯

always @(posedge sys_clk or negedge sys_rst_n) begin

if(!sys_rst_n)

counter <= 24'd0;//十進制0

else if(counter < led_time) begin

flag_counter = 1'b0;

counter <= counter + 1'b1;

end

else begin

counter <= 24'd0;

flag_counter = 1'b1;

end

end

clk為什么要用posedge,而不用negedge呢?

一般情況下,系統中統一用posedge,避免用negedge,降低設計的復雜度,可以減少出錯。

在ModelSim仿真中,時鐘是很嚴格的,但是在真實的晶振所產生的clock卻是不嚴格的,比如高電平和低電平的時間跨度不一樣,甚至非周期性的微小波動。如果只使用posedge,則整個系統的節拍都按照clock上升沿對齊,如果用到了negedge,則系統的節拍沒有統一到一個點上。上升沿到上升沿肯定是一個時鐘周期,但是上升沿到下降沿卻很可能不是半個周期。這都會出現問題。

FPGA特有的東西:Global CLK。FPGA內部有專門的CLK“線”,和一般的邏輯門的走法不一樣,目的是為了保證整個FPGA片內的時鐘一致,這個東西就叫GlobalCLK

467e5dce-2901-11ed-ba43-dac502259ad0.png

審核編輯 :李倩


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Verilog
    +關注

    關注

    29

    文章

    1367

    瀏覽量

    112319
  • 觸發器
    +關注

    關注

    14

    文章

    2039

    瀏覽量

    62161
  • 上升沿
    +關注

    關注

    0

    文章

    3

    瀏覽量

    1875

原文標題:Verilog學習筆記

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    CANFD模塊CLK_GR5如何配置?

    ,其中描述CANFD會用到兩個時鐘,其中的CLK_GR5 (CLK_SYS)在SDL例程沒有找到相關配置代碼,請問這部分在哪里配置,還是使用默認配置即可?
    發表于 07-14 06:06

    【高云GW5AT-LV60 開發套件試用體驗】點亮LED

    clkout0 ); wire sys_rst_n = lock; reg [26:0]delay_cnt; always@(posedge clk_100M or negedge sys_rst_n
    發表于 06-18 17:16

    尋找verilog高手,有報酬

    我采集了一塊電路板正常工作時的數據,基于這些數據我想用EPM7128slc84-15(sys_clk:50Mhz)測試電路板,尋求一位verilog高手,有償
    發表于 03-08 16:31

    Verilogsigned和$signed()的用法

    嗎?其實不是的,因為有符號數和無符號數據的加法強結果和乘法器結構是一樣的,signed的真正作用是決定如何對操作數擴位的問題。 2、verilog的加法和乘法操作前,會先對操作數據擴位成結果相同的位寬,然后進行加法或者乘法處理。比如a/b都為4位數據,c為5位數據,c
    的頭像 發表于 02-17 17:47 ?668次閱讀
    <b class='flag-5'>Verilog</b><b class='flag-5'>中</b>signed和$signed()的用法

    請問AFE4400為什么要用22位AD轉換不用16位?

    AFE4400為什么要用22位AD轉換不用16位?除了精度的原因,還有什么別的原因嗎?
    發表于 12-24 06:53

    Verilog 電路仿真常見問題 Verilog 在芯片設計的應用

    。然而,在實際應用,設計師可能會遇到各種問題,這些問題可能會影響仿真的準確性和設計的可靠性。 Verilog電路仿真常見問題 仿真環境的搭建問題 仿真環境的搭建是進行Verilog仿真的第一步。設計師需要選擇合適的仿真工具,并
    的頭像 發表于 12-17 09:53 ?1208次閱讀

    Verilog 與 ASIC 設計的關系 Verilog 代碼優化技巧

    Verilog與ASIC設計的關系 Verilog作為一種硬件描述語言(HDL),在ASIC設計扮演著至關重要的角色。ASIC(Application Specific Integrated
    的頭像 發表于 12-17 09:52 ?1045次閱讀

    Verilog 測試平臺設計方法 Verilog FPGA開發指南

    Verilog測試平臺設計方法是Verilog FPGA開發的重要環節,它用于驗證Verilog設計的正確性和性能。以下是一個詳細的Verilog
    的頭像 發表于 12-17 09:50 ?1153次閱讀

    Verilog與VHDL的比較 Verilog HDL編程技巧

    Verilog 與 VHDL 比較 1. 語法和風格 VerilogVerilog 的語法更接近于 C 語言,對于有 C 語言背景的工程師來說,學習曲線較平緩。它支持結構化編程,代碼更直觀,易于
    的頭像 發表于 12-17 09:44 ?1718次閱讀

    如何自動生成verilog代碼

    介紹幾種自動生成verilog代碼的方法。
    的頭像 發表于 11-05 11:45 ?1041次閱讀
    如何自動生成<b class='flag-5'>verilog</b>代碼

    Verilog硬件描述語言參考手冊

    一. 關于 IEEE 1364 標準二. Verilog簡介三. 語法總結四. 編寫Verilog HDL源代碼的標準五. 設計流程
    發表于 11-04 10:12 ?4次下載

    system verilog語言簡介

    ICer需要System Verilog語言得加成,這是ICer深度的表現。
    發表于 11-01 10:44 ?0次下載

    Verilog語法運算符的用法

    verilog語法中使用以下兩個運算符可以簡化我們的位選擇代碼。
    的頭像 發表于 10-25 15:17 ?2585次閱讀
    <b class='flag-5'>Verilog</b>語法<b class='flag-5'>中</b>運算符的用法

    FPGA Verilog HDL有什么奇技巧?

    時賦初值,不用復位賦初值,當整個系統需要復位重啟時,FPGA 只能通過重新上電來獲取初值,這可能比較麻煩甚至在某些系統不可實現。 另外,在 RTL 文件不能使用 initial
    發表于 09-12 19:10

    clk是高電平有效還是低電平有效

    在數字電路,"clk"通常指的是時鐘信號(clock signal),它是一種周期性的信號,用于同步數字電路的各種操作。時鐘信號的高低電平有效性取決于具體的電路設計和應用場景。 1. 時鐘信號
    的頭像 發表于 07-23 11:24 ?4331次閱讀
    主站蜘蛛池模板: 日韩欧美在线中文字幕 | 天堂最新资源在线 | 爱夜夜性夜夜夜夜夜夜爽 | 一级毛片免费毛片一级毛片免费 | 亚洲伦理一区 | 亚洲一区二区三区免费观看 | 97爱爱| 亚洲一卡2卡3卡4卡5卡乱码 | 久久水蜜桃网 | 欧美日本一区二区三区道 | 1314亚洲人成网站在线观看 | 在线视频午夜 | 色综合欧美 | 欧美大色网 | 久久久久久夜精品精品免费啦 | 免费视频现线观看 | 天天爱天天操 | 日韩一区二区视频在线观看 | 一级女性黄 色生活片 | 在线播放色 | 成人免费午间影院在线观看 | 色屁屁www影院免费观看视频 | 五月天婷婷伊人 | 丰满年轻岳欲乱中文字幕 | 色综合中文网 | 大尺度视频网站久久久久久久久 | 91av视频免费在线观看 | 色男人综合 | 日本美女中出 | 99久精品| 69成人免费视频 | 猛操女人| 前后灌满白浆护士 | 99免费观看视频 | 国产一区二区高清 | 97夜夜澡人人爽人人喊一欧美 | 婷婷成人丁香五月综合激情 | 日韩欧美在线第一页 | 深深激情网 | 农村妇女野外一级毛片 | 色偷偷97|