国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于FPGA軟件安全性的HDL編碼規(guī)范分析與研究

2024-06-03 10:20:00曹明姜宗維李敬磊
現(xiàn)代信息科技 2024年5期
關(guān)鍵詞:安全性

曹明 姜宗維 李敬磊

收稿日期:2023-09-01

DOI:10.19850/j.cnki.2096-4706.2024.05.019

摘? 要:隨著FPGA的廣泛應(yīng)用,F(xiàn)PGA的運(yùn)行代碼的安全性也越來越重要。文章從HDL編碼的角度,研究了影響FPGA軟件功能安全性的幾個(gè)重要因素,分析了信號(hào)跨時(shí)鐘域處理、狀態(tài)機(jī)設(shè)計(jì)、信號(hào)毛刺等因素在編碼階段對(duì)軟件安全性的影響,并提出了對(duì)應(yīng)的防范措施;形成了基于FPGA軟件功能安全性的HDL編碼和設(shè)計(jì)規(guī)范,為規(guī)避在編碼階段引入軟件功能安全性問題提供了一定的依據(jù)和參考。

關(guān)鍵詞:FPGA;HDL;安全性;編碼規(guī)范

中圖分類號(hào):TN79? ? 文獻(xiàn)標(biāo)識(shí)碼:A? 文章編號(hào):2096-4706(2024)05-0085-04

Analysis and Research on HDL Coding Specification Based on FPGA Software Security

CAO Ming, JIANG Zongwei, LI Jinglei

(The 5th Electronics Research Institute of Ministry of Industry and Information Technology, Guangzhou? 510610, China)

Abstract: With the wide application of FPGA, the security of FPGA running code is becoming more and more important. From the perspective of HDL coding, this paper studies several important factors that affect the functional security of FPGA software, analyzes the influence of signal across clock domain processing, state machine design, signal glances and other factors on software security in the coding stage, and puts forward the corresponding preventive measures. The HDL coding and design specification based on FPGA software functional security is formed, which provides a certain basis and reference for avoiding the problem of software functional security introduced in the coding stage.

Keywords: FPGA; HDL; security; coding specification

0? 引? 言

目前,F(xiàn)PGA器件已廣泛應(yīng)用在雷達(dá)、導(dǎo)彈、武器、航空、航天等國防領(lǐng)域,其安全性關(guān)乎著整個(gè)型號(hào)裝備的質(zhì)量好壞。除了FPGA器件本身的安全性外,運(yùn)行的軟件代碼的安全性直接影響著FPGA軟件的功能。因此,研究FPGA軟件代碼設(shè)計(jì)的安全性編碼規(guī)范,規(guī)避在編碼階段引入的安全性問題,是十分有意義和必要的。

作者借助單位多年來開展軟件測評(píng)積累的FPGA軟件缺陷庫分析了影響FPGA軟件安全性的問題缺陷,歸納總結(jié)出信號(hào)跨時(shí)鐘域、狀態(tài)機(jī)設(shè)計(jì)、信號(hào)毛刺等方面的主要問題缺陷。本文將從這幾個(gè)方面入手,分析影響FPGA應(yīng)用軟件功能的主要安全因素,然后從HDL編碼方面提出防范措施,并形成基于FPGA軟件安全性的HDL編碼和設(shè)計(jì)規(guī)范,從而提高FPGA軟件的安全性。

1? 信號(hào)跨時(shí)鐘域

1.1? 影響安全性因素

