国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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
    +關注

    關注

    30

    文章

    1374

    瀏覽量

    114522
  • 觸發器
    +關注

    關注

    14

    文章

    2056

    瀏覽量

    63397
  • 上升沿
    +關注

    關注

    0

    文章

    3

    瀏覽量

    1908

原文標題:Verilog學習筆記

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    RK平臺時鐘(CLK)開發:核心知識+調試步驟+問題匯總

    在 RK(瑞芯微)平臺開發,時鐘(CLK)子系統是 SOC 的 “心臟”——CPU 變頻、DDR 數據傳輸、以太網通信、LCD 顯示等所有組件的穩定運行,都依賴精準的時鐘信號。但時鐘樹復雜、配置參數多、調試踩坑頻繁,一直是開發者的痛點。
    的頭像 發表于 02-05 13:49 ?1111次閱讀
    RK平臺時鐘(<b class='flag-5'>CLK</b>)開發:核心知識+調試步驟+問題匯總

    FPV光端機解決方案,主控為何越來越多的選擇用 AG32 (MCU+FPGA)?

    @(posedge ahb_clock or negedge ahb_resetn) beginif (lahb_resetn) beginhaddr_reg <= 32\'h0
    發表于 01-28 14:29

    請問,不用的型號,讀寫速率是5ms或者4ms,時鐘都是1MHZ,是因為什么原因決定的?

    請問,不用的型號,讀寫速率是5ms或者4ms,時鐘都是1MHZ,是因為什么原因決定的?
    發表于 01-16 06:19

    verilog testbench運行測試用例時,運行到make run_test出錯怎么解決?

    按照胡老師書上的在verilog testbench運行測試用例時,在運行到make run_test步驟時出錯,查了很多方案沒有解決。
    發表于 11-11 06:52

    如果將蜂鳥的risc-v移植到其他的fpga想實現一些外設功能有什么辦法?可以不用操作系統直接添加verilog代碼嗎?

    請問如果將蜂鳥的risc-v移植到其他的fpga想實現一些外設功能有什么辦法?可以不用操作系統直接添加verilog代碼嗎?
    發表于 11-10 06:35

    使用NucleiStudio生成tb仿真需要的.verilog文件

    打開仿真頂層文件tb_top.v,存放在ITCM模塊里面的指令是通過readmemh函數讀入.verilog文件實現的: 下面通過對NucleiStudio IDE進行設置,實現將c
    發表于 11-05 07:07

    DMA硬件實現——讀寫實現

    ) wp_addr &lt;= 0;//rpalways@(posedge clk or negedge rst_n)if(!rst_n) rp_addr &lt;= 0
    發表于 10-24 07:58

    當ICE_DAT和ICE_CLK引腳配置為應用編碼的備用功能時,是否會導致編程失敗?

    當ICE_DAT和ICE_CLK引腳配置為應用編碼的備用功能時,是否會導致編程失敗
    發表于 08-21 06:30

    【高云GW5AT-LV60 開發套件試用體驗】三、LED燈控制實驗

    [31:0] counter;// 32位計數器 // 計數器邏輯 always @(posedge clk or negedge rst_n) begin if (!rst_n) begin
    發表于 07-21 05:57

    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模塊的調用、任務和函數

    在做模塊劃分時,通常會出現這種情形,某個大的模塊包含了一個或多個功能子模塊,verilog是通過模塊調用或稱為模塊實例化的方式來實現這些子模塊與高層模塊的連接的.
    的頭像 發表于 05-03 10:29 ?1560次閱讀
    <b class='flag-5'>verilog</b>模塊的調用、任務和函數

    FPGA Verilog HDL語法之編譯預處理

    Verilog HDL語言和C語言一樣也提供了編譯預處理的功能。“編譯預處理”是Verilog HDL編譯系統的一個組成部分。Verilog HDL語言允許在程序中使用幾種特殊的命令(它們不是一般
    的頭像 發表于 03-27 13:30 ?1435次閱讀
    FPGA <b class='flag-5'>Verilog</b> HDL語法之編譯預處理

    一文詳解Verilog HDL

    Verilog HDL(Hardware Description Language)是一種硬件描述語言,用于從算法級、門級到開關級的多種抽象設計層次的數字系統建模。現實生活多用于專用集成電路
    的頭像 發表于 03-17 15:17 ?4291次閱讀
    一文詳解<b class='flag-5'>Verilog</b> HDL

    尋找verilog高手,有報酬

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