色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

什么是寄存器

jf_78858299 ? 來源:沈土豪的書屋 ? 作者:沈土豪 ? 2023-01-30 16:36 ? 次閱讀

有一個很無語的問題,什么是register?天天在配寄存器,但是不知道寄存器是什么。寄存器的地址偏移有的是1,有的是4。這個偏移量為什么偏移不是3?偏移量和register的data位數有沒有關系

基本隨便打開一份數字IC的數據手冊我們就會得到designer提供的register table。

圖片

比如一顆DAC,通過SPI接口,配置電壓寄存器。

24bit的register,A2:A0 選擇DAC地址,DB15:DB2設置DAC輸出電壓。

給自己的一點理解:

所有register,如果是接入clk的,xilinx稱為原語D flip-flop,就是大學本科的教材,D觸發器。

圖片

有32 bit的 register,就是32個DFF。DFF值從哪里來的?就是RTL級code的數百個module/IP里面input,output,reg信號

這些信號拉到哪里去?拉到reg access的module,這個reg access的module就是通過填表,通過腳本gen出來的電路。

這個module port數非常大,大到只要register table里的有的信號,就會從其他各個模塊電路拉進來,input output信號極其多。

這份文檔有描述FPGA/ASIC狀態寄存器和控制寄存器的做法:

csrGen: Automated CSRs for ASIC/FPGA Processor Interfaces .pdf

control/status registers (CSRs),的意思IC內部的控制寄存器和狀態寄存器。

文檔大概的意思是說是用csrGen寫的一個腳本一樣的code,用戶可以通過填寫register table,最后可以綜合生成verilog register RTL code。

填表

用戶填表:

圖片

大概的意思是:

第一行就是定義:A就是register的地址address縮寫, 為0x0,共8bit,名字field1

第三行就是定義:A就是register的地址address縮寫, 為0x1,共8bit,名字version,類型是RO

后面還有一些W1C,wite 1 clear register value,這種太難了我也看不懂怎么實現的。我們就看一個register讀的,和寫的。

后面通過它寫的CSRGen,可以gen出一份RTL code。

我們來看一下上面csrGen出來的RTL code。

RTL級code定義了一個module,可以看到實際上對于讀寫指令,實際上就是1bit控制信號read/write,傳入的address[3:0],和up_datain[7:0]。

圖片

同時可以看到剛才看到RO類型的寄存器8bit version,實際上是從其他IP拉過來的,可以認為IC內部有很多個module/IP,這個viersion[7:0]就是從其他IP拉給chip_up_ifc 模塊的。

Read

當我們去讀寫reg的時候,實際上就傳入read的命令和address。

RTL怎么實現的呢?就是通過在chip_up_ifc,在敏感列表響應到read == 1’b1,采樣address值,通過case匹配,把需要RW的register地址,賦值到用戶的讀寫reg的接口上,即up_dataout_D[7:0] = version ;

version是其他module拉線來的,對于這個chip_up_ifc來說是input信號,up_dataout_D[7:0]是chip_up_ifc輸出的。

Write

當我們去寫reg的時候,實際上就傳入write的命令和address和data值。

RTL級code如下,當always塊敏感列表有write指令的時候,

看到case敏感列表里面是address,這里IC內部排布的reg地址是從0 1 2 3 4….

當對address 0,寫的時候,就把用戶想要寫入的數據up_datain[7:0],賦值給address 為0的field1_D。

圖片

我們剛才填寫的register profile就是

%A 0

7:0 field1

這里是對field1_D賦值而不是field1的原因是,在內部生成了2個reg。一個是field1,field1_D。以我幾個禮拜的RTL coding基礎,猜測是防止直接操作field1影響它原本所在的電路,通過下一個clk信號,

才把field1 <= field1_D,打了一拍。

RTL在下面63行也有體現。register的初值怎么做到的,也在always塊的init1下降沿觸發賦值有體現。

圖片

所以就有了以下結論,

Q:IC內部的寄存器偏移地址一定是1或4,有什么含義嗎?

A:沒有任何意義。這邊address,在always塊每次匹配的是多少就是訪問的哪個reg,它可以偏移1,偏移100,1000都可以,甚至排布可以是1 3 5 7 9;

圖片

A:每個address獲得的reg數據位寬和偏移有關系嗎?

Q:也沒有,想定義每個address的reg的位寬是13個bit都可以,并不是8 /16/32 bit。RTL決定了本質是多少個DFF。在clock節拍下寄存下別的module拉過來的信號值。但是多少考慮到數據位寬,也要定義成8/16/32吧。

圖片

A:上面結論是不是都對的?

Q:不一定,都是我猜的,其實我是做硬件的不太懂FPGA,有幸在南郵讀書期間和FPGA coder聯調過小半年。這邊我猜測:軟件跑在SOC,SOC有些reg地址,好像就是access sram,sram有大小的,8k的sram就被分成了那么多地址。軟件那邊定義的應該有關聯的吧?RTL實現的reg是無關聯的。

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

    關注

    31

    文章

    5336

    瀏覽量

    120232
  • Register
    +關注

    關注

    0

    文章

    36

    瀏覽量

    13938
  • 地址
    +關注

    關注

    1

    文章

    32

    瀏覽量

    10763