亞穩(wěn)態(tài)是指觸發(fā)器無法在某個(gè)規(guī)定時(shí)間段內(nèi)達(dá)到一個(gè)可確認(rèn)的狀態(tài)[1]。當(dāng)一個(gè)觸發(fā)器進(jìn)入亞穩(wěn)態(tài)引時(shí),既無法預(yù)測該單元的輸出電平,也無法預(yù)測何時(shí)輸出才能穩(wěn)定在某個(gè)正確的電平上。在這個(gè)穩(wěn)定期間,觸發(fā)器輸出一些中間級(jí)電平,或者可能處于振蕩狀態(tài),并且這種無用的輸出電平可以沿信號(hào)通道上的各個(gè)觸發(fā)器級(jí)聯(lián)式傳播下去。FPGA器件中包含了大量的觸發(fā)器資源,主要用于數(shù)據(jù)的采集,只有當(dāng)輸入數(shù)據(jù)滿足器件本身的建立/保持時(shí)間時(shí),數(shù)據(jù)才能夠正確被采集,否則會(huì)出現(xiàn)亞穩(wěn)態(tài),導(dǎo)致采集的數(shù)據(jù)錯(cuò)誤。FPGA軟件一般存在多個(gè)時(shí)鐘域,由于各個(gè)時(shí)鐘間的時(shí)序不同,經(jīng)常會(huì)出現(xiàn)信號(hào)跨多個(gè)時(shí)鐘域傳輸時(shí)建立/保持時(shí)間不滿足的問題,從而導(dǎo)致信號(hào)在多個(gè)時(shí)鐘域間傳輸錯(cuò)誤,出現(xiàn)亞穩(wěn)態(tài),影響FPGA軟件的安全性。

信號(hào)跨時(shí)鐘域是指信號(hào)在不同時(shí)鐘域間傳輸?shù)那闆r,主要包括外部輸入的異步信號(hào)以及內(nèi)部跨時(shí)鐘域傳輸?shù)男盘?hào),主要分為單比特?cái)?shù)據(jù)和多比特?cái)?shù)據(jù)。

1.1.1? 單比特?cái)?shù)據(jù)跨時(shí)鐘域傳輸

單比特?cái)?shù)據(jù)跨時(shí)鐘域傳輸情況如圖1所示。當(dāng)數(shù)據(jù)從A時(shí)鐘域傳輸至B時(shí)鐘域時(shí),信號(hào)的建立/保持時(shí)間不滿足要求時(shí),在B時(shí)鐘域數(shù)據(jù)采集時(shí),會(huì)出現(xiàn)亞穩(wěn)態(tài),采集的數(shù)據(jù)值不定,可能為0或1,從而影響數(shù)據(jù)傳輸?shù)恼_性。尤其當(dāng)傳輸?shù)臄?shù)據(jù)為跳變信號(hào)或者在B時(shí)鐘域進(jìn)行信號(hào)的沿操作時(shí),會(huì)造成功能邏輯錯(cuò)誤。

圖1? 單比特?cái)?shù)據(jù)跨時(shí)鐘域傳輸情況

1.1.2? 多比特?cái)?shù)據(jù)跨時(shí)鐘域傳輸

多比特?cái)?shù)據(jù)跨時(shí)鐘域傳輸情況如圖2所示。多比特?cái)?shù)據(jù)由于每比特信號(hào)在布局布線時(shí)的傳輸線路不同,造成到達(dá)B時(shí)鐘域觸發(fā)器的時(shí)延不同。因此,當(dāng)多比特?cái)?shù)據(jù)在B時(shí)鐘域進(jìn)行信號(hào)匯聚時(shí),可能會(huì)導(dǎo)致采集的多比特?cái)?shù)據(jù)信號(hào)值錯(cuò)誤,從而造成功能邏輯錯(cuò)誤。

圖2? 多比特?cái)?shù)據(jù)跨時(shí)鐘域傳輸情況

1.2? 防范措施

為保證數(shù)據(jù)在多個(gè)時(shí)鐘域間傳輸?shù)恼_性,在HDL編碼時(shí)通過信號(hào)的同步處理[2]來提高FPGA軟件的安全性。

1.2.1? 單比特?cái)?shù)據(jù)跨時(shí)鐘域同步

單比特?cái)?shù)據(jù)跨時(shí)鐘域傳輸時(shí)可采用圖3中的電平同步器設(shè)計(jì)[3],在目的時(shí)鐘域通過打兩拍同步的操作實(shí)現(xiàn)信號(hào)的正確采集。HDL編碼時(shí)需要注意,單比特?cái)?shù)據(jù)一般包括緩變的電平信號(hào)以及有脈寬限制的脈沖信號(hào),對(duì)于脈沖信號(hào)的跨時(shí)鐘域傳輸,需要考慮從快時(shí)鐘域到慢時(shí)鐘域,信號(hào)脈寬小于慢時(shí)鐘周期時(shí),會(huì)導(dǎo)致信號(hào)丟失的情況,此時(shí)需要在快時(shí)鐘域?qū)π盘?hào)進(jìn)行展寬,再送入目的時(shí)鐘域進(jìn)行打兩拍同步處理。

