国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

出現(xiàn)時(shí)序違例怎么解決-VIVADO

這篇具有很好參考價(jià)值的文章主要介紹了出現(xiàn)時(shí)序違例怎么解決-VIVADO。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

提示:文章寫完后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔


在工程應(yīng)用中,經(jīng)常會(huì)使用不同頻率的時(shí)鐘。
在不同條件下,出現(xiàn)時(shí)序違例。
在出現(xiàn)時(shí)序違例時(shí),導(dǎo)致編譯時(shí)間過(guò)長(zhǎng)。

一、出現(xiàn)時(shí)序違例?

時(shí)序分析的測(cè)試程序:

`timescale 1ns/1ps
module test_top_1 (
 	input pri_clock,    // 50M主時(shí)鐘
 	input sec_clk,
 	input	A1,
 	output	A2
 );
 

//MMCM生成20M、30M、50M、100M、200M的衍生時(shí)鐘
wire clk20m,clk30m,clk50m,clk100m,clk200m;
wire locked;

  clk_wiz_0 gen_clk
   (
    // Clock out ports
    .clk20m(clk20m),     // output clk20m
    .clk30m(clk30m),     // output clk30m
    .clk50m(clk50m),     // output clk50m
    .clk100m(clk100m),     // output clk100m
    .clk200m(clk200m),     // output clk200m
    // Status and control signals
    .reset(1'b0), // input reset
    .locked(locked),       // output locked
   // Clock in ports
    .clk_in1(pri_clock));      // input clk_in1


//使用50M的時(shí)鐘生成邏輯復(fù)位信號(hào)
reg rst_n;
reg [15:0] rstn_cnt=0;
always @(posedge clk50m) begin : proc_logic_rst
	if(~locked) begin
		rst_n <= 0;
		rstn_cnt<=0;
	end else if(rstn_cnt>=1000)begin
		rst_n <= 1;
		rstn_cnt<=rstn_cnt;
	end	else begin
		rst_n<=0;
		rstn_cnt<=rstn_cnt+1;
	end
end

reg [31:0] cnt_1;
reg [31:0] cnt_2;
reg [31:0] cnt_3;
reg [31:0] cnt_4;
reg [31:0] cnt_5;

//在20M的時(shí)鐘域下,異步復(fù)位同步釋放,計(jì)數(shù)器1增加
always @(posedge clk20m or negedge rst_n) begin : proc_cnt_1
	if(~rst_n) begin
		cnt_1 <= 0;
	end else if(A1)begin
		
		if(cnt_5>=50000)
			cnt_1<=0;
		else cnt_1 <= cnt_1+1;
	end
end


//在30M的時(shí)鐘域下,異步復(fù)位同步釋放,計(jì)數(shù)器2增加
always @(posedge clk30m or negedge rst_n) begin : proc_cnt_2
	if(~rst_n) begin
		cnt_2 <= 0;
	end else if(cnt_1>31'hff)begin
		cnt_2 <= cnt_2+1;
	end else 
		cnt_2<=0;	
end


//在50M的時(shí)鐘域下,異步復(fù)位同步釋放,計(jì)數(shù)器3增加
always @(posedge clk50m or negedge rst_n) begin : proc_cnt_3
	if(~rst_n) begin
		cnt_3 <= 0;
	end else if(cnt_5>31'hffff)begin
		cnt_3 <= cnt_3+1;
	end
end


//在100M的時(shí)鐘域下,異步復(fù)位同步釋放,計(jì)數(shù)器4增加
always @(posedge clk100m or negedge rst_n) begin : proc_cnt_4
	if(~rst_n) begin
		cnt_4 <= 0;
	end else if(cnt_3>32'hffffff)begin
		cnt_4 <= cnt_4+1;
	end
end



//在200M的時(shí)鐘域下,異步復(fù)位同步釋放,計(jì)數(shù)器5增加
always @(posedge clk200m or negedge rst_n) begin : proc_cnt_5
	if(~rst_n) begin
		cnt_5 <= 0;
	end else if(cnt_1>=8933)begin
		cnt_5 <= cnt_5+1;
	end
end

//使用clk200m分頻,得出40m時(shí)鐘
localparam priod_cnt_40=200/40;
reg [7:0] div_cnt;
reg clk40m;
always @(posedge clk200m or negedge rst_n) begin : proc_div_cnt
	if(~rst_n) begin
		div_cnt <= 0;
		clk40m<=0;
	end else if(div_cnt>=(priod_cnt_40>>1)-1)begin
		div_cnt<=0;
		clk40m<=~clk40m;	
	end else begin 	
		div_cnt <= div_cnt+1;
		clk40m<=clk40m;
	end 
end

reg [15:0] cnt_6;
always @(posedge clk40m or negedge rst_n) begin : proc_cnt_6
	if(~rst_n) begin
		cnt_6 <= 0;
	end else if(cnt_5==199)begin
		cnt_6 <= 0;
	end else cnt_6<=cnt_6+1;
end

//另一路輸入時(shí)鐘
//sec_clk
reg [15:0] cntx_1;
always @(posedge sec_clk or negedge rst_n) begin : proc_cntx_1
	if(~rst_n) begin
		 cntx_1<= 0;
	end else begin
		 cntx_1<= cntx_1+1;
	end
end

assign A2=cnt_1[31]&cnt_2[31]&cnt_3[31]&cnt_4[31]&cnt_5[31]&cnt_6[15]&cntx_1[15];
 endmodule : test_top_1 

1.1編譯過(guò)程中2.4節(jié)(布線初始化后)更新時(shí)序信息
vivado時(shí)序不滿足怎么辦,fpga開發(fā)
1.2編譯過(guò)程中2.4節(jié)中間時(shí)序總結(jié)
vivado時(shí)序不滿足怎么辦,fpga開發(fā)
1.3編譯過(guò)程中第5節(jié)更新時(shí)序
vivado時(shí)序不滿足怎么辦,fpga開發(fā)
編譯完成后時(shí)序總結(jié)
vivado時(shí)序不滿足怎么辦,fpga開發(fā)
導(dǎo)致時(shí)序違例的原因
vivado時(shí)序不滿足怎么辦,fpga開發(fā)
vivado時(shí)序不滿足怎么辦,fpga開發(fā)vivado時(shí)序不滿足怎么辦,fpga開發(fā)

注:工程編譯時(shí)間過(guò)長(zhǎng),也沒有提示錯(cuò)誤,可以看一下編譯過(guò)程中的時(shí)序信息。如果負(fù)的太多,先分析一下,等的話不知道要等到什么時(shí)候…(千年等一回,啊 。 。 。。)

二、解決方法

1.編譯過(guò)程中

如圖1-圖3所示,在編譯過(guò)程中,出現(xiàn)負(fù)時(shí)序。
修改組合邏輯減小邏輯級(jí)數(shù)與扇出。
編譯結(jié)果如圖:
vivado時(shí)序不滿足怎么辦,fpga開發(fā)

2.編譯完

查看vavido工具羅列的時(shí)鐘。
下圖顯示的時(shí)鐘是由MMCM分頻倍頻得出(自動(dòng)生成時(shí)序約束),沒有給出程序中105行200M分頻的40M。
vivado時(shí)序不滿足怎么辦,fpga開發(fā)
對(duì)生成的時(shí)鐘重新命名,并對(duì)40M時(shí)鐘進(jìn)行約束。

#create_clock -name pri_clock -period 20 -waveform {0 10} [get_ports pri_clock]

create_generated_clock -name clk20m [get_pins gen_clk/inst/mmcm_adv_inst/CLKOUT0] 
create_generated_clock -name clk30m [get_pins gen_clk/inst/mmcm_adv_inst/CLKOUT1]
create_generated_clock -name clk50m [get_pins gen_clk/inst/mmcm_adv_inst/CLKOUT2]
create_generated_clock -name clk100m [get_pins gen_clk/inst/mmcm_adv_inst/CLKOUT3]
create_generated_clock -name clk200m [get_pins gen_clk/inst/mmcm_adv_inst/CLKOUT4]

create_generated_clock -name clk40m -source [get_pins gen_clk/inst/mmcm_adv_inst/CLKOUT4] -divide_by 5 [get_pins clk40m_reg/Q]
                              
create_clock -name sec_clk -period 100 -waveform {0 50} [get_ports sec_clk]
set_clock_groups -asynchronous -group [get_clocks clk200m] -group [get_clocks sec_clk]

#min = -(保持時(shí)間)
#max = 建立時(shí)間 
set_input_delay -clock clk20m -max 2.0  [get_ports A1]
set_input_delay -clock clk20m -min -1.5  [get_ports A1]
set_output_delay -clock clk200m -max -4.167   [get_ports A2]
set_output_delay -clock clk200m -min -0.0  [get_ports A2]

重新編譯后:
vivado時(shí)序不滿足怎么辦,fpga開發(fā)
上圖包括程序中出現(xiàn)的所有時(shí)鐘。
時(shí)序總結(jié)如下圖。
vivado時(shí)序不滿足怎么辦,fpga開發(fā)

總結(jié)

從發(fā)現(xiàn)問(wèn)題,到解決問(wèn)題;
從vivado工具的警告和報(bào)錯(cuò),提示需要關(guān)注時(shí)序分析;
從小工程發(fā)展成大工程,時(shí)序分析還是挺重要的一個(gè)環(huán)節(jié)。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-740495.html

到了這里,關(guān)于出現(xiàn)時(shí)序違例怎么解決-VIVADO的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 電腦出現(xiàn)錯(cuò)誤代碼0xc0000225怎么辦,解決0xc0000225的辦法

    電腦出現(xiàn)錯(cuò)誤代碼0xc0000225怎么辦,解決0xc0000225的辦法

    通常情況下電腦出現(xiàn)0xc0000225錯(cuò)誤代碼都是在點(diǎn)奧藍(lán)屏的額狀態(tài)下顯示的,那么應(yīng)該如何解決錯(cuò)誤代碼0xc0000225的問(wèn)題呢?今天本文就給大家介紹幾種解決辦法,希望能夠給大家提供一些幫助。 解決辦法一:檢查硬盤連接和電線 首先,您需要確保與系統(tǒng)硬盤相關(guān)的連接和電纜沒

    2024年02月04日
    瀏覽(22)
  • 蘋果手機(jī)無(wú)法開機(jī)?黑屏打不開怎么辦?出現(xiàn)這種問(wèn)題的解決辦法分享!

    蘋果手機(jī)無(wú)法開機(jī)?黑屏打不開怎么辦?出現(xiàn)這種問(wèn)題的解決辦法分享!

    各位在使用蘋果手機(jī)的小伙伴有沒有遇到 蘋果手機(jī)突然就黑屏開不了機(jī),打電話也沒有任何反應(yīng),手機(jī)也無(wú)法關(guān)機(jī)重啟,這是什么問(wèn)題呢? 我們遇到這種問(wèn)題該如何去處理呢? 小編今天就來(lái)跟大家說(shuō)說(shuō)蘋果手機(jī)突然開不了機(jī)的原因以及解決辦法。 一、電量不足 長(zhǎng)按iPhone電

    2024年02月09日
    瀏覽(28)
  • 無(wú)主之地3出現(xiàn)UE4崩潰怎么辦?無(wú)主之地3出現(xiàn)UE4崩潰深入解析原因及解決方案

    無(wú)主之地3出現(xiàn)UE4崩潰怎么辦?無(wú)主之地3出現(xiàn)UE4崩潰深入解析原因及解決方案

    無(wú)主之地3(Borderlands 3)出現(xiàn)UE4崩潰,通常指的是游戲運(yùn)行時(shí)基于虛幻引擎4(Unreal Engine 4,簡(jiǎn)稱UE4)開發(fā)的部分出現(xiàn)崩潰現(xiàn)象。 下面一起來(lái)看看原因及解決方法介紹吧! 原因 1. 驅(qū)動(dòng)程序問(wèn)題:?顯卡驅(qū)動(dòng)程序過(guò)時(shí)或不兼容可能導(dǎo)致UE4崩潰。確保您的顯卡驅(qū)動(dòng)是最新的,并且

    2024年04月09日
    瀏覽(43)
  • 電腦出現(xiàn)錯(cuò)誤代碼0x80070035要怎么辦?教你解決錯(cuò)誤代碼0x80070035

    電腦出現(xiàn)錯(cuò)誤代碼0x80070035要怎么辦?教你解決錯(cuò)誤代碼0x80070035

    電腦剛開機(jī)就收到提示電腦出現(xiàn)錯(cuò)誤代碼0x80070035?出現(xiàn)這樣的問(wèn)題可能是電腦網(wǎng)絡(luò)練級(jí)錯(cuò)誤或網(wǎng)絡(luò)路徑的問(wèn)題,有什么辦法可以解決錯(cuò)誤代碼0x80070035的辦法呢?今天就來(lái)討論一下錯(cuò)誤代碼的問(wèn)題應(yīng)該如何解決。 檢查網(wǎng)絡(luò) 首先我們先排查一下電腦網(wǎng)絡(luò)連接的問(wèn)題,先檢查一下

    2024年02月05日
    瀏覽(24)
  • 電腦出現(xiàn)錯(cuò)誤代碼0xc000000e怎么辦,解決錯(cuò)誤代碼0xc000000e的幾種辦法

    電腦出現(xiàn)錯(cuò)誤代碼0xc000000e怎么辦,解決錯(cuò)誤代碼0xc000000e的幾種辦法

    最近有看到小伙伴們提問(wèn),電腦出現(xiàn)錯(cuò)誤代碼0xc000000e怎么辦?一旦電腦提示這種錯(cuò)誤代碼就會(huì)導(dǎo)致電腦無(wú)法正常運(yùn)行,軟件或游戲?qū)?huì)不能打開,今天就關(guān)于這個(gè)問(wèn)題,教大家解決錯(cuò)誤代碼0xc000000e的幾種辦法。 1.硬盤錯(cuò)誤:出現(xiàn)錯(cuò)誤代碼0xc000000e的原因可能是硬盤驅(qū)動(dòng)器出現(xiàn)

    2024年02月08日
    瀏覽(21)
  • 【數(shù)字IC基礎(chǔ)】時(shí)序違例的修復(fù)

    基本思路是減少數(shù)據(jù)線的延時(shí)、減少 Launch clock line 的延時(shí)、增加capture clock line的delay 加強(qiáng)約束,重新進(jìn)行綜合 ,對(duì)違規(guī)的路徑進(jìn)行進(jìn)一步的優(yōu)化,但是一般效果可能不是很明顯降低時(shí)鐘的頻率,但是這個(gè)一般是在項(xiàng)目最初的時(shí)候決定的,這個(gè)時(shí)候很難再改變 拆分組合邏輯,

    2024年02月14日
    瀏覽(21)
  • 【FPGA中時(shí)序違例的處理方法】——詳解

    【FPGA中時(shí)序違例的處理方法】——詳解 FPGA作為一種可編程邏輯器件,被廣泛應(yīng)用于數(shù)字電路設(shè)計(jì)和驗(yàn)證中。然而,在實(shí)際應(yīng)用中,由于各種因素的干擾,可能會(huì)出現(xiàn)時(shí)序違例問(wèn)題。時(shí)序違例是指由于時(shí)鐘信號(hào)傳輸延遲等原因,導(dǎo)致數(shù)據(jù)信號(hào)無(wú)法按照預(yù)期的時(shí)序到達(dá)目標(biāo)寄存

    2024年01月23日
    瀏覽(11)
  • [靜態(tài)時(shí)序分析簡(jiǎn)明教程(二)] 基礎(chǔ)知識(shí):建立時(shí)間、保持時(shí)間、違例修復(fù)及時(shí)序分析路徑

    [靜態(tài)時(shí)序分析簡(jiǎn)明教程(二)] 基礎(chǔ)知識(shí):建立時(shí)間、保持時(shí)間、違例修復(fù)及時(shí)序分析路徑

    一個(gè) 數(shù)字芯片工程師 的 核心競(jìng)爭(zhēng)力 是什么?不同的工程師可能給出不同的答復(fù),有些人可能提到 硬件描述語(yǔ)言 ,有些人可能會(huì)提到對(duì)于 特定算法和協(xié)議的理解 ,有些人或許會(huì)提到 對(duì)于軟硬件的結(jié)合劃分 ,作者想說(shuō),這些說(shuō)法, 其實(shí)對(duì)也不對(duì) ,硬件描述語(yǔ)言,翻來(lái)覆去

    2023年04月22日
    瀏覽(29)
  • 【已解決】華為手機(jī)短接后有提示音但在其他設(shè)備里顯示未知設(shè)備或者USB-SER怎么辦 | 華為榮耀手機(jī)短接后未知設(shè)備里面出現(xiàn)“USB-SER” 端口如何解決

    【已解決】華為手機(jī)短接后有提示音但在其他設(shè)備里顯示未知設(shè)備或者USB-SER怎么辦 | 華為榮耀手機(jī)短接后未知設(shè)備里面出現(xiàn)“USB-SER” 端口如何解決

    電腦提前打開 設(shè)備管理器 ,短接插線后注意觀察電腦反應(yīng),如果成功的話電腦會(huì)有設(shè)備連接提示音并在設(shè)備管理器里刷新出華為麒麟深刷端口( HUAWEI USB COM 1.0 (COM3) )。如果電腦沒任何反應(yīng),你應(yīng)該檢查短接工具,數(shù)據(jù)線,電腦插口,手機(jī)是否關(guān)機(jī)狀態(tài),然后多短接幾次試

    2024年02月13日
    瀏覽(175)
  • 網(wǎng)絡(luò)連接出現(xiàn)意外錯(cuò)誤怎么辦

    一般而言,這問(wèn)題屬于動(dòng)態(tài)鏈?zhǔn)拢匦伦?cè),修復(fù)網(wǎng)絡(luò)。 下面就是小編整理的 方法/步驟 開始→運(yùn)行→輸入:ncpa.cpl 按回車鍵打開網(wǎng)絡(luò)連接。 右鍵點(diǎn)擊本地連接,出現(xiàn):網(wǎng)絡(luò)連接,出現(xiàn)意外錯(cuò)誤。 的提示。 開始→運(yùn)行(或者使用Win+R快捷鍵也能調(diào)出運(yùn)行)。 注冊(cè)動(dòng)態(tài)

    2024年02月08日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包