亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        用于像素陣列掃描控制的低功耗RISCV 處理器

        2022-06-29 06:08:28徐德利
        電子設(shè)計(jì)工程 2022年12期
        關(guān)鍵詞:內(nèi)核寄存器時(shí)鐘

        方 倪,徐德利,王 東,沈 凡,龔 祺

        (華中師范大學(xué)物理科學(xué)與技術(shù)學(xué)院像素實(shí)驗(yàn)室,湖北武漢 430079)

        隨著集成電路技術(shù)的快速發(fā)展,復(fù)雜電路的集成變得可行。高能物理實(shí)驗(yàn)中依托于CMOS 像素傳感器,像素傳感器最重要的指標(biāo)之一就是像素分辨率,提高像素分辨率可增加高能物理中發(fā)現(xiàn)新粒子的概率,因此大陣列CMOS 像素傳感器具有極其重要的應(yīng)用價(jià)值[1]。目前國(guó)內(nèi)對(duì)于大陣列的拼接主要利用精密壓電陶瓷電機(jī)完成探測(cè)器位置調(diào)整,并通過(guò)激光測(cè)距儀測(cè)量以及計(jì)算機(jī)平面擬合來(lái)確定探測(cè)器的空間位置,進(jìn)而實(shí)現(xiàn)大規(guī)模非連續(xù)CMOS 焦平面陣列的機(jī)械式拼接[2-3]。大陣列的讀出結(jié)構(gòu)主要采用Global shutter[4]、rolling shutter[5]、AERD (Address Encode and Reset Decode)[6]等方式。利用機(jī)械方式的拼接可以解決大陣列問(wèn)題,但是同時(shí)也會(huì)帶來(lái)外部連接的問(wèn)題,陣列讀出方式的選擇也是該類芯片需要研究的關(guān)鍵問(wèn)題。文中設(shè)計(jì)利用開源的RISCV 處理器構(gòu)建一個(gè)可重構(gòu)的數(shù)字讀出系統(tǒng)來(lái)克服這些問(wèn)題,通過(guò)外部的配置進(jìn)行讀出方式的選擇,通過(guò)外部接口的設(shè)計(jì)進(jìn)行多處理器之間的級(jí)聯(lián),實(shí)現(xiàn)大陣列像素的讀出,提高了系統(tǒng)兼容性。

        1 系統(tǒng)結(jié)構(gòu)

        像素陣列掃描控制器主要由3 個(gè)部分構(gòu)成:核心模塊、通信接口和像素掃描陣列;核心模塊搭載國(guó)內(nèi)開源的RISCV 內(nèi)核,主要任務(wù)是協(xié)調(diào)各個(gè)模塊之間正常運(yùn)轉(zhuǎn);通信接口主要采用JTAG 接口,利用JTAG 既可以完成核的燒錄也可以形成菊花鏈結(jié)構(gòu)級(jí)聯(lián)多核;像素掃描陣列實(shí)現(xiàn)常用的掃描方式及Global shutter &rolling shutter,能夠?qū)崿F(xiàn)兩個(gè)模式的切換、更改掃描的分辨率以及針對(duì)某一指定區(qū)域進(jìn)行掃描。像素陣列掃描控制器的結(jié)構(gòu)示意圖如圖1所示。

        圖1 像素陣列掃描控制器的結(jié)構(gòu)示意圖

        2 系統(tǒng)各個(gè)模塊的設(shè)計(jì)

        2.1 開源RISCV內(nèi)核

        RISCV 架構(gòu)主要由美國(guó)加州大學(xué)伯克利分校于2010年發(fā)明[7]。文中設(shè)計(jì)的內(nèi)核基于國(guó)內(nèi)開源RISCV處理器——蜂鳥E203[8],內(nèi)核設(shè)計(jì)遵循模塊化的原則,將處理器劃分成4個(gè)主體模塊單元,分別為系統(tǒng)存儲(chǔ)、外設(shè)部分、程序Debug 燒錄部分以及處理器core。系統(tǒng)存儲(chǔ)主要分為ITCM(Instruction Tightly Coulped Memory)、DTCM(Data Tightly Coulped Memory)以及通過(guò)QSPI 接口外接其他片外存儲(chǔ);外設(shè)部分主要包含了IIC、SPI、UART、GPIO、PWM 和Watch Dog;程序Debug 燒錄部分主要通過(guò)JTAG 進(jìn)行實(shí)現(xiàn);處理器core 為處理器核的所有邏輯部分。處理器的內(nèi)部模塊層次劃分如圖2 所示。

        圖2 處理器的模塊層次劃分

        內(nèi)核采用RV32IMAC 架構(gòu),支持32 位通用指令集,兼容16 位壓縮指令集以及多周期硬件乘除法單元。RISCV 指令集如表1 所示(僅展示該設(shè)計(jì)用到的指令集)。原蜂鳥E203 處理器采用深度二級(jí)流水線設(shè)計(jì),處理器中采用流水線的作用是提升系統(tǒng)整體的運(yùn)行速度,流水線的本質(zhì)就是利用面積換取系統(tǒng)性能。微處理器性能的決定因素根據(jù)下式[9]體現(xiàn):

        表1 RISCV指令集

        處理器時(shí)鐘頻率主要根據(jù)時(shí)序電路之間的最大組合邏輯延時(shí)得到,流水線是將單周期長(zhǎng)的組合邏輯的操作分成多個(gè)組合邏輯實(shí)現(xiàn),計(jì)算組合邏輯中最大的延時(shí)就是當(dāng)前處理器的時(shí)鐘頻率,由此可以減少時(shí)序電路之間的組合邏輯,但帶來(lái)了寄存器數(shù)量的增加,也就是使用D 觸發(fā)器的數(shù)量變多,從而導(dǎo)致系統(tǒng)的面積隨之增加。文中設(shè)計(jì)綜合考慮面積和性能,選擇經(jīng)典五級(jí)流水線的結(jié)構(gòu),將取值(IFU)、譯碼(ID)、執(zhí)行(EXU)、訪存(MEM)、寫回(WB)各自作為一級(jí),其流水線結(jié)構(gòu)如圖3 所示。

        圖3 處理器流水線結(jié)構(gòu)

        對(duì)于處理器而言,不僅僅需要關(guān)注性能,還需要關(guān)注整體的功耗,該處理器低功耗[10]的設(shè)計(jì)主要從以下兩個(gè)方面進(jìn)行考慮:第一,采用不同的時(shí)鐘域,速度要求不高的模塊放在低時(shí)鐘域下,以低功耗運(yùn)行,該處理器分為3 個(gè)時(shí)鐘域,具體如表2 所示;第二,內(nèi)部單元配備獨(dú)立的門控時(shí)鐘(Clock Gate)[11],當(dāng)該模塊或者單元空閑時(shí),使用門控時(shí)鐘的合理關(guān)斷來(lái)節(jié)省動(dòng)態(tài)功耗[12]。

        表2 處理器的時(shí)鐘域

        2.2 通信接口設(shè)計(jì)

        通信接口用于實(shí)現(xiàn)處理器程序的更新以及多核之間的連接,采用的是JTAG 接口,開源蜂鳥E203 內(nèi)部采用JTAG 接口進(jìn)行程序燒錄,利用JTAG 支持菊花鏈[13]的連接模式,從而可以拓展成多核之間的連接。JTAG 接口內(nèi)部主要由TAP(狀態(tài)控制器)、數(shù)據(jù)寄存器、指令寄存器、旁路寄存器以及移位寄存器五部分構(gòu)成。文中設(shè)計(jì)采用標(biāo)準(zhǔn)四線接口:TMS(測(cè)試模式選擇)、TCK(測(cè)試時(shí)鐘輸入)、TDI(測(cè)試數(shù)據(jù)輸入)、TDO(測(cè)試數(shù)據(jù)輸出)[14]。時(shí)鐘通過(guò)TCK 引腳輸入,驅(qū)動(dòng)內(nèi)部時(shí)序邏輯運(yùn)轉(zhuǎn),通過(guò)時(shí)鐘的上升沿采集TMS 的信號(hào)變化,從而改變內(nèi)部TAP 狀態(tài)機(jī)的變化。測(cè)試數(shù)據(jù)從TDI 引腳輸入,輸入的是指令和數(shù)據(jù),最終通過(guò)移位寄存器將數(shù)據(jù)通過(guò)TDO 引腳輸出。JTAG 內(nèi)部TAP 狀態(tài)轉(zhuǎn)移圖如圖4 所示。JTAG接口不僅實(shí)現(xiàn)對(duì)處理器的程序燒錄和Debug 操作,還可以起到多核之間的連接作用,采用菊花鏈的連接模式,通過(guò)JTAG 的內(nèi)部Bypass 透?jìng)髦噶顚⑶耙患?jí)的數(shù)據(jù)直接送入到下一級(jí),形成多核之間首尾相接的形式。JTAG 的菊花鏈連接結(jié)構(gòu)如圖5 所示。

        圖4 TAP狀態(tài)轉(zhuǎn)移圖

        圖5 菊花鏈連接結(jié)構(gòu)

        2.3 像素掃描接口設(shè)計(jì)

        對(duì)像素探測(cè)器而言,能夠正確有效地得到當(dāng)前粒子的信息是比較關(guān)鍵的,這就需要依托于設(shè)計(jì)中的讀出系統(tǒng)是否設(shè)計(jì)合理,目前相機(jī)常見的陣列掃描采用的是Global shutter&rolling shutter方式[15]。傳統(tǒng)方法通過(guò)數(shù)字流程設(shè)計(jì)制作出某一種讀出方式,然后集成到像素芯片上,這樣就固定了掃描方式,不利于芯片后期的測(cè)試以及修改。為了能夠兼容多種讀出方式,給處理器增加了一個(gè)像素掃描外設(shè)模塊,該模塊接口管腳的定義如圖6 所示。該模塊主要實(shí)現(xiàn)了3種功能:第一,實(shí)現(xiàn)Global shutter&rolling shutter,并且可以實(shí)現(xiàn)兩種模式的切換;第二,實(shí)現(xiàn)Global shutter &rolling shutter 模式之間對(duì)于像素分辨率的切換;第三,實(shí)現(xiàn)Global shutter &rolling shutter 模式下對(duì)指定像素區(qū)域進(jìn)行掃描。

        圖6 像素接口設(shè)計(jì)

        3 設(shè)計(jì)結(jié)果

        文中處理器開發(fā)的軟件平臺(tái)采用Ubuntu16.04系統(tǒng),硬件開發(fā)語(yǔ)言采用Verilog HDL,硬件平臺(tái)選用Xilinx Artix-35T FPGA 開發(fā)板[16],仿真測(cè)試工具采用Vivado 以及VCS 軟件。

        整個(gè)驗(yàn)證過(guò)程主要分為以下兩個(gè)步驟:首先對(duì)處理器、像素掃描模塊以及JTAG 多核級(jí)聯(lián)等模塊進(jìn)行功能仿真,查看仿真波形結(jié)果與理論結(jié)果是否一致;第二步將整體模塊通過(guò)Vivado 工具編譯綜合,將生成的.bit文件燒錄到FPGA 開發(fā)板中進(jìn)行硬件測(cè)試。

        首先對(duì)每個(gè)模塊進(jìn)行前期功能驗(yàn)證,主要通過(guò)編寫testbench輸入正確的激勵(lì)得到輸出波形,最后比較結(jié)果的正確性。處理器的仿真激勵(lì)通過(guò)對(duì)內(nèi)部的ITCM進(jìn)行寫操作,將需要測(cè)試的指令通過(guò)編譯器轉(zhuǎn)換成機(jī)械碼相當(dāng)于對(duì)ITCM的某些地址寫入對(duì)應(yīng)的數(shù)據(jù)。

        測(cè)試的指令為ADD 指令,通過(guò)編譯器將編寫好的C 代碼轉(zhuǎn)化成ROM 可讀的機(jī)器碼文件,如測(cè)試仿真代碼中的rv32ui-p-addi.verilog 文件,使用Verilog的readmemh 函數(shù)讀入文件,初始化ITCM,由Verilog編寫的二維數(shù)組充當(dāng)行為模型。最終測(cè)試結(jié)果如圖7 所示。從仿真結(jié)果中可以看出,寫入到ITCM 中的數(shù)據(jù)與最終對(duì)ITCM 進(jìn)行讀出的數(shù)據(jù)是一致的,最終數(shù)據(jù)正確后寫回寄存器X3,X3 為“1”則通過(guò)仿真檢驗(yàn),最終打印出PASS 結(jié)果;否則測(cè)試結(jié)果有誤,打印出Fail字樣。

        圖7 處理器仿真測(cè)試結(jié)果

        測(cè)試文件中ITCM 寄存器地址為0x00,需要寫入的數(shù)據(jù)為16′h3405107 30001AA0D,通過(guò)仿真控制模塊內(nèi)核查看ITCM 的信號(hào)結(jié)果,指令地址addr=0000 的數(shù)據(jù)dout 為34051073_0001AA 0D,符合最終的設(shè)計(jì)結(jié)果。

        為了進(jìn)一步驗(yàn)證該處理器的可行性,進(jìn)行FPGA原型驗(yàn)證。將模塊通過(guò)Vivado 工具進(jìn)行編譯綜合,生成bitstream 文件,利用開發(fā)板進(jìn)行硬件驗(yàn)證。通過(guò)JTAG 調(diào)試器將數(shù)據(jù)送入開發(fā)板的Memory 中,然后利用GCC工具鏈對(duì)寫好的C程序進(jìn)行編譯,將編譯好的程序下載到開發(fā)板中,通過(guò)串口看出最終的輸出結(jié)果。以經(jīng)典的“Hello world”程序?yàn)槔瑢?duì)于編寫好的C程序,為了更直觀地看到其結(jié)果,在C中調(diào)用串口。以PC端為接收器,配置好對(duì)應(yīng)串口ttyUSB2 以及波特率115 200 bit/s。通過(guò)PC 端調(diào)用串口指定顯示當(dāng)前串口號(hào)下的信息,最終的運(yùn)行結(jié)果如圖8所示[17]。

        圖8 硬件測(cè)試結(jié)果

        目前該系統(tǒng)已經(jīng)設(shè)計(jì)完成,正準(zhǔn)備進(jìn)行流片工作,前期針對(duì)RISCV 內(nèi)核進(jìn)行了一次流片,采用的是商用130 nm CMOS 工藝,主要修改內(nèi)容是將內(nèi)部的IP 替換成工廠提供的IP 核。

        將芯片進(jìn)行綁定測(cè)試,鍵合到印制電路板(PCB),焊接后進(jìn)行測(cè)試,測(cè)試平臺(tái)如圖9 所示。芯片的外部輸入由FPGA 板提供,通過(guò)查看信號(hào)源以及Vivado硬件仿真波形驗(yàn)證芯片功能。

        圖9 芯片測(cè)試平臺(tái)

        4 結(jié)論

        文中提出了一種可重構(gòu)的數(shù)字讀出系統(tǒng),主要應(yīng)用于高能物理像素探測(cè)器中,該系統(tǒng)能夠兼容多種像素讀出方式,并且通過(guò)外部接口進(jìn)行多核連接和多核之間的通信。該內(nèi)核已經(jīng)采用商用130 nm CMOS 工藝設(shè)計(jì)完成,處理器在40 MHz 的頻率下靜態(tài)功耗為5.221 2 mW,動(dòng)態(tài)功耗為53.024 9 mW。

        猜你喜歡
        內(nèi)核寄存器時(shí)鐘
        萬(wàn)物皆可IP的時(shí)代,我們當(dāng)夯實(shí)的IP內(nèi)核是什么?
        別樣的“時(shí)鐘”
        強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
        古代的時(shí)鐘
        Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
        基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計(jì)
        Linux內(nèi)核mmap保護(hù)機(jī)制研究
        分簇結(jié)構(gòu)向量寄存器分配策略研究*
        有趣的時(shí)鐘
        時(shí)鐘會(huì)開“花”
        极品少妇被猛的白浆直喷白浆| 国产毛片一区二区三区| 国产白浆一区二区三区佳柔| 国产不卡在线视频观看| 久久久久免费看成人影片| 亚洲欧美日韩国产综合一区二区| 久久一区二区三区四区| 中文字幕精品人妻av在线| 亚洲一区亚洲二区视频在线| 国内少妇毛片视频| 朝鲜女子内射杂交bbw| 野外三级国产在线观看| 国产成人久久精品二区三区| 肥老熟女性强欲五十路| 岳毛多又紧做起爽| 三上悠亚免费一区二区在线| 亚洲一区二区三区中文视频| 一级老熟女免费黄色片| 欧美成人精品a∨在线观看| 亚洲成a人片在线观看无码| 久久亚洲午夜牛牛影视| 久久久久久久久久久熟女AV| 国产一区二区三区观看视频| 久久这里都是精品一区| 免费中文熟妇在线影片| av手机天堂在线观看| 手机看片自拍偷拍福利| 人人妻人人爽人人澡人人| 成人区视频| 国产啪啪视频在线观看| 久久精品亚洲熟女av蜜謦| 在线播放免费播放av片| 在线播放国产女同闺蜜| 精品女同一区二区三区免费播放| 又黄又刺激的网站久久| 男女爽爽无遮挡午夜视频| 久久无码一一区| 精品女同一区二区三区亚洲| 人人爽久久久噜人人看| 国产大学生粉嫩无套流白浆| 中文字幕无码免费久久9|