1.2.2? 多比特?cái)?shù)據(jù)跨時(shí)鐘域同步

多比特?cái)?shù)據(jù)跨時(shí)鐘域傳輸時(shí),由于每個(gè)信號(hào)經(jīng)過布局布線后傳輸時(shí)延不同,因此不能夠簡單通過打兩拍實(shí)現(xiàn)數(shù)據(jù)同步。對(duì)于多比特?cái)?shù)據(jù)跨時(shí)鐘域傳輸時(shí),一般通過以下方式實(shí)現(xiàn)同步:

1)使用異步FIFO [4]。如圖4所示,對(duì)于多比特?cái)?shù)據(jù),一般通過FIFO將兩個(gè)時(shí)鐘域的數(shù)據(jù)進(jìn)行隔離,通過源時(shí)鐘域?qū)?shù)據(jù)寫入FIFO,通過目的時(shí)鐘域?qū)?shù)據(jù)從FIFO讀出。HDL編碼時(shí),需考慮FIFO讀寫時(shí)鐘的速率以及FIFO存儲(chǔ)深度,以保證數(shù)據(jù)不會(huì)丟失。

圖3? 單比特?cái)?shù)據(jù)同步處理

圖4? 多比特?cái)?shù)據(jù)通過異步FIFO進(jìn)行數(shù)據(jù)同步

2)使用格雷碼。由于格雷碼相鄰兩個(gè)狀態(tài)之間只有單比特信號(hào)發(fā)生跳變,其余比特信號(hào)不變,因此降低了多比特信號(hào)跨時(shí)鐘域傳輸?shù)娘L(fēng)險(xiǎn)。HDL編碼時(shí),如果數(shù)據(jù)變化狀態(tài)為2的N次冪,且狀態(tài)變化連續(xù)時(shí)可以考慮使用格雷碼。

3)使用握手信號(hào)[5]。源時(shí)鐘域發(fā)送數(shù)據(jù)時(shí),同時(shí)發(fā)送握手信號(hào)至目的時(shí)鐘域,目的時(shí)鐘域接收到握手信號(hào)后,開始接收數(shù)據(jù),并在數(shù)據(jù)接收完成后發(fā)送回饋信號(hào)裝至源時(shí)鐘域,源時(shí)鐘域接收到回饋信號(hào)后,停止發(fā)送數(shù)據(jù)。使用握手信號(hào),可以保證數(shù)據(jù)正確傳輸,但需要的時(shí)序開銷也較大,HDL編碼時(shí)需綜合考慮。

4)將多比特信號(hào)轉(zhuǎn)換為單比特。譬如在源時(shí)鐘域有a_en和b_en信號(hào)需要傳輸至目的時(shí)鐘域,HDL編碼時(shí),可以將兩個(gè)信號(hào)通過ab_en=a_en&b_en合并為單比特信號(hào)ab_en后,在目的時(shí)鐘域按照單比特信號(hào)進(jìn)行同步處理。該方式適用于多個(gè)比特信號(hào)之間邏輯關(guān)系依賴性較強(qiáng),且可以通過運(yùn)算符合并為單比特信號(hào)的情況。

多周期路徑同步。多周期路徑同步是一種通用的安全傳遞多比特跨時(shí)鐘域信號(hào)技術(shù)。多周期路徑同步是指在傳輸非同步數(shù)據(jù)到目的時(shí)鐘域時(shí)同步傳輸一個(gè)同步的控制信號(hào),數(shù)據(jù)和控制信號(hào)被同時(shí)發(fā)送到目的時(shí)鐘域,同時(shí)控制信號(hào)在目的時(shí)鐘域使用兩級(jí)寄存器同步到目的時(shí)鐘域,使用此同步后的控制信號(hào)來加載數(shù)據(jù),這樣數(shù)據(jù)就可以在目的寄存器被安全加載。多周期路徑同步常用于總線數(shù)據(jù)在不同時(shí)鐘域間的傳輸,HDL編碼時(shí),需要保證源時(shí)鐘域內(nèi)控制信號(hào)有效期間,數(shù)據(jù)不會(huì)發(fā)生變化,從而在目的時(shí)鐘域采集數(shù)據(jù)時(shí),數(shù)據(jù)不會(huì)在目的時(shí)鐘域采樣沿發(fā)生變化,從而有效地避免了數(shù)據(jù)路徑亞穩(wěn)態(tài)的發(fā)生。

