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

    基于精簡指令集的內(nèi)核驗(yàn)證參考模型設(shè)計

    2022-11-14 02:55:33王鎮(zhèn)道姚小姣
    關(guān)鍵詞:驗(yàn)證

    王鎮(zhèn)道 姚小姣

    摘要:功能驗(yàn)證能在芯片設(shè)計前期快速、低成本發(fā)現(xiàn)缺陷,對于保證設(shè)計質(zhì)量具有重要意義.針對內(nèi)核模塊驗(yàn)證中指令序列隨機(jī)性差、測試用例編寫繁瑣和驗(yàn)證平臺重用性差等問題,設(shè)計了一款8位精簡指令集內(nèi)核驗(yàn)證參考模型,通過對指令集單獨(dú)建模、可配置化參數(shù)設(shè)計等方法滿足了指令序列隨機(jī)組合的驗(yàn)證需求和重用性,且結(jié)合自動化腳本的使用解決上述相關(guān)問題.將參考模型搭載UVM平臺對一款RISC架構(gòu)的8位MCU內(nèi)核進(jìn)行驗(yàn)證.驗(yàn)證結(jié)果表明:集成了所設(shè)計參考模型的UVM平臺具有很好的魯棒性和重用性,缺陷數(shù)量收斂快,驗(yàn)證周期更短,內(nèi)核模塊的代碼和功能覆蓋率均達(dá)到100%.

    關(guān)鍵詞:內(nèi)核驗(yàn)證;RISC-V;驗(yàn)證;System Verilog語言

    中圖分類號:TP332文獻(xiàn)標(biāo)志碼:A

    Design of Reference Model for Core’s Verification Based on Reduced Instruction Set

    WANG Zhendao,YAO Xiaojiao

    (College of Physics and Microelectronics Science,Hunan University,Changsha 410082,China)

    Abstract:Functional verification can find defects quickly at a low cost in the early stage of chip design,which is 0f great significance to ensure design quality. In view of the problems of poor instruction sequence randomnes,cumbersome testcase writing and the verification platform ’s poor reusability in core module-level verification,an 8- bit RIS core verification reference model is designed. The model satisfies the verification requirements of the instruction sequences,random combination and reusability through independent modeling of the instruction set and configurable parameter design,and the use of automated scripts solves related problem above. The reference model equipped with the UVM platform is applied to verify an 8-bit MCU core with a RISC architecture. The results show that the UVM platform integrated with the designed reference model has good robustness and reusability,the number of defects converges quickly,and the verification cycle is shorter. The code coverage and function coverage of the core module reach 100%.

    Key words:core verification;RISC-V;verification;System Verilog

    隨著半導(dǎo)體工藝不斷突破新的極限,數(shù)字電路集成度和復(fù)雜度陡增,如何提升設(shè)計效率、縮短芯片設(shè)計周期、提高設(shè)計可靠性是IC設(shè)計急需解決的問題[1-2].功能驗(yàn)證能夠在IC設(shè)計RTL階段發(fā)現(xiàn)設(shè)計缺陷,是在芯片硅前流程提高設(shè)計質(zhì)量的最有效方式. 在復(fù)雜的IC設(shè)計中,設(shè)計開發(fā)時間的70%用于驗(yàn)證[3],提高驗(yàn)證效率和完備性對降低設(shè)計成本、縮短設(shè)計周期十分重要[4].微處理器可以說是數(shù)字芯片的“頭腦”,其性能和設(shè)計質(zhì)量的好壞直接決定整個芯片的質(zhì)量[5-6],而功能驗(yàn)證是微處理器設(shè)計驗(yàn)證的重中之重[7],如何優(yōu)化微處理器的功能驗(yàn)證具有重要的現(xiàn)實(shí)意義.

    模擬仿真方法是當(dāng)前微處理器功能驗(yàn)證的主要方法[8],包括功能覆蓋率驅(qū)動的基于UVM的RTL驗(yàn)證[9]和FPGA硬件原型驗(yàn)證[10]等.為提高微處理器驗(yàn)證的效率和可靠性,研究者們提出了很多方案,如RTL動態(tài)仿真與FPGA硬件仿真相結(jié)合[11]、分階段引入處理器局部建模[8]等.文獻(xiàn)[9]采用功能覆蓋率為導(dǎo)向的UVM驗(yàn)證方法對DUT進(jìn)行驗(yàn)證,實(shí)現(xiàn)了內(nèi)核驗(yàn)證所需的功能覆蓋范圍且驗(yàn)證平臺可重用性好,但仿真速度存在局限性;文獻(xiàn)[8]為提高驗(yàn)證收斂速度,在文獻(xiàn)[9]方法的基礎(chǔ)上對微處理器局部建模,在驗(yàn)證后期利用局部模型指導(dǎo)測試激勵的生成,可快速完成對未覆蓋功能點(diǎn)的驗(yàn)證,一定程度上加快了驗(yàn)證收斂,但平臺的可重用性有所下降;文獻(xiàn)[10]在FPGA上對微處理器進(jìn)行硬件原型驗(yàn)證,仿真速度比文獻(xiàn)[9]快且驗(yàn)證平臺的搭建簡單,但測試用例的隨機(jī)性差、平臺的可重用性差;文獻(xiàn)[11]中RTL動態(tài)仿真與FPGA硬件仿真相結(jié)合的驗(yàn)證方式保證了驗(yàn)證平臺的可重用性且極大地提升了驗(yàn)證收斂速度,但FPGA驗(yàn)證的可調(diào)試性差,對微處理器指令集的隨機(jī)驗(yàn)證不夠充分.綜上,微處理器驗(yàn)證可以采取動態(tài)仿真與FPGA硬件驗(yàn)證相結(jié)合的方式,但需要對指令序列隨機(jī)性做改進(jìn).

    本文設(shè)計了一種適用于8bit RISC架構(gòu)內(nèi)核的驗(yàn)證參考模型,模擬內(nèi)核指令集系統(tǒng)結(jié)構(gòu)來滿足指令的完全隨機(jī)組合,同時實(shí)現(xiàn)內(nèi)核存儲空間的可參數(shù)化配置來提高可重用性.所設(shè)計參考模型集成到文獻(xiàn)[11]所提方法的UVM平臺中,應(yīng)用到一款8位MCU的內(nèi)核驗(yàn)證中,很好地保證了指令序列隨機(jī)性,所有測試用例均仿真通過,代碼和功能覆蓋率均達(dá)100%.

    1內(nèi)核架構(gòu)原理

    精簡指令集計算機(jī)(RISC)不同于復(fù)雜指令集計算機(jī)(CISC),其指令長度固定、指令數(shù)目精簡.基于RISC架構(gòu)的計算機(jī)結(jié)構(gòu)更簡化合理,且開發(fā)者可根據(jù)需求對指令集進(jìn)行擴(kuò)展[12].RISC-V是基于RISC原理建立的開源指令集架構(gòu),其架構(gòu)簡潔、指令集模塊化且可擴(kuò)展,是最具革命意義的開發(fā)處理器架構(gòu).RISC-V指令集大部分指令執(zhí)行只需一個周期,配合流水線結(jié)構(gòu)的實(shí)現(xiàn)使得內(nèi)核程序執(zhí)行速度更快[13-14].可由下面公式推導(dǎo)而得:

    P=I·CPI·T(1)

    其中,P為執(zhí)行一段程序所需的總時間;I是這段程序所包含的總指令條數(shù);CPI是每條指令執(zhí)行所需的時鐘周期數(shù)的平均值;T是內(nèi)核參考時鐘的周期.同一段程序,雖然RISC比CISC的總指令條數(shù)多,但CISC的CPI會比RISC大很多,且RISC的時鐘周期比CISC小,所以程序總的執(zhí)行時間RISC更短.且RISC-V架構(gòu)對中斷的響應(yīng)速度更快.

    所研究內(nèi)核是基于RISC-V架構(gòu)的8位MCU,綜合考慮芯片性能、成本及實(shí)際應(yīng)用需求,其指令集在RISC-V指令集基礎(chǔ)上進(jìn)行了簡化和刪減,修改后的指令集僅有44條基礎(chǔ)指令和6條擴(kuò)展指令,大大簡化了內(nèi)核結(jié)構(gòu).圖1所示為內(nèi)核結(jié)構(gòu)原理圖.

    該內(nèi)核有直接尋址和寄存器間接尋址兩種訪存方式,直接尋址即通過指令譯碼出的數(shù)據(jù)存儲器地址進(jìn)行讀寫操作,由于指令編碼中數(shù)據(jù)存儲器地址是9bits,所以尋址空間為512Byte,超出此范圍的地址需通過切換PAGE進(jìn)行訪存.寄存器間接尋址是通過內(nèi)核特殊寄存器IND/FSR對數(shù)據(jù)存儲器間接訪存,具體方式如圖2所示.

    由圖2可知,內(nèi)核從間接地址寄存器(IND)讀數(shù)據(jù),實(shí)際上是以FSR中的值為地址去讀數(shù)據(jù)存儲器;向IND寫數(shù)據(jù)實(shí)際上是以FSR中的值為地址將數(shù)據(jù)寫入數(shù)據(jù)存儲器相應(yīng)地址.

    2驗(yàn)證參考模型設(shè)計

    所設(shè)計參考模型的指令集是基于RISC-V構(gòu)架基本指令集修改并擴(kuò)展的,包括44條基本指令和6 條擴(kuò)展指令,指令長度均為16bits,按操作分為位操作類、立即數(shù)操作類、字節(jié)操作類、跳轉(zhuǎn)類和控制類五大類.表1給出了各類指令的編碼方式.

    為尋址方便,所研究內(nèi)核設(shè)置了特殊功能寄存器,包括間接尋址寄存器(IND)、寄存器選擇寄存器(FSR)、狀態(tài)寄存器(STATUS)、工作寄存器(WORK)、全局中斷使能寄存器(INTE)、PAGE選擇寄存器(BSR)和PC加載寄存器(PCLOADL/PCLOADH).

    2.1內(nèi)核指令集的建模

    圖3為本文所設(shè)計的8位內(nèi)核驗(yàn)證參考模型的結(jié)構(gòu)框圖,為簡化只給出主要組成部分和數(shù)據(jù)流通路.參考模型有四個主要的組件:程序存儲器(flash_array)、數(shù)據(jù)存儲器(sram_array)、指令譯碼器(core_decoder)和運(yùn)算單元(core_alu),外部激勵給到程序存儲器,經(jīng)過參考模型執(zhí)行處理后改變相應(yīng)地址的數(shù)據(jù)存儲器數(shù)據(jù)并發(fā)送transaction(flash_tr/sram_tr)給UVM驗(yàn)證平臺的計分板,作為DUT響應(yīng)數(shù)據(jù)的期望值[15],實(shí)現(xiàn)原理后續(xù)展開討論.

    參考模型設(shè)計依據(jù)是內(nèi)核指令集和指令執(zhí)行流程即取指—譯碼—讀取—執(zhí)行/寫回和,整個內(nèi)部實(shí)現(xiàn)是按指令執(zhí)行四個步驟來設(shè)計的.基于System Verilog語言,整個參考模型定義成一個派生自UVM基本類uvm_component的類.在設(shè)計實(shí)現(xiàn)前,首先對PC位寬、堆棧級數(shù)、堆棧起始地址等參數(shù)宏定義,并自定義了一個包含指令集所有指令的枚舉類型供后續(xù)類的定義使用.

    參考模型的類首先對變量進(jìn)行定義,包括內(nèi)核特殊寄存器、transaction、程序和數(shù)據(jù)存儲器、PC堆棧和數(shù)據(jù)堆棧以及一些中間變量;接著聲明、定義類的函數(shù),主要是圖3中參考模型組件對應(yīng)的函數(shù):取指、譯碼、讀取、指令執(zhí)行、寫回函數(shù).基于處理器結(jié)構(gòu)原理,取指函數(shù)根據(jù)當(dāng)前pc值從程序存儲器取指存入IR寄存器,為配合跳轉(zhuǎn)指令和長搬移指令執(zhí)行還會預(yù)取指pc+1和pc+2;譯碼函數(shù)依據(jù)IR寄存器的數(shù)據(jù),對照指令集編碼將16位指令碼譯成具體指令確定后續(xù)執(zhí)行內(nèi)容;讀取函數(shù)根據(jù)譯碼所得ram_addr訪問數(shù)據(jù)空間獲取指令操作數(shù);指令執(zhí)行函數(shù)根據(jù)譯碼結(jié)果執(zhí)行操作或運(yùn)算,并將要寫回數(shù)據(jù)空間的數(shù)據(jù)加以緩存;寫回函數(shù)依據(jù)具體指令是否需要寫回,將指令執(zhí)行后所得數(shù)據(jù)寫回相應(yīng)地址.

    參考模型模擬內(nèi)核行為的整個過程是在main_phase函數(shù)中實(shí)現(xiàn)的,main_phase函數(shù)分別調(diào)用前述函數(shù),模擬內(nèi)核程序執(zhí)行過程,并參照實(shí)際內(nèi)核行為對異常情況加以處理,主要有非法指令復(fù)位和中斷響應(yīng).

    通過對內(nèi)核指令集建模,參考模型實(shí)現(xiàn)了對內(nèi)核指令集系統(tǒng)的模擬,可對內(nèi)核指令集功能點(diǎn)黑盒驗(yàn)證,能夠解決以往驗(yàn)證方法指令序列隨機(jī)性差的問題,且結(jié)合perl腳本工具的使用,可自動化生成指令隨機(jī)序列,減少了繁瑣編寫測試用例的工作量.

    2.2存儲指標(biāo)可參數(shù)化配置的實(shí)現(xiàn)

    為提高可復(fù)用性,參考模型對內(nèi)核存儲空間及堆棧級數(shù)等關(guān)鍵指標(biāo)進(jìn)行了可參數(shù)化配置設(shè)計.驗(yàn)證人員只需根據(jù)實(shí)際存儲空間設(shè)置參考模型的相應(yīng)參數(shù),即可對目標(biāo)類芯片不同存儲配置進(jìn)行驗(yàn)證.

    利用UVM的cofig_db機(jī)制,在UVM驗(yàn)證平臺頂層top_tb中執(zhí)行set操作,根據(jù)內(nèi)核存儲指標(biāo)配置相應(yīng)參數(shù)的值;在驗(yàn)證參考模型中執(zhí)行g(shù)et操作,獲取相應(yīng)參數(shù)值,從而實(shí)現(xiàn)不修改參考模型即可滿足不同存儲空間的內(nèi)核的驗(yàn)證.

    驗(yàn)證參考模型中的代碼實(shí)現(xiàn)如下所示:

    uvm_config_db#(core_vif)::get(this,””,”core_vif”,pc_width);

    uvm_config_db#(core_vif)::get(this,””,”core_vif”,sp_len);

    uvm_config_db#(core_vif)::get(this,””,”core_vif”,RAM_addr);

    3基于驗(yàn)證參考模型的內(nèi)核模塊級驗(yàn)證及結(jié)果

    本文設(shè)計的內(nèi)核驗(yàn)證參考模型已成功應(yīng)用于一款基于RISC-V架構(gòu)的8位MCU芯片的內(nèi)核模塊級驗(yàn)證中,該內(nèi)核指令集包括44條基礎(chǔ)指令和6條擴(kuò)展指令,仿真驗(yàn)證是在Linux平臺上用System Verilog 語言搭建的UVM驗(yàn)證平臺上進(jìn)行,所用仿真工具是synopsys公司的VCS,仿真波形和覆蓋率的查看使用synopsys公司的Verdi,UVM驗(yàn)證平臺框圖如圖4所示[16].驗(yàn)證結(jié)果表明集成了本文所設(shè)計的內(nèi)核驗(yàn)證參考模型的UVM仿真驗(yàn)證平臺能夠滿足對8位內(nèi)核的模塊級驗(yàn)證需求,結(jié)合受約束隨機(jī)激勵生成技術(shù)對內(nèi)核指令序列進(jìn)行了完全隨機(jī)組合驗(yàn)證.

    圖5為內(nèi)核模塊驗(yàn)證指令集隨機(jī)測試用例的仿真波形圖.

    圖6為內(nèi)核模塊驗(yàn)證用例回歸后所收集到的加過濾文件的代碼覆蓋率,過濾部分均為與設(shè)計人員確認(rèn)無法覆蓋的,由圖可知各項代碼覆蓋率均達(dá)100%,實(shí)現(xiàn)了內(nèi)核驗(yàn)證所需的功能覆蓋范圍.

    圖7為內(nèi)核模塊驗(yàn)證的功能覆蓋率,均達(dá)到100%.

    圖8為本文所用驗(yàn)證方法和文獻(xiàn)[9]的功能覆蓋率為導(dǎo)向的驗(yàn)證方法分別對目標(biāo)內(nèi)核進(jìn)行驗(yàn)證的缺陷收斂圖示.

    由圖8可看到,隨著驗(yàn)證工作的推進(jìn),內(nèi)核模塊的缺陷數(shù)量均呈現(xiàn)收斂狀態(tài),但本文曲線相比文獻(xiàn)[9]的而言變化更平緩、收斂速度更快,且驗(yàn)證周期縮短了10%,說明集成了本文所設(shè)計參考模型的UVM驗(yàn)證平臺具有更好的魯棒性,且驗(yàn)證效率和完備性更好.

    表2給出了基于本文驗(yàn)證參考模型和部分文獻(xiàn)的方法,對同一DUT進(jìn)行驗(yàn)證的性能對比結(jié)果,可以看出本文的驗(yàn)證方法仿真速度較快、激勵隨機(jī)性好、測試用例編寫簡單,且驗(yàn)證平臺具有很好的可重用性.

    圖9為集成有本文驗(yàn)證內(nèi)核的電源充電管理芯片的版圖,采用華宏0.11μm工藝進(jìn)行流片,芯片總面積為3.4 mm,系統(tǒng)時鐘頻率為24 MHz,流片測試結(jié)果表明,內(nèi)核模塊設(shè)計符合設(shè)計文檔要求.

    4結(jié)論

    本文設(shè)計了一種適用于8位RISC架構(gòu)內(nèi)核驗(yàn)證的參考模型.對內(nèi)核指令集驗(yàn)證建模提高了激勵的可隨機(jī)化程度,同時實(shí)現(xiàn)了內(nèi)核存儲指標(biāo)的可參數(shù)化設(shè)置,使得參考模型可直接用于擴(kuò)展或繼承類芯片的內(nèi)核驗(yàn)證.將驗(yàn)證參考模型應(yīng)用到一款8位4級流水線的MCU芯片內(nèi)核驗(yàn)證中,驗(yàn)證結(jié)果良好,最后所驗(yàn)證內(nèi)核采用華宏0.11um工藝成功流片,證明了參考模型對內(nèi)核驗(yàn)證的有效性.

    參考文獻(xiàn)

    [1] CHUNG E S,HOE J C. High-level design and validation of the BlueSPARC multithreaded processor [J]. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems,2010,29(10):1459-1470.

    [2] FAJCIK M,SMRZ P,ZACHARIASOVA M. Automation of processor verification using recurrent neural networks [C]//2017 18th International Workshop on Microprocessor and SOC Test and Verification (MTV). December 11-12,2017,Austin,TX,USA. IEEE,2017:15-20.

    [3] LI Y Y,WU W C,HOU L G,et al. A study on the assertionbased verification of digital IC[C]//2009 Second International Conference on Information and Computing Science.May 21-22,2009,Manchester,UK.IEEE,2009:25-28.

    [4] THALAIMALAI VANARAJ A,RAJ M,GOPALAKRISHNAN L. Functional Verification closure using Optimal Test scenarios for Digital designs[C]//2020 Third International Conference on Smart Systems and Inventive Technology (ICSSIT). August 20-22,2020,Tirunelveli,India.IEEE,2020:535-538.

    [5]胡錦,謝立紅,鄒望輝,等.基于低功耗SoC的微型圖像采集系統(tǒng)設(shè)計[J].湖南大學(xué)學(xué)報(自然科學(xué)版),2019,46(2):86-91.

    HU J,XIE L H,ZOU W H,et al.Design of miniature image acquisition system based on low power system on chip [J]. Journalof Hunan University(Natural Sciences),2019,46(2):86-91.(In Chinese)

    [6]DUTT N,JANTSCH A,SARMA S. Toward smart embedded systems:a self-aware system-on-chip(SoC)perspective[J].ACM Transactions on Embedded Computing Systems,2016,15(2):22.

    [7]段青亞,黃士坦,靳榮利,等.SoC自動化驗(yàn)證方法的研究與實(shí)現(xiàn)[J].吉林大學(xué)學(xué)報(信息科學(xué)版),2010,28(3):231-237. DUAN Q Y,HUANG S T,JIN R L,et al. Study and implementation on method of SoC automatic verification[J] Journal of Jilin University(Information Science Edition),2010,28(3):231-237 (In Chinese)

    [8]張良,易江芳,佟冬,等.使用局部建模的微處理器測試程序自動生成方法[J].電子學(xué)報,2011,39(7):1639-1644.

    ZHANG L,YI J F,TONG D,et al Test program generation for microprocessor verification using local modeling strategy [J] Acta Electronica Sinica,2011,39(7):1639-1644 (In Chinese).

    [9] WANG J Y,TAN N X,ZHOU Y F,et al. A UVM Verification Platform for RISC-V SoC from Module to System Level[C]//2020 IEEE 5th International Conference on Integrated Circuits and Microsystems (ICICM). Nanjing,China:IEEE,2020:242-246.

    [10] PRASANNA K N,YELLAMPALLI S,CHETWANI R R Design and implementation of a Test Coverage Algorithm for verification and validation of a processor IP core[C]//2016 2nd International Conference on Applied and Theoretical Computing and Communication Technology(iCATccT)July 21-23,2016,Bangalore,India. IEEE,2016:652-656.

    [11]張珩.通用處理器設(shè)計中硬件仿真驗(yàn)證[J].計算機(jī)工程與應(yīng)用,2007,43(8):1-3

    ZHANG H Hardware simulation for microprocessor verification [J]. Computer Engineering and Applications,2007,43(8):1-3 (In Chinese).

    [12] WATERMAN A,LEE Y,PATTERSON,et al. The RISC-V Instruction Set Manual,Volume 1:User-level ISA[J]. EECS De- partment,2011,7(9):475.

    [13] ZIMMER M,BROMAN D,SHAVER C,et al. FlexPRET:A processor platform for mixed-criticality systems [C]//2014 IEEE 19th Real-Time and Embedded Technology and Applications Symposium(RTAS). Berlin,Germany:IEEE,2014:101-110.

    [14] GAUTSCHI M,DAVIDE SCHIAVONE P,TRABER A,et al. Near-Threshold RISC-V Core With DSP Extensions for Scalable IoT Endpoint Devices[J]. IEEE Transactions on Very Large Scale Integration (VLSI)Systems,2017,25(10):2700-2713.

    [15] LI W,WANG X T. Functional coverage-driven UVM-based UART IP verification [C]//2015 IEEE 11th International Conference on ASIC. Chengdu,China:IEEE,2015:1-4.

    [16] VINEETH B,TRIPURA SUNDARI B B. UVM Based Testbench Architecture for Coverage Driven Functional Verification of SPI Protocol [C]//2018 International Conference on Advances in Computing,Communications and Informatics. Bangalore,India:IEEE,2018:307-310.

    猜你喜歡
    驗(yàn)證
    歷史不可驗(yàn)證說的語義結(jié)構(gòu)與內(nèi)在邏輯
    讓冷峻與溫情并存
    校核、驗(yàn)證與確認(rèn)在紅外輻射特性測量中的應(yīng)用
    剖析智能化斷路器機(jī)械特性在線監(jiān)測關(guān)鍵技術(shù)設(shè)計及驗(yàn)證
    科技資訊(2016年25期)2016-12-27 18:48:31
    合理猜想,有效驗(yàn)證
    晶閘管關(guān)斷特性的驗(yàn)證解析
    小題也可大做
    彈藥保障需求分析實(shí)驗(yàn)?zāi)P洼敵鰯?shù)據(jù)的驗(yàn)證研究
    價值工程(2016年30期)2016-11-24 14:19:29
    汽車外后視鏡抖動問題模型的試驗(yàn)驗(yàn)證
    汽車科技(2016年5期)2016-11-14 08:08:15
    核電項目A1號機(jī)組L521電氣貫穿件H通道問題處理
    科技視界(2016年23期)2016-11-04 15:08:42
    闵行区| 同仁县| 昔阳县| 清原| 湛江市| 陆良县| 基隆市| 黄龙县| 普宁市| 原平市| 唐河县| 平利县| 太和县| 河北区| 阿鲁科尔沁旗| 皮山县| 鹤山市| 方山县| 兴宁市| 商丘市| 离岛区| 垣曲县| 吉安市| 和政县| 绿春县| 黑水县| 永平县| 涪陵区| 韶山市| 沧源| 奈曼旗| 西青区| 门头沟区| 贡山| 嘉义县| 桂林市| 万盛区| 东明县| 定陶县| 鲜城| 收藏|