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

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

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

教你們怎么去設(shè)定寄存器的初始值

FPGA技術(shù)驛站 ? 來源:Teacher Gao ? 作者:Teacher Gao ? 2021-04-01 10:27 ? 次閱讀

對于寄存器,如果沒有明確指定其初始值,Vivado會根據(jù)其類型(FDCE/FDRE/FDPE/FDRE)設(shè)定合適的初始值。有些工程師喜歡使用復(fù)位信號,對所有的寄存器進(jìn)行上電復(fù)位,使其在處理數(shù)據(jù)之前達(dá)到期望初始狀態(tài)。但這會有一個不利之處就是復(fù)位信號的扇出很大,從而消耗了大量的布線資源,甚至造成布線擁塞。那么能不能讓寄存器在上電之后不用通過復(fù)位就輸出期望值呢?答案是肯定的。

Xilinx也建議對于同步元件,最好設(shè)定其初始值。這里我們以最常用的寄存器為例。如果使用的是VHDL,可以采用下面的方法設(shè)定寄存器初始值,如下圖所示。

ccd385aa-923c-11eb-8b86-12bb97331649.png

如果使用的是Verilog,可以采用下面的方法設(shè)定寄存器初始值,如下圖所示。

ccdf4f48-923c-11eb-8b86-12bb97331649.png

此外,對于Verilog,也可通過initial設(shè)定初始值,如下圖所示。

ccedec4c-923c-11eb-8b86-12bb97331649.png

采用這種方法的好處是:綜合工具是支持的,這樣生成bit文件時這些初始值會被寫入配置文件中,上電即可生效,避免了使用復(fù)位造成的扇出過大;同時在仿真時,也能跟實(shí)際業(yè)務(wù)相匹配。 為了驗(yàn)證這個方法是否生效,只需要打開綜合后的.dcp,找到相應(yīng)的寄存器,在其Property窗口中查看屬性INIT的值,如下圖所示。

ccff28e0-923c-11eb-8b86-12bb97331649.png

編輯:jq

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

    關(guān)注

    31

    文章

    5359

    瀏覽量

    120812
  • 上電復(fù)位
    +關(guān)注

    關(guān)注

    1

    文章

    39

    瀏覽量

    15830
  • init
    +關(guān)注

    關(guān)注

    0

    文章

    16

    瀏覽量

    3436

原文標(biāo)題:如何設(shè)定寄存器的初始值?