2? 狀態(tài)機(jī)設(shè)計(jì)

2.1? 影響安全性因素

狀態(tài)機(jī)通常是表示有限個(gè)狀態(tài)以及在這些狀態(tài)之間的轉(zhuǎn)移和動(dòng)作等行為的數(shù)學(xué)計(jì)算模型。如圖5所示,F(xiàn)PGA軟件中經(jīng)常會(huì)通過設(shè)計(jì)狀態(tài)機(jī)來實(shí)現(xiàn)工作狀態(tài)的切換。如果狀態(tài)機(jī)發(fā)送誤跳轉(zhuǎn)或進(jìn)入非法狀態(tài),將會(huì)導(dǎo)致FPGA軟件功能失效,進(jìn)而影響FPGA軟件的安全性[6]。其影響軟件安全性的因素主要有:

1)狀態(tài)機(jī)未設(shè)置初始狀態(tài)。上電后,狀態(tài)機(jī)未設(shè)置初始狀態(tài),導(dǎo)致上電后FPGA軟件工作狀態(tài)不定,影響FPGA軟件安全性。

2)狀態(tài)機(jī)存在冗余狀態(tài)或死鎖環(huán)。如圖6所示,上述兩個(gè)狀態(tài)機(jī)設(shè)計(jì)中,存在冗余狀態(tài)S4以及死鎖環(huán)S4<->S5,當(dāng)狀態(tài)機(jī)誤跳轉(zhuǎn)到冗余狀態(tài)或死鎖環(huán)中,將無法跳轉(zhuǎn)回正常狀態(tài),導(dǎo)致FPGA軟件功能失效。

3)采用組合邏輯實(shí)現(xiàn)狀態(tài)機(jī)跳轉(zhuǎn)。采用組合邏輯來實(shí)現(xiàn)狀態(tài)機(jī)跳轉(zhuǎn),尤其當(dāng)綜合出現(xiàn)鎖存器時(shí),容易受到毛刺信號(hào)影響,導(dǎo)致狀態(tài)機(jī)發(fā)生誤跳轉(zhuǎn),影響FPGA軟件安全性。

4)狀態(tài)機(jī)未設(shè)置為安全模式。目前,各FPGA廠商支持綜合時(shí)將狀態(tài)機(jī)設(shè)置為安全模式,從而保證當(dāng)狀態(tài)機(jī)跳轉(zhuǎn)到未定義的非法狀態(tài)時(shí),能夠重新跳回到已知的狀態(tài)。當(dāng)未設(shè)置為安全模式時(shí),在復(fù)雜電磁環(huán)境以及SEU環(huán)境下,狀態(tài)機(jī)會(huì)出現(xiàn)非法狀態(tài),此時(shí)FPGA軟件無法從非法狀態(tài)跳回到已知狀態(tài),導(dǎo)致FPGA軟件功能失效,影響FPGA軟件安全性。

圖5? 狀態(tài)機(jī)跳轉(zhuǎn)示意圖

(a)冗余狀態(tài)S4? ? ? ? ? (b)死鎖環(huán)S4<->S5

圖6? 狀態(tài)機(jī)存在冗余狀態(tài)和死鎖環(huán)

2.2? 防范措施

針對(duì)以上影響安全性因素,為提高FPGA軟件安全性,狀態(tài)機(jī)設(shè)計(jì)時(shí)一般要遵循以下編碼規(guī)范[7]。

1)狀態(tài)機(jī)在上電后應(yīng)進(jìn)行初始化,確保上電后狀態(tài)機(jī)處于合法的初始狀態(tài)。HDL編碼時(shí),通常將狀態(tài)機(jī)加入復(fù)位邏輯中,保證狀態(tài)機(jī)上電復(fù)位后處于明確的預(yù)期狀態(tài)。

2)狀態(tài)機(jī)狀態(tài)定義時(shí),應(yīng)確保不存在無效的冗余狀態(tài),狀態(tài)跳轉(zhuǎn)時(shí)不存在死鎖的情況。HDL編碼時(shí),不定義和聲明非必要的冗余狀態(tài),避免出現(xiàn)死鎖環(huán)邏輯。

