日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

FPGA實(shí)現(xiàn)一個VGA/LCD顯示控制器的實(shí)例

FPGA技術(shù)江湖 ? 來源:FPGA技術(shù)江湖 ? 作者:FPGA技術(shù)江湖 ? 2022-08-01 10:49 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

今天給大俠帶來基于FPGA的VGA/LCD顯示控制器設(shè)計(jì),由于篇幅較長,分三篇。今天帶來第三篇,下篇,程序的仿真與測試以及總結(jié),話不多說,上貨。

導(dǎo)讀

VGA (Video Graphics Array) 即視頻圖形陣列,是IBM于1987年隨PS/2機(jī)(PersonalSystem 2)一起推出的使用模擬信號的一種視頻傳輸標(biāo)準(zhǔn)。這個標(biāo)準(zhǔn)對于現(xiàn)今的個人電腦市場已經(jīng)十分過時。但在當(dāng)時具有分辨率高、顯示速率快、顏色豐富等優(yōu)點(diǎn),在彩色顯示器領(lǐng)域取得了廣泛的應(yīng)用,是眾多制造商所共同支持的一個低標(biāo)準(zhǔn)。

LCD ( Liquid Crystal Display 的簡稱)液晶顯示器。LCD 的構(gòu)造是在兩片平行的玻璃基板當(dāng)中放置液晶盒,下基板玻璃上設(shè)置TFT(薄膜晶體管),上基板玻璃上設(shè)置彩色濾光片,通過TFT上的信號與電壓改變來控制液晶分子的轉(zhuǎn)動方向,從而達(dá)到控制每個像素點(diǎn)偏振光出射與否而達(dá)到顯示目的。按照背光源的不同,LCD可以分為CCFL顯示器和LED顯示器兩種。LCD已經(jīng)替代CRT成為主流,價格也已經(jīng)下降了很多,并已充分普及。

在之前的文章中介紹了如何獲取、處理攝像頭提供的視頻信號,在實(shí)際應(yīng)用中還需要將經(jīng)過處理的信號顯示在顯示器上。這個過程與信號處理中的過程上是相反的,將數(shù)字信號按照電視信號的制式組成合乎時序、格式要求的信號,并加入用于控制的各種同步信號。本篇將通過 FPGA實(shí)現(xiàn)一個 VGA/LCD 顯示控制器的實(shí)例,并詳細(xì)介紹實(shí)現(xiàn)過程。

第三篇內(nèi)容摘要:本篇會介紹程序的仿真與測試以及總結(jié)等相關(guān)內(nèi)容。

四、程序的仿真與測試

為了檢驗(yàn)程序是否實(shí)現(xiàn)預(yù)先設(shè)定的功能,需要編寫仿真程序。仿真程序的主要代碼如下:


module test;    //寄存器    reg clk;    reg rst;    //參數(shù)    parameter LINE_FIFO_AWIDTH = 7;    //wire 申明    wire int;    wire [31:0] wb_addr_o;    wire [31:0] wb_data_i;    wire [31:0] wb_data_o;    wire [3:0] wb_sel_o;    wire wb_we_o;    wire wb_stb_o;    wire wb_cyc_o;    wire [2:0] wb_cti_o;    wire [1:0] wb_bte_o;    wire wb_ack_i;    wire wb_err_i;    wire [31:0] wb_addr_i;    wire [31:0] wbm_data_i;    wire [3:0] wb_sel_i;    wire wb_we_i;    wire wb_stb_i;    wire wb_cyc_i;    wire wb_ack_o;    wire wb_rty_o;    wire wb_err_o;    reg pclk_i;    wire pclk;    wire hsync;    wire vsync;    wire csync;    wire blanc;    wire [7:0] red;    wire [7:0] green;    wire [7:0] blue;    wire dvi_pclk_p_o;    wire dvi_pclk_m_o;    wire dvi_hsync_o;    wire dvi_vsync_o;    wire dvi_de_o;    wire [11:0] dvi_d_o;    wire vga_stb_i;    wire clut_stb_i;    reg scen;        // 測試程序變量    integer wd_cnt;    integer error_cnt;        reg [31:0] data;    reg [31:0] pattern;    reg int_warn;        integer n;    integer mode;        reg [7:0] thsync, thgdel;    reg [15:0] thgate, thlen;    reg [7:0] tvsync, tvgdel;    reg [15:0] tvgate, tvlen;    reg hpol;    reg vpol;    reg cpol;    reg bpol;    integer p, l;    reg [31:0] pn;    reg [31:0] pra, paa, tmp;    reg [23:0] pd;    reg [1:0] cd;    reg pc;    reg [31:0] vbase;    reg [31:0] cbase;    reg [31:0] vbara;    reg [31:0] vbarb;    reg [7:0] bank;        // 常量定義    `define CTRL 32'h0000_0000    `define STAT 32'h0000_0004    `define HTIM 32'h0000_0008    `define VTIM 32'h0000_000c    `define HVLEN 32'h0000_0010    `define VBARA 32'h0000_0014    `define VBARB 32'h0000_0018    `define USE_VC 1    parameter PCLK_C = 20;        //測試內(nèi)容    initial        begin            $timeformat (-9, 1, " ns", 12);            $display("

