91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

FPGA設(shè)計(jì)論壇 ? 來(lái)源:FPGA設(shè)計(jì)論壇 ? 作者:FPGA設(shè)計(jì)論壇 ? 2022-08-31 15:51 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

取某個(gè)信號(hào)的上升沿或下降沿信號(hào)

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

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

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

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

對(duì)于典型的counter邏輯

always @(posedge sys_clk or negedge sys_rst_n) begin

if(!sys_rst_n)

counter <= 24'd0;//十進(jìn)制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呢?

一般情況下,系統(tǒng)中統(tǒng)一用posedge,避免用negedge,降低設(shè)計(jì)的復(fù)雜度,可以減少出錯(cuò)。

在ModelSim仿真中,時(shí)鐘是很?chē)?yán)格的,但是在真實(shí)的晶振所產(chǎn)生的clock卻是不嚴(yán)格的,比如高電平和低電平的時(shí)間跨度不一樣,甚至非周期性的微小波動(dòng)。如果只使用posedge,則整個(gè)系統(tǒng)的節(jié)拍都按照clock上升沿對(duì)齊,如果用到了negedge,則系統(tǒng)的節(jié)拍沒(méi)有統(tǒng)一到一個(gè)點(diǎn)上。上升沿到上升沿肯定是一個(gè)時(shí)鐘周期,但是上升沿到下降沿卻很可能不是半個(gè)周期。這都會(huì)出現(xiàn)問(wèn)題。

FPGA特有的東西:Global CLK。FPGA內(nèi)部有專(zhuān)門(mén)的CLK“線(xiàn)”,和一般的邏輯門(mén)的走法不一樣,目的是為了保證整個(gè)FPGA片內(nèi)的時(shí)鐘一致,這個(gè)東西就叫GlobalCLK

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

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Verilog
    +關(guān)注

    關(guān)注

    30

    文章

    1374

    瀏覽量

    114522
  • 觸發(fā)器
    +關(guān)注

    關(guān)注

    14

    文章

    2056

    瀏覽量

    63397
  • 上升沿
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    1908

原文標(biāo)題:Verilog學(xué)習(xí)筆記

文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    RK平臺(tái)時(shí)鐘(CLK)開(kāi)發(fā):核心知識(shí)+調(diào)試步驟+問(wèn)題匯總

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

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

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

    請(qǐng)問(wèn),不用的型號(hào),讀寫(xiě)速率是5ms或者4ms,時(shí)鐘都是1MHZ,是因?yàn)槭裁丛驔Q定的?

    請(qǐng)問(wèn),不用的型號(hào),讀寫(xiě)速率是5ms或者4ms,時(shí)鐘都是1MHZ,是因?yàn)槭裁丛驔Q定的?
    發(fā)表于 01-16 06:19

    verilog testbench運(yùn)行測(cè)試用例時(shí),運(yùn)行到make run_test出錯(cuò)怎么解決?

    按照胡老師書(shū)上的在verilog testbench運(yùn)行測(cè)試用例時(shí),在運(yùn)行到make run_test步驟時(shí)出錯(cuò),查了很多方案沒(méi)有解決。
    發(fā)表于 11-11 06:52

    如果將蜂鳥(niǎo)的risc-v移植到其他的fpga想實(shí)現(xiàn)一些外設(shè)功能有什么辦法?可以不用操作系統(tǒng)直接添加verilog代碼嗎?

    請(qǐng)問(wèn)如果將蜂鳥(niǎo)的risc-v移植到其他的fpga想實(shí)現(xiàn)一些外設(shè)功能有什么辦法?可以不用操作系統(tǒng)直接添加verilog代碼嗎?
    發(fā)表于 11-10 06:35

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

    打開(kāi)仿真頂層文件tb_top.v,存放在ITCM模塊里面的指令是通過(guò)readmemh函數(shù)讀入.verilog文件實(shí)現(xiàn)的: 下面通過(guò)對(duì)NucleiStudio IDE進(jìn)行設(shè)置,實(shí)現(xiàn)將c
    發(fā)表于 11-05 07:07

    DMA硬件實(shí)現(xiàn)——讀寫(xiě)實(shí)現(xiàn)

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

    當(dāng)ICE_DAT和ICE_CLK引腳配置為應(yīng)用編碼的備用功能時(shí),是否會(huì)導(dǎo)致編程失敗?

    當(dāng)ICE_DAT和ICE_CLK引腳配置為應(yīng)用編碼的備用功能時(shí),是否會(huì)導(dǎo)致編程失敗
    發(fā)表于 08-21 06:30

    【高云GW5AT-LV60 開(kāi)發(fā)套件試用體驗(yàn)】三、LED燈控制實(shí)驗(yàn)

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

    CANFD模塊CLK_GR5如何配置?

    ,其中描述CANFD會(huì)用到兩個(gè)時(shí)鐘,其中的CLK_GR5 (CLK_SYS)在SDL例程沒(méi)有找到相關(guān)配置代碼,請(qǐng)問(wèn)這部分在哪里配置,還是使用默認(rèn)配置即可?
    發(fā)表于 07-14 06:06

    【高云GW5AT-LV60 開(kāi)發(fā)套件試用體驗(yàn)】點(diǎn)亮LED

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

    verilog模塊的調(diào)用、任務(wù)和函數(shù)

    在做模塊劃分時(shí),通常會(huì)出現(xiàn)這種情形,某個(gè)大的模塊包含了一個(gè)或多個(gè)功能子模塊,verilog是通過(guò)模塊調(diào)用或稱(chēng)為模塊實(shí)例化的方式來(lái)實(shí)現(xiàn)這些子模塊與高層模塊的連接的.
    的頭像 發(fā)表于 05-03 10:29 ?1560次閱讀
    <b class='flag-5'>verilog</b>模塊的調(diào)用、任務(wù)和函數(shù)

    FPGA Verilog HDL語(yǔ)法之編譯預(yù)處理

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

    一文詳解Verilog HDL

    Verilog HDL(Hardware Description Language)是一種硬件描述語(yǔ)言,用于從算法級(jí)、門(mén)級(jí)到開(kāi)關(guān)級(jí)的多種抽象設(shè)計(jì)層次的數(shù)字系統(tǒng)建?!,F(xiàn)實(shí)生活多用于專(zhuān)用集成電路
    的頭像 發(fā)表于 03-17 15:17 ?4291次閱讀
    一文詳解<b class='flag-5'>Verilog</b> HDL

    尋找verilog高手,有報(bào)酬

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