3)狀態(tài)機(jī)跳轉(zhuǎn)時(shí),避免出現(xiàn)毛刺引起的誤跳轉(zhuǎn)。HDL編碼時(shí),宜采用時(shí)序邏輯來實(shí)現(xiàn)狀態(tài)機(jī)跳轉(zhuǎn),從而降低毛刺的風(fēng)險(xiǎn)[8]。

4)狀態(tài)機(jī)設(shè)計(jì)時(shí),應(yīng)補(bǔ)全case語句的default或others分支,并且通過開發(fā)工具設(shè)置或約束狀態(tài)機(jī)為安全模式,從而保證出現(xiàn)非法狀態(tài)時(shí),能夠跳回到有效狀態(tài),提高狀態(tài)機(jī)的安全性。

3? 信號(hào)毛刺

3.1? 影響安全性因素

信號(hào)毛刺主要是由于競爭冒險(xiǎn)產(chǎn)生的。信號(hào)經(jīng)由不同的路徑傳輸?shù)竭_(dá)電路中某一匯合點(diǎn)的時(shí)間有先有后,稱之為競爭。由于競爭現(xiàn)象引起電路輸出發(fā)生瞬間錯(cuò)誤的現(xiàn)象,稱之為冒險(xiǎn)。如圖7所示,發(fā)生冒險(xiǎn)時(shí),往往會(huì)出現(xiàn)一些錯(cuò)誤的尖峰信號(hào),這些尖峰信號(hào)就是毛刺。

圖7? 信號(hào)毛刺

當(dāng)出現(xiàn)毛刺時(shí),如果FPGA電路對(duì)毛刺敏感,則會(huì)導(dǎo)致FPGA軟件功能出現(xiàn)錯(cuò)誤,從而影響FPGA的安全性。影響FPGA軟件安全性的毛刺信號(hào)主要包括以下幾方面:

1)通過IO端口引入的外部毛刺信號(hào)。此類毛刺信號(hào)由FPGA外部器件產(chǎn)生,本身無法消除,只能通過電路設(shè)計(jì)減少毛刺信號(hào)的影響。

2)內(nèi)部產(chǎn)生的毛刺信號(hào)。此類毛刺信號(hào)由FPGA器件內(nèi)部產(chǎn)生,由于信號(hào)在FPGA的內(nèi)部走線和通過邏輯單元時(shí)造成的延遲不同,在多路信號(hào)變化的瞬間,組合邏輯的輸出會(huì)出現(xiàn)毛刺信號(hào)。

3.2? 防范措施

為了降低毛刺帶來的風(fēng)險(xiǎn),HDL編碼時(shí)要遵守相應(yīng)的編碼規(guī)范,以減少毛刺信號(hào)對(duì)FPGA軟件安全性的影響[9,10]。

1)外部輸入的信號(hào)進(jìn)行同步處理。利用D觸發(fā)器輸入端對(duì)毛刺不敏感的特點(diǎn),HDL編碼時(shí),對(duì)外部輸入的信號(hào)進(jìn)行同步處理,從而減少毛刺信號(hào)的影響。

2)盡量采用時(shí)序電路來實(shí)現(xiàn)邏輯功能。由于組合邏輯容易出現(xiàn)競爭冒險(xiǎn),導(dǎo)致毛刺出現(xiàn),而時(shí)序電路在時(shí)鐘沿有效時(shí)進(jìn)行邏輯操作,對(duì)毛刺不敏感。因此,HDL編碼時(shí),在FPGA資源允許的情況下,盡量采用時(shí)序電路來代替組合邏輯,從而降低毛刺帶來的風(fēng)險(xiǎn)。

3)應(yīng)避免出現(xiàn)毛刺敏感電路。HDL編碼時(shí),使用組合邏輯時(shí)應(yīng)避免出現(xiàn)鎖存器、組合邏輯環(huán)等敏感電路,譬如if語句應(yīng)補(bǔ)全else分支,case語句應(yīng)補(bǔ)全default分支;組合邏輯編碼時(shí),應(yīng)避免輸出信號(hào)反饋至輸入,導(dǎo)致出現(xiàn)組合邏輯環(huán)。

