• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      浮點(diǎn)型DSP中異步FIFO的研究與設(shè)計(jì)

      2018-01-26 04:58:17湘潭大學(xué)物理與光電工程學(xué)院吳修英
      電子世界 2018年1期
      關(guān)鍵詞:亞穩(wěn)態(tài)二進(jìn)制指針

      湘潭大學(xué)物理與光電工程學(xué)院 吳修英

      湖南進(jìn)芯電子科技有限公司 黃嵩人

      1.引言

      信號的跨時(shí)鐘域傳輸很容易產(chǎn)生亞穩(wěn)態(tài),而亞穩(wěn)態(tài)對于SOC的穩(wěn)定運(yùn)行又是潛在的巨大危險(xiǎn)。異步信號的跨時(shí)鐘域處理又分為一位信號的同步和多位數(shù)據(jù)信號的同步。本文所研究的異步FIFO為多位數(shù)據(jù)信號的同步,主要作為不同時(shí)鐘域之間數(shù)據(jù)傳輸?shù)闹虚g緩存使用,大大降低了異步信號可能帶來的亞穩(wěn)態(tài)[1]。FIFO是一種先入先出存儲器,沒有外部讀寫地址線,因此只能順序?qū)懭牒妥x出,待寫入及讀出的數(shù)據(jù)位置由內(nèi)部讀寫地址指針產(chǎn)生。

      2.浮點(diǎn)型DSP的整體結(jié)構(gòu)簡介

      本項(xiàng)目所研發(fā)DSP采用改進(jìn)型哈佛架構(gòu)[2],集成有CPU及浮點(diǎn)處理器FPU。具有三組獨(dú)立的地址總線及三組獨(dú)立的數(shù)據(jù)總線。因此CPU對指令的讀取和對數(shù)據(jù)的操作可以同時(shí)進(jìn)行,因此大大提高了CPU的運(yùn)行速度,而flash、eeprom等非易失存儲器的存取速度遠(yuǎn)低于CPU的運(yùn)行速度,若是使用CPU直接和低速存儲器進(jìn)行通信,則造成CPU的資源巨大浪費(fèi),為了匹配速度上的差別,為此特設(shè)計(jì)了異步FIFO模塊以實(shí)現(xiàn)速度的匹配。該DSP集成了I2C、SPI、PWM和EQEP等多種外設(shè)。

      3.異步FIFO工作原理

      如圖1所示為異步FIFO的設(shè)計(jì)框圖。

      圖1 異步FIFO工作原理圖

      根據(jù)異步FIFO的工作原理,先定義出異步FIFO的主要端口信號及相關(guān)參數(shù)如下:

      FIFO的深度:FIFO存儲體中所能容納的數(shù)據(jù)的總數(shù)。

      FIFO的寬度:FIFO進(jìn)行一次讀或者寫操作的數(shù)據(jù)位的位數(shù)。FIFO滿標(biāo)志:滿標(biāo)志位是由其狀態(tài)電路發(fā)出的指示信號,表示FIFO已滿或者將要滿,以阻止外部繼續(xù)對其進(jìn)行寫操作而造成數(shù)據(jù)丟失。

      FIFO空標(biāo)志:空標(biāo)志位是由其狀態(tài)電路發(fā)出的指示信號,表示FIFO已空或者將要空,以阻止外部繼續(xù)對其進(jìn)行讀操作而造成讀出無效的數(shù)據(jù)。

      讀數(shù)據(jù)時(shí)鐘rclk:讀操作所遵循的時(shí)鐘,在每個(gè)有效時(shí)鐘沿來臨時(shí)讀出數(shù)據(jù)。

      寫數(shù)據(jù)時(shí)鐘wclk:寫操作所遵循的時(shí)鐘,在每個(gè)有效時(shí)鐘沿來臨時(shí)寫入數(shù)據(jù)。

      讀數(shù)據(jù)指針rptr:指向下一個(gè)將要讀出的數(shù)據(jù)的地址,讀完后自動加1。

      寫數(shù)據(jù)指針wptr:指向下一個(gè)將要寫入的數(shù)據(jù)的地址,寫入后自動加1。

      異步FIFO的設(shè)計(jì)主要包括兩大模塊,一個(gè)是用于存儲數(shù)據(jù)的存儲體的設(shè)計(jì),該存儲體一般使用代工廠提供的IP核;另一個(gè)是FIFO的讀寫控制器的設(shè)計(jì)??刂破髦饕亲x寫地址產(chǎn)生邏輯和空滿標(biāo)志產(chǎn)生邏輯。

      3.1 指針同步比較器的設(shè)計(jì)

      通過對讀指針和寫指針的比較,就可以產(chǎn)生FIFO空或者滿標(biāo)志位。由于讀寫指針是屬于不同的時(shí)鐘域,而不同時(shí)鐘域之間直接比較會產(chǎn)生亞穩(wěn)態(tài)的問題,因此要對其讀指針和寫指針進(jìn)行比較的前提是將這兩個(gè)信號先同步到同一個(gè)時(shí)鐘域。在此設(shè)計(jì)中使用兩級D觸發(fā)器串聯(lián)來構(gòu)成同步器,以對對這兩個(gè)信號進(jìn)行同步[3]。

      3.2 格雷碼計(jì)數(shù)器的設(shè)計(jì)

      一般計(jì)數(shù)器的設(shè)計(jì)會采用二進(jìn)制直接設(shè)計(jì),這在同一個(gè)時(shí)鐘域里沒有什么大的問題,但對于跨時(shí)鐘域的設(shè)計(jì)采用二進(jìn)制計(jì)數(shù)器則容易產(chǎn)生毛刺,而導(dǎo)致不穩(wěn)定,因?yàn)槎M(jìn)制數(shù)從一個(gè)數(shù)值變換到另一個(gè)數(shù)值時(shí)可能多位數(shù)據(jù)位都會跳變,比如由1111到0000的跳變。而跳變的位數(shù)越多,在采樣時(shí)越容易產(chǎn)生錯(cuò)誤。為了減小這種錯(cuò)誤的發(fā)生,采用格雷碼對該計(jì)數(shù)器進(jìn)行設(shè)計(jì)是一個(gè)很好的選擇,因?yàn)楦窭状a在計(jì)數(shù)時(shí)由一個(gè)值跳變到下一個(gè)計(jì)數(shù)值時(shí)僅有一位發(fā)生跳變,這就大大降低了采樣錯(cuò)誤的可能性。由于設(shè)計(jì)者大多習(xí)慣于二進(jìn)制計(jì)數(shù)制,所以設(shè)計(jì)中采用二進(jìn)制計(jì)數(shù),但是要將二進(jìn)制數(shù)再轉(zhuǎn)換為格雷碼以降低誤碼率。

      根據(jù)二進(jìn)制數(shù)與格雷碼之間的關(guān)系,可知二進(jìn)制數(shù)到格雷碼轉(zhuǎn)換的公式為:

      Gray =(bin[n-1:0])^{1’b0,bin[n-1:1]};

      格雷碼到二進(jìn)制數(shù)的轉(zhuǎn)換公式為:

      bin[i] = ^(gray[n-1:i])

      3.3 空滿標(biāo)志位的產(chǎn)生

      FIFO何時(shí)為空,何時(shí)為滿?對于FIFO的讀寫指針,總是指向下一個(gè)待讀出或者寫入的位置。約定在復(fù)位后讀寫指針同時(shí)回到初始位置,此時(shí)FIFO已經(jīng)為空,只能對其進(jìn)行寫人操作,寫入后如果再對其進(jìn)行讀操作,如果讀時(shí)鐘大于寫時(shí)鐘,那么讀指針總會趕上寫指針。那么當(dāng)讀指針等于寫指針的時(shí)候就認(rèn)為FIFO已空,此時(shí)產(chǎn)生有效的空標(biāo)志位。與之相比滿標(biāo)志位的產(chǎn)生相對復(fù)雜些,如果寫指針已經(jīng)指向FIFO的頂端并且此時(shí)還在繼續(xù)寫操作,則寫指針又回到FIFO的底部并開始向上增長,如果寫指針又“追趕上”了讀指針,則認(rèn)為FIFO已滿。但是滿和空的條件都是讀寫指針指向FIFO同一位置[4]。究竟如何讓硬件判斷是滿還是空?為了區(qū)分兩種標(biāo)志位,采用增加最高位地址位的辦法,低位地址用來作為指針對存儲體進(jìn)行尋址,最高位作為空滿標(biāo)志的判斷位。若是讀寫指針的低位相同且最高位也相同,則空標(biāo)志位有效;若是讀寫指針的低位相同但最高位不同,則滿標(biāo)志位有效。

      4.FIFO中主要模塊的設(shè)計(jì)

      4.1 讀指針到寫指針的同步模塊 re_to_wr

      該模塊采用兩級D觸發(fā)器的級連采樣同步,將格雷碼表示的讀指針同步到寫指針的時(shí)鐘域,采用兩級同步可以很好的消除亞穩(wěn)態(tài),對于頻率很高的設(shè)計(jì),建議采用三級DFF同步采樣。采用同樣的設(shè)計(jì)方法亦可實(shí)現(xiàn)寫指針到讀指針的同步模塊wr_to_re的設(shè)計(jì)。Verilog設(shè)計(jì)主要部分代碼如下:

      4.2 讀控制器模塊rd_ctrl

      該模塊用來實(shí)現(xiàn)FIFO的讀控制,主要用來產(chǎn)生讀尋址指針、讀比較指針和二進(jìn)制數(shù)到格雷碼的轉(zhuǎn)換。在設(shè)計(jì)中讀尋址指針比讀比較指針少一位,器設(shè)計(jì)原理見3.3節(jié)空滿標(biāo)志位的產(chǎn)生?;谕瑯拥脑砜稍O(shè)計(jì)出寫控制器模塊wr_ctrl。模塊verilog設(shè)計(jì)代碼如下:

      5.異步FIFO的驗(yàn)證及結(jié)論

      根據(jù)上述對異步FIFO的理論分析及功能設(shè)計(jì),采用業(yè)界流行的verilog語言對設(shè)計(jì)的模塊進(jìn)行RTL級建模。對于驗(yàn)證測試采用流行的EDA工具Synopsys公司的Ncverilog仿真工具,建立相應(yīng)的Test bench,對所設(shè)計(jì)的異步FIFO的RTL級描述進(jìn)行功能驗(yàn)證[5]。仿真波形如圖2所示,對比仿真波形及功能需求可知,該異步FIFO的設(shè)計(jì)完全符合功能要求。該異步FIFO 成功應(yīng)用于所研發(fā)的項(xiàng)目32位浮點(diǎn)型DSP中,實(shí)現(xiàn)了從外掛SPI Flash中緩存數(shù)據(jù)和程序,實(shí)現(xiàn)高速CPU和低速外設(shè)之間的速度匹配。其中的格雷碼使用也大大降低了產(chǎn)生亞穩(wěn)態(tài)的可能性。

      當(dāng)wclk周期為100ns,rclk周期為200ns時(shí),仿真波形如下:

      當(dāng)wclk周期為200ns,rclk周期為100ns時(shí),仿真波形如下:

      圖2 異步FIFO仿真波形圖

      [1]李廣軍,林永生.Verilog HDL高級數(shù)字設(shè)計(jì)(第二版)[M].北京:電子工業(yè)出版社,2014.2:383-391.

      [2]TMS320F28335 Digital Signal Controllers Data Manual.pdf[OL].2007.6:58-64.

      [3]周潤德,等譯.數(shù)字集成電路—電路、系統(tǒng)與設(shè)計(jì)(第二版)[M].北京:電子工業(yè)出版社,2010.11:392-396.

      [4]Simulation and Synthesis Techniques for Asynchronous FIFO design.pdf[OL].

      [5]夏宇聞,楊雷,陳先勇等譯.SystemVerilog驗(yàn)證方法學(xué)[M].北京:航空航天大學(xué)出版社,2007,5:173-187.

      猜你喜歡
      亞穩(wěn)態(tài)二進(jìn)制指針
      用二進(jìn)制解一道高中數(shù)學(xué)聯(lián)賽數(shù)論題
      2016年門源MS6.4地震前跨斷層短水準(zhǔn)短期異常的機(jī)理探討
      地震研究(2020年4期)2020-09-26 10:08:11
      有趣的進(jìn)度
      二進(jìn)制在競賽題中的應(yīng)用
      偷指針的人
      FPGA設(shè)計(jì)中跨時(shí)鐘域的問題與方法
      為什么表的指針都按照順時(shí)針方向轉(zhuǎn)動
      基于改進(jìn)Hough變換和BP網(wǎng)絡(luò)的指針儀表識別
      電測與儀表(2015年5期)2015-04-09 11:30:42
      ARM Cortex—MO/MO+單片機(jī)的指針變量替換方法
      非對稱反饋神經(jīng)網(wǎng)絡(luò)中亞穩(wěn)態(tài)的位置與穩(wěn)定性
      五家渠市| 荆州市| 迁西县| 白水县| 云南省| 固安县| 滨海县| 平陆县| 无极县| 彰化市| 东明县| 洛扎县| 宝坻区| 临清市| 安顺市| 江川县| 青海省| 光山县| 虎林市| 邵阳市| 安庆市| 嘉义市| 乐东| 长子县| 新郑市| 定结县| 卢龙县| 客服| 江西省| 依兰县| 措勤县| 林州市| 贵阳市| 开化县| 辉县市| 商南县| 安徽省| 佛教| 茶陵县| 秭归县| 朔州市|