在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

什么是寄存器

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

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

基本隨便打開一份數(shù)字IC的數(shù)據(jù)手冊我們就會(huì)得到designer提供的register table。

圖片

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

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

給自己的一點(diǎn)理解:

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

圖片

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

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

這個(gè)module port數(shù)非常大,大到只要register table里的有的信號,就會(huì)從其他各個(gè)模塊電路拉進(jìn)來,input output信號極其多。

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

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

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

文檔大概的意思是說是用csrGen寫的一個(gè)腳本一樣的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,這種太難了我也看不懂怎么實(shí)現(xiàn)的。我們就看一個(gè)register讀的,和寫的。

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

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

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

圖片

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

Read

當(dāng)我們?nèi)プx寫reg的時(shí)候,實(shí)際上就傳入read的命令和address。

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

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

Write

當(dāng)我們?nèi)憆eg的時(shí)候,實(shí)際上就傳入write的命令和address和data值。

RTL級code如下,當(dāng)always塊敏感列表有write指令的時(shí)候,

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

當(dāng)對address 0,寫的時(shí)候,就把用戶想要寫入的數(shù)據(jù)up_datain[7:0],賦值給address 為0的field1_D。

圖片

我們剛才填寫的register profile就是

%A 0

7:0 field1

這里是對field1_D賦值而不是field1的原因是,在內(nèi)部生成了2個(gè)reg。一個(gè)是field1,field1_D。以我?guī)讉€(gè)禮拜的RTL coding基礎(chǔ),猜測是防止直接操作field1影響它原本所在的電路,通過下一個(gè)clk信號,

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

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

圖片

所以就有了以下結(jié)論,

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

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

圖片

A:每個(gè)address獲得的reg數(shù)據(jù)位寬和偏移有關(guān)系嗎?

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

圖片

A:上面結(jié)論是不是都對的?

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

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

    關(guān)注

    31

    文章

    5425

    瀏覽量

    123627
  • Register
    +關(guān)注

    關(guān)注

    0

    文章

    36

    瀏覽量

    14139
  • 地址
    +關(guān)注

    關(guān)注

    1

    文章

    32

    瀏覽量

    10981
收藏 人收藏

    評論

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

    寄存器是什么?怎么操作寄存器點(diǎn)亮LED燈?

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

    寄存器與移位寄存器

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

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

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

    數(shù)據(jù)寄存器,數(shù)據(jù)寄存器是什么意思

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

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

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

    寄存器培訓(xùn)教程

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

    寄存器與移位寄存器

    寄存器與移位寄存器:介紹寄存器原理和移位寄存器的原理及實(shí)現(xiàn)。
    發(fā)表于 05-20 11:47 ?0次下載

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

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

    寄存器變量

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

    移位寄存器的原理

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

    AD轉(zhuǎn)換寄存器設(shè)置

    AD轉(zhuǎn)換寄存器設(shè)置AD轉(zhuǎn)換寄存器設(shè)置AD轉(zhuǎn)換寄存器設(shè)置
    發(fā)表于 11-10 17:36 ?16次下載
    AD轉(zhuǎn)換<b class='flag-5'>寄存器</b>設(shè)置

    ARM通用寄存器及狀態(tài)寄存器詳解

    筆者來聊聊ARM通用寄存器以及狀態(tài)寄存器的認(rèn)識與理解。
    的頭像 發(fā)表于 01-06 14:58 ?8344次閱讀

    單片機(jī)工作寄存器作用 單片機(jī)常用專用寄存器

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

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

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

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

    寄存器是計(jì)算機(jī)中用于存儲(chǔ)數(shù)據(jù)的高速存儲(chǔ)單元,它們是CPU內(nèi)部的重要組成部分。寄存器可以分為基本寄存器和擴(kuò)展寄存器兩種類型。 一、基本寄存器
    的頭像 發(fā)表于 07-12 10:31 ?2139次閱讀
    主站蜘蛛池模板: 欧美不卡视频在线观看 | 黄网站在线观看永久免费 | 狠狠燥 | 激情网五月 | 久精品视频村上里沙 | 伦理片第一页 | 无毒不卡 | 久操视频网站 | 在线亚洲综合 | 视频一区在线观看 | 人人搞人人干 | 亚洲大成色www永久网址 | 四虎国产精品4hu永久 | 8050午夜一级二级全黄 | 午夜看片网站 | 久久青青草原精品老司机 | 欧美手机看片 | 美女被日出白浆 | 国产精品三级在线 | 一本大道香蕉大vr在线吗视频 | 视频一区日韩 | 国产日日操 | 视频网站在线 | 国产香蕉精品视频在 | 人人艹人人插 | 国产一级特黄 | 欧美综合天天夜夜久久 | 天天做天天摸 | 777欧美| 啪啪大片| 好吊色7777sao在线视频观看 | 免费看你懂的 | 看屁屁www视频免费观看 | 天天精品视频在线观看资源 | 在线视频免费播放 | 国产免费久久 | 在线高清一级欧美精品 | 午夜视频在线观看视频 | 日本综合视频 | 经典三级影院 | 1000又爽又黄禁片在线久 |