• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于FPGA的中子發(fā)生器系統(tǒng)集成IC的設(shè)計方法與實現(xiàn)*

    2018-03-15 04:37:58尹德有
    現(xiàn)代礦業(yè) 2018年1期
    關(guān)鍵詞:譯碼器寄存器時序

    張 偉 張 建 尹德有

    (丹東東方測控技術(shù)股份有限公司)

    現(xiàn)今隨著電子技術(shù)的不斷發(fā)展,現(xiàn)場編程門陣列(FPGA)的技術(shù)不斷進步,其運算速度和存儲空間都有了很大的提高,功能變得更加強大,而成本的不斷減低,也使得FPGA的應(yīng)用領(lǐng)域越來越廣。

    一般的FPGA的設(shè)計是根據(jù)外圍設(shè)備編寫不同的功能模塊,這些模塊結(jié)構(gòu)設(shè)計不統(tǒng)一,接口設(shè)計多樣化,不適合系統(tǒng)級整體設(shè)計,可重構(gòu)性和可移植性差,使得產(chǎn)品開發(fā)周期大大增加。為此,提出的多模塊化集成IC設(shè)計方法,具有通用的接口設(shè)計,方便的數(shù)據(jù)讀寫操作,能夠很大程度上提高設(shè)計的可重構(gòu)性和可移植性,減少產(chǎn)品的設(shè)計周期。

    1 設(shè)計原理

    在多模塊集成IC設(shè)計原理中,最重要的是通用接口設(shè)計。如圖1所示,在通用接口設(shè)計中,通過與上位機通訊,在FPGA接口模塊中分配數(shù)據(jù),確定上位機需要訪問的器件地址、寄存器地址、讀寫方式、數(shù)據(jù)控制等,通過譯碼器與鎖存器將數(shù)據(jù)發(fā)送給模塊,實現(xiàn)多個模塊的獨立控制。

    圖1 設(shè)計結(jié)構(gòu)框圖

    2 SPI通訊接口設(shè)計

    采用SPI從機總線實現(xiàn)與上位機通訊,8位數(shù)據(jù)傳輸,連續(xù)4個8位數(shù)據(jù),每8位數(shù)據(jù)代表一個地址,第一個8位數(shù)據(jù)為控制器器件地址和讀寫信號,第二個8位數(shù)據(jù)為器件寄存器地址,第三、四個8位數(shù)據(jù)是16位數(shù)據(jù)值,同時第三、四個8位數(shù)據(jù)也可以為讀數(shù)據(jù)。SPI從機通訊模塊見圖2。

    圖2 SPI從機通訊模塊

    3 數(shù)據(jù)鎖存和地址分配

    所有的數(shù)據(jù)包括地址數(shù)據(jù)Address,寄存器數(shù)據(jù)Regselect,寫數(shù)據(jù)Wrdata,讀數(shù)據(jù)Rddata都由鎖存器74373鎖存。Address地址高4位由74154譯碼器轉(zhuǎn)換成16位主器件地址片選,BIT3~BIT1由74138譯碼器轉(zhuǎn)換成8位子器件地址片選。即Address數(shù)據(jù)的地址可外接共16大類設(shè)備器件,每大類器件又可接8個相同模塊。這樣的地址設(shè)計方法也可以自行定義。接口說明見表1。

    4 通用接口設(shè)計

    模塊集成IC設(shè)計是仿照傳統(tǒng)集成芯片設(shè)計,其通用接口具有內(nèi)部寄存器分配、片選接口、讀寫使能接口等。

    表1 接口說明

    (1)模塊IC設(shè)計具有通用的傳輸接口,見表2。

    表2 模塊IC設(shè)計通用接口

    (2)內(nèi)部寄存器分配。內(nèi)部寄存器分為控制寄存器和數(shù)據(jù)寄存器兩種,并分配有不同的地址??刂萍拇嫫饔糜谑鼓苣K和模塊內(nèi)部觸發(fā),中斷等功能實現(xiàn)。數(shù)據(jù)寄存器則用于實現(xiàn)對系統(tǒng)外部設(shè)備數(shù)據(jù)的讀寫。這樣設(shè)計,方便了對模塊內(nèi)部數(shù)據(jù)的檢測,可以用于軟件的調(diào)試。

    (3)外設(shè)時序。針對不同的應(yīng)用,每個外設(shè)的時序各不相同,在實現(xiàn)內(nèi)部數(shù)據(jù)寄存器和控制寄存器的初始化后,按照基本的外設(shè)時序編寫驅(qū)動功能。

    5 FPGA軟件設(shè)計

    如圖3所示4通道D/A接口模塊,其中clk、rst接口為系統(tǒng)時鐘和系統(tǒng)復(fù)位,模塊的地址位0x30,是由Address地址數(shù)據(jù)經(jīng)過譯碼器得到的,MA3代表主器件地址,SA0代表子器件地址,regvalue代表寄存器地址,讀寫信號由Address[0]確定,并通過非門形成互鎖,datain[15..0]是數(shù)據(jù)輸入,DA[15..0]是數(shù)據(jù)輸出,其他是設(shè)備的接口。

    圖3 4通道D/A模塊框圖

    FPGA通用接口設(shè)計軟件如下:

    ∥寫地址[1]

    always @ (address)

    begin

    da1_value_reg_selected <= 0;

    da2_value_reg_selected <= 0;

    da3_value_reg_selected <= 0;

    da4_value_reg_selected <= 0;

    control_reg_selected <= 0;

    case(address)

    0:da1_value_reg_selected <= 1; ∥通道1電壓輸出

    1:da2_value_reg_selected <= 1;∥通道2電壓輸出

    2:da3_value_reg_selected <= 1;∥通道3電壓輸出

    3:da4_value_reg_selected <= 1;∥通道4電壓輸出

    4:control_reg_selected <= 1;∥控制寄存器

    default:

    begin

    da1_value_reg_selected <= 0;

    da2_value_reg_selected <= 0;

    da3_value_reg_selected <= 0;

    da4_value_reg_selected <= 0;

    control_reg_selected <= 0;

    end

    endcase

    end

    ∥寫D/A通道電壓輸出數(shù)據(jù)

    always @ (posedge clk or negedge reset_n)

    begin

    if(reset_n==1′b0)

    begin

    da1_value_reg=0;

    da2_value_reg=0;

    da3_value_reg=0;

    da4_value_reg=0;

    end

    else

    begin

    if(write & !chipselect & da1_value_reg_selected)

    begin

    da1_value_reg <= writedata;

    end

    if(write & !chipselect & da2_value_reg_selected)

    begin

    da2_value_reg <= writedata;

    end

    if(write & !chipselect & da3_value_reg_selected)

    begin

    da3_value_reg <= writedata;

    end

    if(write & !chipselect & da4_value_reg_selected)

    begin

    da4_value_reg <= writedata;

    end

    end

    end

    ∥寫D/A控制寄存器值

    always @ (posedge clk or negedge reset_n)

    begin

    if(reset_n==1'b0)

    begin

    control_reg = 0;

    end

    else

    begin

    if(write & !chipselect & control_reg_selected)

    begin

    control_reg <= writedata[0];∥使能

    end

    end

    end

    ∥讀數(shù)據(jù)

    always @ (address or read or da1_value_reg_selected or

    da2_value_reg_selected or da3_value_reg_selected or

    da4_value_reg_selected or control_reg_selected)

    ∥always @ (posedge clk)

    begin

    if(read)

    case(address)

    0:readdata <= da1_value_reg;

    1:readdata <= da2_value_reg;

    2:readdata <= da3_value_reg;

    3:readdata <= da4_value_reg;

    4:readdata <= control_reg;

    default:readdata<=16′h0000;

    endcase

    end

    通用接口設(shè)計是所有外掛設(shè)備模塊的重要部分,其他模塊設(shè)計都可按照上述方法實現(xiàn),這種設(shè)計方法高效簡單,應(yīng)用性強。設(shè)備接口驅(qū)動則按照不同模塊的時序設(shè)計完成。

    6 設(shè)計驗證

    在上述設(shè)計原理及軟件結(jié)構(gòu)的基礎(chǔ)上,采用Altera公司FPGA,Cyclone E系列芯片EP4CE22,其邏輯單元22,320(LEs),嵌入式存儲單元594(Kbits),本設(shè)計共8個大類,15個模塊組成,包括SPI總結(jié)模塊、LED模塊、PWM模塊、A/D模塊、D/A模塊等,約占80%的片上資源。通用接口modelsim仿真見圖4,設(shè)備接口modelsim仿真見圖5。

    7 結(jié) 語

    在FPGA設(shè)計中,多模塊集成IC設(shè)計方法實現(xiàn)了將多個不用模塊或多個相同模塊的集成設(shè)計,每個模塊具有通用的設(shè)計接口,簡化了通訊接口設(shè)計,提高了模塊的可移植性;靈活的地址分配設(shè)計,方便的多個模塊的連接,形成了總線設(shè)備多元化設(shè)計;內(nèi)部寄存器的設(shè)計,可以針對模塊內(nèi)部數(shù)據(jù)進行讀寫,方便調(diào)試??傊?,多模塊集成IC設(shè)計簡化了模塊接口設(shè)計,增加了軟件設(shè)計的可重構(gòu)性和可移植性,減少了產(chǎn)品設(shè)計開發(fā)周期。

    圖4 通用接口modelsim仿真

    圖5 設(shè)備接口modelsim仿真

    [1] SANIR P.Verilog數(shù)字設(shè)計與綜合[M].2版.北京:電子工業(yè)出版社,2009.

    猜你喜歡
    譯碼器寄存器時序
    時序坐標
    基于Sentinel-2時序NDVI的麥冬識別研究
    Lite寄存器模型的設(shè)計與實現(xiàn)
    糾錯模式可配置的NAND Flash BCH譯碼器設(shè)計
    跟蹤導(dǎo)練(一)5
    分簇結(jié)構(gòu)向量寄存器分配策略研究*
    一種毫米波放大器時序直流電源的設(shè)計
    電子制作(2016年15期)2017-01-15 13:39:08
    HINOC2.0系統(tǒng)中高速LDPC譯碼器結(jié)構(gòu)設(shè)計
    電力線通信中LDPC譯碼器的優(yōu)化設(shè)計與實現(xiàn)
    DPBUS時序及其設(shè)定方法
    河南科技(2014年15期)2014-02-27 14:12:36
    洪雅县| 高雄市| 石渠县| 孟村| 万全县| 霍州市| 安福县| 名山县| 岳阳县| 清镇市| 梨树县| 和政县| 威宁| 军事| 于田县| 云林县| 昌吉市| 方正县| 广河县| 玉林市| 信宜市| 依安县| 神农架林区| 栖霞市| 邹平县| 五大连池市| 英吉沙县| 秦安县| 嘉峪关市| 龙门县| 全南县| 塘沽区| 延吉市| 富蕴县| 泉州市| 秦皇岛市| 屏东市| 彰化县| 清流县| 肥西县| 遂平县|