");            $display("******************************************************");            $display("*VGA/LCD Controller Simulation started ... *");            $display("******************************************************");            $display("
");                `ifdef WAVES        $shm_open("waves");        $shm_probe("AS",test,"AS");        $display("INFO: Signal dump enabled ...

");      `endif        scen = 0;        error_cnt = 0;        clk = 0;        pclk_i = 0;        rst = 0;        int_warn=1;        repeat(20) @(posedge clk);        rst = 1;        repeat(20) @(posedge clk);            if(0)        begin                end    else    if(1)        begin            `ifdef VGA_12BIT_DVI        dvi_pd_test;    `endif            end    else        begin                // 測試區(qū)域    $display("

");    $display("*****************************************************");    $display("*** XXX Test ***");    $display("*****************************************************
");            s0.fill_mem(1);        repeat(10) @(posedge clk);        //參數(shù)設(shè)置        vbara = 32'h0000_0000;        vbarb = 32'h0001_0000;        m0.wb_wr1( `VBARA, 4'hf, vbara );        m0.wb_wr1( `VBARB, 4'hf, vbarb );        thsync = 0;        thgdel = 0;        thgate = 340;        thlen = 345;        tvsync = 0;        tvgdel = 0;        tvgate = 240;        tvlen = 245;                /*        thsync = 0;        thgdel = 0;        thgate = 63;        thlen = 70;        tvsync = 0;        tvgdel = 0;        tvgate = 32;        tvlen = 36;        */                hpol = 0;        vpol = 0;        cpol = 0;        bpol = 0;        m0.wb_wr1( `HTIM, 4'hf, {thsync, thgdel, thgate} );        m0.wb_wr1( `VTIM, 4'hf, {tvsync, tvgdel, tvgate} );        m0.wb_wr1( `HVLEN, 4'hf, {thlen, tvlen} );
    mode = 2;
    for(bank=0;bank<3;bank=bank + 1)        begin            case(mode)            0:            begin                cd = 2'h2;                pc = 1'b0;            end                        1:            begin                cd = 2'h0;                pc = 1'b0;            end                        2:            begin                cd = 2'h0;                pc = 1'b1;            end                        3:            begin                cd = 2'h1;                pc = 1'b0;            end                    endcase        m0.wb_wr1( `CTRL, 4'hf, {        16'h0, // Reserved        bpol, cpol,        vpol, hpol,        pc, // 1'b0, // PC        cd, // 2'h2, // CD        2'h0, // VBL        1'b0, // Reserved        1'b1, // CBSWE        1'b1, // VBSWE        1'b0, // BSIE        1'b0, // HIE        1'b0, // VIE        1'b1 // Video Enable      });          $display("Mode: %0d Screen: %0d", mode, bank);    //repeat(2) @(posedge vsync);    @(posedge vsync);        // 每一行數(shù)據(jù)    for(l=0;l    // For each Pixel    for(p=0;p        begin            while(blanc) @(posedge pclk);                        if(bank[0]) vbase = vbarb[31:2];            else vbase = vbara[31:2];            if(bank[0]) cbase = 32'h0000_0c00;            else cbase = 32'h0000_0800;                        // 各種顯示模式            //像素數(shù)目 = 行數(shù)* (thgate + 1) + p            pn = l * (thgate + 1) + p;                        case(mode)                0: // 24 位模式                begin                    pra = pn[31:2] * 3;                    paa = pra + vbase; // 像素決定地址                                // 像素數(shù)據(jù)                case(pn[1:0])                    0:                    begin                        tmp = s0.mem[paa];                        pd = tmp[31:8];                    end                    1:                        begin                            tmp = s0.mem[paa];                            pd[23:16] = tmp[7:0];                            tmp = s0.mem[paa+1];                            pd[15:0] = tmp[31:16];                        end                    2:                        begin                            tmp = s0.mem[paa+1];                            pd[23:8] = tmp[15:0];                            tmp = s0.mem[paa+2];                            pd[7:0] = tmp[31:24];                        end                    3:                    begin                        tmp = s0.mem[paa+2];                        pd = tmp[23:0];                    end                endcase            end                        1: // 8 位灰度模式                begin                    pra = pn[31:2]; // 像素相對地址                    paa = pra + vbase; // 像素絕對地址                    case(pn[1:0])                        0:                            begin                                tmp = s0.mem[paa];                                pd = { tmp[31:24], tmp[31:24], tmp[31:24] };                            end                        1:                            begin                                tmp = s0.mem[paa];                                pd = { tmp[23:16], tmp[23:16], tmp[23:16] };                            end                        2:                            begin                                tmp = s0.mem[paa];                                pd = { tmp[15:8], tmp[15:8], tmp[15:8] };                            end                        3:                            begin                                tmp = s0.mem[paa];                                pd = { tmp[7:0], tmp[7:0], tmp[7:0] };                            end                    endcase                end            2: // 8 位偽彩色模式                begin                    pra = pn[31:2]; //像素相對地址                    paa = pra + vbase; //像素絕對地址                    case(pn[1:0])                        0:                            begin                                tmp = s0.mem[paa];                                tmp = s0.mem[cbase[31:2] + tmp[31:24]];                                pd = tmp[23:0];                            end                        1:                            begin                                tmp = s0.mem[paa];                                tmp = s0.mem[cbase[31:2] + tmp[23:16]];                                pd = tmp[23:0];                            end                        2:                            begin                                tmp = s0.mem[paa];                                tmp = s0.mem[cbase[31:2] + tmp[15:8]];                                pd = tmp[23:0];                            end                        3:                            begin                                tmp = s0.mem[paa];                                tmp = s0.mem[cbase[31:2] + tmp[7:0]];                                pd = tmp[23:0];                            end                    endcase                end                          3: // 16 位模式              begin                  pra = pn[31:1]; //像素相對地址                  paa = pra + vbase; //像素絕對地址                  case(pn[0])                      0:                          begin                              tmp = s0.mem[paa];                              tmp[15:0] = tmp[31:16];                              pd = {tmp[15:11], 3'h0, tmp[10:5], 2'h0, tmp[4:0], 3'h0};                          end                      1:                          begin                              tmp = s0.mem[paa];                              pd = {tmp[15:11], 3'h0, tmp[10:5], 2'h0, tmp[4:0], 3'h0};                          end                  endcase              end      endcase      if(pd !== {red, green, blue} )          begin              $display("ERROR: Pixel Data Mismatch: Expected: %h, Got: %h %h %h",              pd, red, green, blue);              $display(" pixel=%0d, line=%0d, (%0t)",p,l,$time);              error_cnt = error_cnt + 1;          end                    @(posedge pclk);      end  end       show_errors;  $display("*****************************************************");  $display("*** Test DONE ... ***");  $display("*****************************************************

");   end        repeat(10) @(posedge clk);      $finish;  end    //同步監(jiān)視    `ifdef VGA_12BIT_DVI    sync_check #(PCLK_C*2) ucheck(    `else    sync_check #(PCLK_C) ucheck(    `endif        .pclk( pclk ),        .rst( rst ),        .enable( scen ),        .hsync( hsync ),        .vsync( vsync ),        .csync( csync ),        .blanc( blanc ),        .hpol( hpol ),        .vpol( vpol ),        .cpol( cpol ),        .bpol( bpol ),        .thsync( thsync ),        .thgdel( thgdel ),        .thgate( thgate ),        .thlen( thlen ),        .tvsync( tvsync ),        .tvgdel( tvgdel ),        .tvgate( tvgate ),        .tvlen( tvlen ) );            // 視頻數(shù)據(jù)監(jiān)視    wb_b3_check u_wb_check (        .clk_i ( clk ),        .cyc_i ( wb_cyc_o ),        .stb_i ( wb_stb_o ),        .cti_i ( wb_cti_o ),        .bte_i ( wb_bte_o ),        .we_i ( wb_we_o ),        .ack_i ( wb_ack_i ),        .err_i ( wb_err_i ),        .rty_i ( 1'b0 ) );
    //看門狗計(jì)數(shù)器    always @(posedge clk)        if(wb_cyc_i | wb_cyc_o | wb_ack_i | wb_ack_o | hsync)            wd_cnt <= #1 0;        else            wd_cnt <= #1 wd_cnt + 1;                always @(wd_cnt)        if(wd_cnt>9000)            begin                $display("

*************************************
");                $display("ERROR: Watch Dog Counter Expired
");                $display("*************************************


");                $finish;            end                always @(posedge int)        if(int_warn)            begin                $display("

*************************************
");                $display("WARNING: Recieved Interrupt (%0t)", $time);                $display("*************************************


");            end        always #2.5 clk = ~clk;    always #(PCLK_C/2) pclk_i = ~pclk_i;        //模塊原型    vga_enh_top #(1'b0, LINE_FIFO_AWIDTH) u0 (        .wb_clk_i ( clk ),        .wb_rst_i ( 1'b0 ),        .rst_i ( rst ),        .wb_inta_o ( int ),        //從信號        .wbs_adr_i ( wb_addr_i[11:0] ),        .wbs_dat_i ( wb_data_i ),        .wbs_dat_o ( wb_data_o ),        .wbs_sel_i ( wb_sel_i ),        .wbs_we_i ( wb_we_i ),        .wbs_stb_i ( wb_stb_i ),        .wbs_cyc_i ( wb_cyc_i ),        .wbs_ack_o ( wb_ack_o ),        .wbs_rty_o ( wb_rty_o ),        .wbs_err_o ( wb_err_o ),        //主信號        .wbm_adr_o ( wb_addr_o[31:0] ),        .wbm_dat_i ( wbm_data_i ),        .wbm_sel_o ( wb_sel_o ),        .wbm_we_o ( wb_we_o ),        .wbm_stb_o ( wb_stb_o ),        .wbm_cyc_o ( wb_cyc_o ),        .wbm_cti_o ( wb_cti_o ),        .wbm_bte_o ( wb_bte_o ),        .wbm_ack_i ( wb_ack_i ),        .wbm_err_i ( wb_err_i ),        //VGA 信號        .clk_p_i ( pclk_i ),    `ifdef VGA_12BIT_DVI        .dvi_pclk_p_o ( dvi_pclk_p_o ),        .dvi_pclk_m_o ( dvi_pclk_m_o ),        .dvi_hsync_o ( dvi_hsync_o ),        .dvi_vsync_o ( dvi_vsync_o ),        .dvi_de_o ( dvi_de_o ),        .dvi_d_o ( dvi_d_o ),    `endif        .clk_p_o ( pclk ),        .hsync_pad_o ( hsync ),        .vsync_pad_o ( vsync ),        .csync_pad_o ( csync ),        .blank_pad_o ( blanc ),        .r_pad_o ( red ),        .g_pad_o ( green ),        .b_pad_o ( blue )    );        wb_mast m0( .clk( clk ),            .rst( rst ),            .adr( wb_addr_i ),            .din( wb_data_o ),            .dout( wb_data_i ),            .cyc( wb_cyc_i ),            .stb( wb_stb_i ),            .sel( wb_sel_i ),            .we( wb_we_i ),            .ack( wb_ack_o ),            .err( wb_err_o ),            .rty( 1'b0 )        );        wb_slv #(24) s0(.clk( clk ),            .rst( rst ),            .adr( {1'b0, wb_addr_o[30:0]} ),            .din( 32'h0 ),            .dout( wbm_data_i ),            .cyc( wb_cyc_o ),            .stb( wb_stb_o ),            .sel( wb_sel_o ),            .we( wb_we_o ),            .ack( wb_ack_i ),            .err( wb_err_i ),            .rty( )        );        `include "tests.v"    endmodule

五、總結(jié)

本篇介紹了一個 VGA/LCD 顯示控制器的實(shí)例。首先介紹了 VGA/LCD 顯示的相關(guān)知識,然后介紹了程序的主要結(jié)構(gòu)和主要功能模塊的實(shí)現(xiàn)過程。最后用一個測試程序驗(yàn)證程序的功能是否滿足要求。本章為各位大俠設(shè)計(jì)自己的 VGA/LCD 顯示控制器提供了一個可以使用的方案。

審核編輯 :李倩


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

    關(guān)注

    1664

    文章

    22511

    瀏覽量

    639612
  • 控制器
    +關(guān)注

    關(guān)注

    114

    文章

    17890

    瀏覽量

    195335
  • lcd
    lcd
    +關(guān)注

    關(guān)注

    36

    文章

    4632

    瀏覽量

    178083

原文標(biāo)題:系統(tǒng)設(shè)計(jì)精選 | 基于FPGA的VGA/LCD顯示控制器設(shè)計(jì)(附代碼)

文章出處:【微信號:HXSLH1010101010,微信公眾號:FPGA技術(shù)江湖】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

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

    基于混合電壓FPGA系統(tǒng)的電源管理控制器設(shè)計(jì)

    基于混合電壓FPGA系統(tǒng)的電源管理控制器設(shè)計(jì) 在當(dāng)今數(shù)字化飛速發(fā)展的時代,現(xiàn)場可編程門陣列(FPGA)憑借其快速原型開發(fā)和數(shù)字系統(tǒng)實(shí)現(xiàn)的優(yōu)勢,成為了眾多電子工程師的首選。然而,隨著
    的頭像 發(fā)表于 04-13 18:05 ?391次閱讀

    深入了解MAXQ2000低功耗LCD控制器:特性、應(yīng)用與設(shè)計(jì)要點(diǎn)

    深入了解MAXQ2000低功耗LCD控制器:特性、應(yīng)用與設(shè)計(jì)要點(diǎn) 在電子設(shè)計(jì)領(lǐng)域,低功耗、高性能的微控制器直是工程師們追求的目標(biāo)。MAXQ2000低功耗
    的頭像 發(fā)表于 04-09 17:10 ?618次閱讀

    Epson S1D13L02 VGA簡單LCD控制器:多功能嵌入式顯示方案

    款低成本、低功耗的多功能LCD控制器,它內(nèi)置了1024 KB的SRAM顯示緩沖區(qū)。該控制器提供了
    的頭像 發(fā)表于 03-31 09:15 ?209次閱讀

    深入解析S1D13L01簡單LCD控制器:硬件功能與應(yīng)用指南

    深入解析S1D13L01簡單LCD控制器:硬件功能與應(yīng)用指南 在當(dāng)今的電子設(shè)備中,LCD控制器扮演著至關(guān)重要的角色,它直接影響著顯示效果和用
    的頭像 發(fā)表于 03-31 09:15 ?171次閱讀

    探索EPSON S1D13743 WQVGA LCD控制器:高性能顯示解決方案

    探索EPSON S1D13743 WQVGA LCD控制器:高性能顯示解決方案 在嵌入式顯示領(lǐng)域,尋找款兼具高性能、低成本和低功耗的
    的頭像 發(fā)表于 03-31 09:15 ?188次閱讀

    Epson S1D13742 VGA LCD控制器:嵌入式顯示的理想之選

    Epson S1D13742 VGA LCD控制器:嵌入式顯示的理想之選 在嵌入式市場中,款性能出色、功能豐富的
    的頭像 發(fā)表于 03-31 09:15 ?143次閱讀

    探索S1D13706 QVGA LCD控制器:嵌入式顯示的理想之選

    了解款優(yōu)秀的顯示控制器——S1D13706 QVGA LCD控制器。 文件下載: S1D13706F00A200-90.pdf 產(chǎn)品概述
    的頭像 發(fā)表于 03-30 14:05 ?174次閱讀

    Epson S1D13705 QVGA LCD控制器:嵌入式顯示的理想之選

    Epson S1D13705 QVGA LCD控制器:嵌入式顯示的理想之選 在嵌入式市場中,對于顯示設(shè)備的要求越來越高,不僅要滿足低功耗、小尺寸的需求,還要具備豐富的功能和良好的兼容性
    的頭像 發(fā)表于 03-30 14:05 ?146次閱讀

    探索S1D13517 SVGA外部SDRAM LCD控制器:卓越性能與豐富特性

    探索S1D13517 SVGA外部SDRAM LCD控制器:卓越性能與豐富特性 在電子設(shè)計(jì)領(lǐng)域,LCD控制器實(shí)現(xiàn)高質(zhì)量
    的頭像 發(fā)表于 03-30 14:05 ?202次閱讀

    探索愛普生S1D13515 XGA外部SDRAM顯示控制器

    深入了解這款控制器的特點(diǎn)、系統(tǒng)架構(gòu)以及應(yīng)用場景。 文件下載: S1D13515B00B100-84.pdf 、產(chǎn)品概述 S1D13515是款針對嵌入式市場的高度集成LCD
    的頭像 發(fā)表于 03-30 14:05 ?213次閱讀

    探秘S1D13L03:WVGA簡易LCD控制器的卓越性能

    探秘S1D13L03:WVGA簡易LCD控制器的卓越性能 在嵌入式市場的顯示控制領(lǐng)域,S1D13L03這款WVGA簡易LCD
    的頭像 發(fā)表于 03-28 12:05 ?478次閱讀

    Epson S1D13A04 QVGA LCD控制器:嵌入式顯示的理想之選

    連接的LCD解決方案。它將LCD圖形控制器嵌入式160K字節(jié)的SRAM顯示緩沖區(qū)集成在
    的頭像 發(fā)表于 03-28 12:05 ?324次閱讀

    MAX1530/MAX1531:TFT LCD顯示器多輸出電源控制器的深度解析

    MAX1530/MAX1531:TFT LCD顯示器多輸出電源控制器的深度解析 在TFT LCD顯示器的設(shè)計(jì)中,電源供應(yīng)是
    的頭像 發(fā)表于 03-16 16:20 ?233次閱讀

    探索MAX1513/MAX1514:TFT - LCD電源供應(yīng)控制器的卓越之選

    探索MAX1513/MAX1514:TFT - LCD電源供應(yīng)控制器的卓越之選 在電子工程領(lǐng)域,TFT - LCD電源供應(yīng)控制器的性能對顯示
    的頭像 發(fā)表于 03-16 16:15 ?198次閱讀

    基于友晶DE10-Nano開發(fā)板的VGA顯示控制器模塊設(shè)計(jì)

    VGA顯示控制器模塊vga_generator.v(位于DemonstrationsFPGAHDMI_TXvpg_source路徑下)可生成
    的頭像 發(fā)表于 02-26 13:43 ?5630次閱讀
    基于友晶DE10-Nano開發(fā)板的<b class='flag-5'>VGA</b><b class='flag-5'>顯示</b><b class='flag-5'>控制器</b>模塊設(shè)計(jì)
    饶平县| 大悟县| 那曲县| 资源县| 那曲县| 高要市| 蓝山县| 阜南县| 敖汉旗| 宁强县| 金门县| 延川县| 闻喜县| 台前县| 北安市| 临沭县| 万山特区| 红安县| 来凤县| 松原市| 裕民县| 塔城市| 桂东县| 托克托县| 巴彦县| 凉山| 隆回县| 巴林右旗| 南岸区| 临海市| 安顺市| 土默特左旗| 红桥区| 隆安县| 景洪市| 临夏市| 大悟县| 南丰县| 天镇县| 出国| 仁化县|