收藏 人收藏

    評論

    相關推薦

    寄存器是什么?怎么操作寄存器點亮LED燈?

    寄存器,是集成電路中非常重要的一種存儲單元,通常由觸發組成。在集成電路設計中,寄存器可分為電路內部使用的寄存器和充當內外部接口的寄存器這兩
    的頭像 發表于 07-21 16:59 ?4013次閱讀
    <b class='flag-5'>寄存器</b>是什么?怎么操作<b class='flag-5'>寄存器</b>點亮LED燈?

    寄存器與移位寄存器

    寄存器與移位寄存器 寄存器是用來寄存數碼的邏輯部件,所以必須具備接收和寄存數碼的功能。任何一種觸發
    發表于 03-12 15:19 ?59次下載

    寄存器,寄存器是什么意思

    寄存器,寄存器是什么意思 寄存器定義  寄存器是中央處理內的組成部分。寄存器是有限存貯容量
    發表于 03-08 14:26 ?2.2w次閱讀

    數據寄存器,數據寄存器是什么意思

    數據寄存器,數據寄存器是什么意思 數據寄存器數據寄存器包括累加AX、基址寄存器BX、計數
    發表于 03-08 14:38 ?1.3w次閱讀

    移位寄存器,移位寄存器是什么意思

    移位寄存器,移位寄存器是什么意思 移位寄存器_
    發表于 03-08 14:50 ?1.8w次閱讀

    寄存器培訓教程

    寄存器培訓教程 7.4.1 寄存器1.定義2.電路舉例 3.邏輯功能分析7.4.2 移位寄存器一、單向移位寄存器㈠ 由4個維持阻塞D觸發
    發表于 03-08 14:52 ?1242次閱讀

    寄存器與移位寄存器

    寄存器與移位寄存器:介紹寄存器原理和移位寄存器的原理及實現。
    發表于 05-20 11:47 ?0次下載

    移位寄存器怎么用_如何使用移位寄存器_移位寄存器的用途

    移位寄存器是一個具有移位功能的寄存器,是指寄存器中所存的代碼能夠在移位脈沖的作用下依次左移或右移。本文主要介紹了移位寄存器的用途以及移位寄存器
    發表于 12-22 15:49 ?2w次閱讀

    寄存器變量

    C語言中使用關鍵字register來聲明局部變量為寄存器變量。寄存器變量的值會被存放在CPU的寄存器中,每當需要使用它們時,CPU就可以直接使用,而無須再通過控制從內存中獲取。由于操
    發表于 06-03 10:13 ?2365次閱讀

    移位寄存器的原理

    移位寄存器按照不同的分類方法可以分為不同的類型。 如果按照移位寄存器的移位方向來進行分類, 可以分為左移移位寄存器、移位寄存器和雙向移位寄存器
    發表于 07-15 09:38 ?7.5w次閱讀
    移位<b class='flag-5'>寄存器</b>的原理

    AD轉換寄存器設置

    AD轉換寄存器設置AD轉換寄存器設置AD轉換寄存器設置
    發表于 11-10 17:36 ?16次下載
    AD轉換<b class='flag-5'>寄存器</b>設置

    ARM通用寄存器及狀態寄存器詳解

    筆者來聊聊ARM通用寄存器以及狀態寄存器的認識與理解。
    的頭像 發表于 01-06 14:58 ?7148次閱讀

    單片機工作寄存器作用 單片機常用專用寄存器

    除了通用寄存器(如累加、通用寄存器等),單片機中還會有特定功能的寄存器,如定時寄存器、中斷控
    的頭像 發表于 04-08 14:46 ?7519次閱讀

    CPSR寄存器和APSR寄存器的組成

    程序狀態寄存器的作用就是反映處理的狀態信息。在程序運行期間我們可以通過查看程序狀態寄存器的狀態位來進行程序的分支跳轉處理,或者我們可以設置程序狀態寄存器的模式位來改變處理
    的頭像 發表于 10-20 11:38 ?4576次閱讀
    CPSR<b class='flag-5'>寄存器</b>和APSR<b class='flag-5'>寄存器</b>的組成

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

    寄存器是計算機中用于存儲數據的高速存儲單元,它們是CPU內部的重要組成部分。寄存器可以分為基本寄存器和擴展寄存器兩種類型。 一、基本寄存器
    的頭像 發表于 07-12 10:31 ?1322次閱讀
    主站蜘蛛池模板: 国产精品…在线观看| 99国产精品久久| 久久精品电影院| caoporn免费视频在线| 色cccwww| 好男人WWW免费高清视频在线| 99在线在线视频观看| 男人舔女人的阴部黄色骚虎视频| 邓奴的视频IVK| 亚洲精品色情APP在线下载观看| 芒果视频看片在线观看| 99视频久九热精品| 在线A亚洲老鸭窝天堂AV高清| 中文字幕爆乳JULIA女教师| yin荡体育课羞耻play双性| 我和黑帮老大第365天第2季在线 | 永久adc视频年龄确认| 97国产成人精品免费视频| 边做边爱播放3免费观看| 国产欧美二区综合| 久久精品手机观看| 日本69色视频在线观看| 九九热免费在线观看| 国产精品自拍| 大相蕉伊人狼人久草av| 中国hdxxxx医院护士| 亚洲黄色高清| 武侠古典久久亚洲精品| 欧美精品成人a多人在线观看| 灰原哀被啪漫画禁漫| 国产99久9在线| 俄罗斯性孕妇孕交| 97精品在线播放| 在线观看成人免费| 一本之道高清视频在线观看| 午夜片无码区在线观看| 日本枯瘦娇小| 日日操天天操夜夜操| 色噜噜狠狠色综合中文字幕| 日本bbwhd| 青青青青草原国产免费|