文章出處:【微信號:Lauren_FPGA,微信公眾號:FPGA技術(shù)驛站】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    ads124s08把AIN0端口接入的采集電壓斷開或者接通,芯片的寄存器所有配置都變成默認(rèn)的初始值了,為什么?

    題是我把AIN0端口接入的采集電壓斷開或者接通,芯片的寄存器所有配置都變成默認(rèn)的初始值了,整個芯片進(jìn)行復(fù)位。我不知道這個是原因。下面是我的連接圖。
    發(fā)表于 12-13 07:06

    ADS1263初始化后,讀取的寄存器都為0,為什么?

    ADS1263初始化后,讀取的寄存器都為0,這是為什么?
    發(fā)表于 12-09 07:03

    AFE4404沒有接外部時鐘,4404寄存器的為初始值,能夠通過IIC修改寄存器嗎?

    1、首先AFE4404寄存器默認(rèn)使用外部時鐘,CLK引腳是否必須要先接一個時鐘,通過修改寄存器改為內(nèi)部時鐘,然后再停止外部時鐘?? 2、假如沒有接外部時鐘,4404寄存器的為
    發(fā)表于 12-06 06:35

    使用ADS1256的8個Single-Ended輸入采集壓力傳感數(shù)據(jù),壓力傳感空載時AIN0-AIN7 8個通道初始值不是直線,為什么?

    最近使用ADS1256的8個Single-Ended輸入采集壓力傳感數(shù)據(jù),發(fā)現(xiàn)在壓力傳感空載的時候,AIN0-AIN7 8個通道的初始值不是一條直線, 而是有規(guī)律地被拉低,剛好
    發(fā)表于 12-04 07:45

    Modbus協(xié)議的讀取保持寄存器

    功能碼用于讀取從設(shè)備保持寄存器的內(nèi)容,不支持廣播模式。消息頓中指定了需要讀取的保持寄存器的起始地址和數(shù)目。而保持寄存器中各地址的具體內(nèi)容和意義則由設(shè)備開發(fā)者自行規(guī)定。
    的頭像 發(fā)表于 10-30 10:54 ?1739次閱讀

    詳解寄存器模型鏡像

    DUT的配置寄存器是實(shí)際,reg_model有鏡像、期望的概念。
    的頭像 發(fā)表于 10-23 09:43 ?343次閱讀
    詳解<b class='flag-5'>寄存器</b>模型鏡像<b class='flag-5'>值</b>

    TAS5733L按照初始化的寄存器配置,播放音樂無聲是怎么回事?

    按照貴司提供的初始化的寄存器配置(如附件)設(shè)置,讀取0x05,0x06也是設(shè)定。播放音樂此時仍然無聲。 請問,是否還有額外的寄存器需要
    發(fā)表于 10-21 07:41

    寄存器是什么意思?寄存器是如何構(gòu)成的?

    在計算機(jī)科學(xué)中,寄存器(Register)是一個高速存儲單元,它位于中央處理(CPU)內(nèi)部,用于存儲計算機(jī)程序執(zhí)行過程中所需要的數(shù)據(jù)、指令地址或狀態(tài)信息。寄存器是計算機(jī)體系結(jié)構(gòu)中至關(guān)重要的組成部分,對計算機(jī)的運(yùn)算速度和性能有著
    的頭像 發(fā)表于 08-02 18:23 ?4605次閱讀
    <b class='flag-5'>寄存器</b>是什么意思?<b class='flag-5'>寄存器</b>是如何構(gòu)成的?

    寄存器尋址和直接尋址的區(qū)別

    寄存器尋址和直接尋址是計算機(jī)指令系統(tǒng)中的兩種基本尋址方式。它們在指令的執(zhí)行過程中起著至關(guān)重要的作用,決定了指令操作數(shù)的來源和目標(biāo)。下面我們將介紹這兩種尋址方式的特點(diǎn)、區(qū)別以及在實(shí)際應(yīng)用中的優(yōu)缺點(diǎn)
    的頭像 發(fā)表于 07-12 10:42 ?2161次閱讀

    寄存器尋址的實(shí)現(xiàn)方式

    在計算機(jī)體系結(jié)構(gòu)中,寄存器尋址是一種常見的尋址方式,它允許程序直接訪問CPU內(nèi)部的寄存器。寄存器尋址可以提高程序的執(zhí)行效率,因?yàn)樗苊饬藢?nèi)存的訪問。 寄存器尋址的基本概念
    的頭像 發(fā)表于 07-12 10:36 ?765次閱讀

    寄存器分為基本寄存器和什么兩種

    寄存器是計算機(jī)中用于存儲數(shù)據(jù)的高速存儲單元,它們是CPU內(nèi)部的重要組成部分。寄存器可以分為基本寄存器和擴(kuò)展寄存器兩種類型。 一、基本寄存器
    的頭像 發(fā)表于 07-12 10:31 ?1529次閱讀

    干貨滿滿:ARM的內(nèi)核寄存器講解

    內(nèi)核寄存器與外設(shè)寄存器: 內(nèi)核寄存器與外設(shè)寄存器是完全不同的概念。內(nèi)核寄存器是指 CPU 內(nèi)部的寄存器
    發(fā)表于 04-17 11:47 ?4050次閱讀
    干貨滿滿:ARM的內(nèi)核<b class='flag-5'>寄存器</b>講解

    loop指令執(zhí)行時,隱含的寄存器

    當(dāng)執(zhí)行l(wèi)oop指令時,隱含的寄存器是CX寄存器。CX寄存器是循環(huán)計數(shù)寄存器,它存儲了循環(huán)的迭代次數(shù)。 在匯編語言中,loop指令用于實(shí)現(xiàn)循
    的頭像 發(fā)表于 02-14 16:15 ?1009次閱讀

    CPU的6個主要寄存器

    CPU寄存器是中央處理內(nèi)的組成部分,是有限存貯容量的高速存貯部件。寄存器是CPU內(nèi)部的元件,包括通用寄存器、專用寄存器和控制
    的頭像 發(fā)表于 02-03 15:15 ?4610次閱讀

    TC275在內(nèi)存分段預(yù)警處理之后,設(shè)置的全局變量初始值不正確怎么解決?

    大家好想問一下,tc275里,自己在地圖文件里定義有了新的存檔段,又設(shè)置了首地位置,段內(nèi)對象可寫,4字節(jié)對齊。但是在內(nèi)存分段預(yù)警處理之后,設(shè)置的全局變量初始值不正確,板子上電后會給出一個隨機(jī),而不會是自己設(shè)定
    發(fā)表于 01-22 06:40