4)通過濾波電路對(duì)毛刺信號(hào)進(jìn)行濾除。HDL編碼時(shí),對(duì)關(guān)鍵信號(hào)設(shè)計(jì)濾波電路,將小于濾波寬度的毛刺信號(hào)濾除掉,保證信號(hào)采集的正確性。

4? 結(jié)? 論

影響FPGA軟件安全性的因素較多,本文從信號(hào)跨時(shí)鐘域、狀態(tài)機(jī)設(shè)計(jì)、信號(hào)毛刺等方面分析了其對(duì)安全性的影響,并從HDL編碼方面提出了防范措施,形成了HDL編碼規(guī)范,從而能夠在設(shè)計(jì)階段對(duì)HDL編碼提供參考,有效規(guī)避可能出現(xiàn)的FPGA軟件安全性問題,達(dá)到提升FPGA軟件質(zhì)量的目的。

參考文獻(xiàn):

[1] 祝宇,董冠濤,張碩.FPGA軟件亞穩(wěn)態(tài)處理技術(shù)研究 [J].中國檢驗(yàn)檢測,2020,28(3):14-17.

[2] 宋文強(qiáng),胡毅.FPGA跨時(shí)鐘域信號(hào)同步設(shè)計(jì)方法研究 [J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2018,18(9):24-27+81.

[3] 賈永興,楊宏,劉文慧,等.基于國產(chǎn)FPGA的網(wǎng)絡(luò)平臺(tái)跨時(shí)鐘域設(shè)計(jì)方法 [J].通信技術(shù),2021,54(10):2447-2450.

[4] 游斌相,廖育富,任午龍,等.FPGA在數(shù)據(jù)重排中的跨時(shí)鐘處理 [J].火控雷達(dá)技術(shù),2021,50(3):59-63.

[5] 黃琳,王新,胡成輝.基于FPGA的異步跨時(shí)鐘域設(shè)計(jì) [J].山西電子技術(shù),2020(1):76-78.

[6] 丁宗杰,門永平,白正堯,等.FPGA狀態(tài)機(jī)綜合可靠性探究 [J].空間電子技術(shù),2021,18(1):23-27.

[7] 楊亮,李祁.基于三模冗余架構(gòu)的航天器FPGA可靠性設(shè)計(jì) [J].計(jì)算機(jī)測量與控制,2019,27(12):244-248.

[8] 于瀟,劉文紅,趙靜,等.基于航天系統(tǒng)的FPGA可靠性安全性分析方法研究 [J].中國檢驗(yàn)檢測,2021,29(2):14-15+36.

[9] 何偉,張玲.消除CPLD/FPGA器件設(shè)計(jì)中的毛刺 [J].重慶大學(xué)學(xué)報(bào):自然科學(xué)版,2002(12):69-73.

[10] 中央軍委裝備發(fā)展部.軍用可編程邏輯器件軟件Verilog語言編程安全子集:GJB 10157-2021 [S].北京:國家軍用標(biāo)準(zhǔn)出版發(fā)行部,2021.

作者簡介:曹明(1989.08—),女,漢族,河南開封人,工程師,研究方向:FPGA測試。

猜你喜歡
安全性
兩款輸液泵的輸血安全性評(píng)估
既有建筑工程質(zhì)量安全性的思考
某既有隔震建筑檢測與安全性鑒定
米氮平治療老年失眠伴抑郁癥的療效及安全性
ApplePay橫空出世 安全性遭受質(zhì)疑 拿什么保護(hù)你,我的蘋果支付?
Imagination發(fā)布可實(shí)現(xiàn)下一代SoC安全性的OmniShield技術(shù)
古丈县| 江城| 怀柔区| 达州市| 辽中县| 乌海市| 乌审旗| 高雄市| 肇东市| 青海省| 茂名市| 若羌县| 东至县| 永宁县| 建瓯市| 武胜县| 承德市| 青阳县| 甘洛县| 墨江| 乌拉特前旗| 东平县| 鹤峰县| 余江县| 望江县| 静安区| 固镇县| 托克托县| 历史| 都兰县| 东乡县| 佳木斯市| 馆陶县| 宜宾县| 柳河县| 仁布县| 福安市| 理塘县| 牟定县| 万荣县| 永泰县|