VHDL程序結(jié)構(gòu)_第1頁(yè)
VHDL程序結(jié)構(gòu)_第2頁(yè)
VHDL程序結(jié)構(gòu)_第3頁(yè)
VHDL程序結(jié)構(gòu)_第4頁(yè)
VHDL程序結(jié)構(gòu)_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、2.1 實(shí)體(ENTITY)2.2 結(jié)構(gòu)體(ARCHITECTURE ) 2.3 塊( BLOCK )2.4 進(jìn)程( PROCESS )2.5 子程序 (SUBPROGRAM)2.6 庫(kù) (LIBRARY) 2.7 程序包 (PACKAGE) 2.8 配置(CONFIGURATION)VHDL設(shè)計(jì)事例設(shè)計(jì)事例-一個(gè)一個(gè)2選選1多路選擇器多路選擇器程序包實(shí)體結(jié)構(gòu)體VHDL程序基本結(jié)構(gòu)程序基本結(jié)構(gòu)實(shí)體部分實(shí)體部分 描述設(shè)計(jì)實(shí)體的外描述設(shè)計(jì)實(shí)體的外部接口信號(hào)(即輸入部接口信號(hào)(即輸入/輸出信輸出信號(hào));號(hào));結(jié)構(gòu)體結(jié)構(gòu)體 用于描述設(shè)計(jì)實(shí)體用于描述設(shè)計(jì)實(shí)體的內(nèi)部電路。的內(nèi)部電路。包集合包集合 存放各設(shè)

2、計(jì)模塊能存放各設(shè)計(jì)模塊能共享的數(shù)據(jù)類(lèi)型、常數(shù)、子共享的數(shù)據(jù)類(lèi)型、常數(shù)、子程序等;程序等;庫(kù)庫(kù) 用于存放已編譯的實(shí)體、用于存放已編譯的實(shí)體、結(jié)構(gòu)體、包集合和配置。結(jié)構(gòu)體、包集合和配置。配置配置 用于從庫(kù)中選取所需用于從庫(kù)中選取所需元件安裝到設(shè)計(jì)單元的實(shí)元件安裝到設(shè)計(jì)單元的實(shí)體中。體中。實(shí)體和結(jié)構(gòu)體實(shí)體和結(jié)構(gòu)體 是是VHDL設(shè)計(jì)設(shè)計(jì)文件的兩個(gè)基本組成部分。文件的兩個(gè)基本組成部分。實(shí)體的一般格式為:實(shí)體的一般格式為: ENTITY 實(shí)體名實(shí)體名 IS 類(lèi)屬參數(shù)說(shuō)明類(lèi)屬參數(shù)說(shuō)明; 端口說(shuō)明端口說(shuō)明; END; 實(shí)體中的每一個(gè)實(shí)體中的每一個(gè)I/O信號(hào)被稱(chēng)為端口,其功能對(duì)應(yīng)于電路信號(hào)被稱(chēng)為端口,其功能對(duì)應(yīng)

3、于電路 圖符圖符號(hào)的一個(gè)引腳。端口說(shuō)明則是對(duì)一個(gè)實(shí)體的一組端口的定義,即號(hào)的一個(gè)引腳。端口說(shuō)明則是對(duì)一個(gè)實(shí)體的一組端口的定義,即對(duì)基本設(shè)計(jì)實(shí)體與外部接口的描述。端口是設(shè)計(jì)實(shí)體和外部環(huán)境對(duì)基本設(shè)計(jì)實(shí)體與外部接口的描述。端口是設(shè)計(jì)實(shí)體和外部環(huán)境動(dòng)態(tài)通信的通道。動(dòng)態(tài)通信的通道。ayand2b 實(shí)體名、實(shí)體名、端口名端口名等均應(yīng)為符合等均應(yīng)為符合VHDL命名規(guī)則的命名規(guī)則的標(biāo)識(shí)符標(biāo)識(shí)符。 ENTITY、IS、END是是VHDL的關(guān)鍵字(保留字)。的關(guān)鍵字(保留字)。 端口說(shuō)明的一般格式為:端口說(shuō)明的一般格式為: PORT(端口名(端口名,端口名,端口名:端口模式:端口模式 數(shù)據(jù)類(lèi)型;數(shù)據(jù)類(lèi)型; 端口名

4、端口名,端口名,端口名:端口模式:端口模式 數(shù)據(jù)類(lèi)型);數(shù)據(jù)類(lèi)型); PORT (a,b: IN STD_LOGIC; y : OUT STD_LOGIC);端口說(shuō)明端口說(shuō)明端口模式端口模式Entity用來(lái)說(shuō)明數(shù)據(jù)傳輸通過(guò)該端口用來(lái)說(shuō)明數(shù)據(jù)傳輸通過(guò)該端口的方向的方向。Out與與Buffer的區(qū)別的區(qū)別 Entity test1 is port(a: in std_logic; b,c: out std_logic ); end test1; architecture a of test1 is begin b = not(a); c = b; end a; Entity test2 is po

5、rt(a: in std_logic; b : buffer std_logic; c: out std_logic ); end test2; architecture a of test2 is begin b = not(a); c = b; end a;-Error類(lèi)屬參數(shù)說(shuō)明類(lèi)屬參數(shù)說(shuō)明Generic類(lèi)屬參數(shù)說(shuō)明是可選部分。如果需要,可使用以類(lèi)屬參數(shù)說(shuō)明是可選部分。如果需要,可使用以“GENERIC”語(yǔ)句來(lái)指定該設(shè)計(jì)單元的類(lèi)屬參數(shù)語(yǔ)句來(lái)指定該設(shè)計(jì)單元的類(lèi)屬參數(shù)(如延時(shí)等)。(如延時(shí)等)。類(lèi)屬參數(shù)說(shuō)明的格式為:類(lèi)屬參數(shù)說(shuō)明的格式為: GENERIC(端口名(端口名,端口名,端口名:IN

6、 子類(lèi)型子類(lèi)型 :=初始值初始值 ;端口名;端口名,端口名,端口名: IN 子類(lèi)型子類(lèi)型 :=初始值初始值 );DD實(shí)體舉例例:例: 四位加法器實(shí)體說(shuō)明程序四位加法器實(shí)體說(shuō)明程序 ENTITY add4 IS PORT(a, b: IN STD_LOGIC_VECTOR(3 downto 0); Ci: IN STD_LOGIC; Sum: OUT STD_LOGIC_VECTOR(3 downto 0); Co: OUT STD_LOGIC); END add4; 由實(shí)體說(shuō)明畫(huà)出四位加法器由實(shí)體說(shuō)明畫(huà)出四位加法器add4的電路圖如下所示。的電路圖如下所示。add4a3.0b3.0Sum3.0

7、CiCol2. 2 結(jié)構(gòu)體(結(jié)構(gòu)體(ARCHITECTURE )結(jié)構(gòu)體的一般格式如下:結(jié)構(gòu)體的一般格式如下: ARCHITECTURE 結(jié)構(gòu)體名結(jié)構(gòu)體名 OF 實(shí)體名實(shí)體名 IS 結(jié)構(gòu)體說(shuō)明部分結(jié)構(gòu)體說(shuō)明部分; BEGIN 功能描述語(yǔ)句功能描述語(yǔ)句 ; END ARCHITECTURE 結(jié)構(gòu)體名;結(jié)構(gòu)體名; 結(jié)構(gòu)體說(shuō)明結(jié)構(gòu)體說(shuō)明是指對(duì)結(jié)構(gòu)體需要使用的信號(hào)、常數(shù)、數(shù)據(jù)類(lèi)是指對(duì)結(jié)構(gòu)體需要使用的信號(hào)、常數(shù)、數(shù)據(jù)類(lèi) 型和型和函數(shù)進(jìn)行定義和說(shuō)明。函數(shù)進(jìn)行定義和說(shuō)明。功能描述語(yǔ)句功能描述語(yǔ)句具體地描述了結(jié)構(gòu)體的行為。具體地描述了結(jié)構(gòu)體的行為。功能描述語(yǔ)句功能描述語(yǔ)句都是并發(fā)(同時(shí))執(zhí)行的都是并發(fā)(同時(shí))執(zhí)

8、行的-與排列順序無(wú)關(guān)。與排列順序無(wú)關(guān)。實(shí)體和結(jié)構(gòu)體之間的關(guān)系實(shí)體和結(jié)構(gòu)體之間的關(guān)系Input 1Input nOutput 1Output nVHDL設(shè)計(jì)事例-一個(gè)2選1多路選擇器程序包實(shí)體結(jié)構(gòu)體 結(jié)構(gòu)體(結(jié)構(gòu)體(ARCHITECTURE )結(jié)構(gòu)體構(gòu)造圖結(jié)構(gòu)體構(gòu)造圖l2.3 塊(塊( BLOCK ) BLOCK語(yǔ)句的語(yǔ)法格式為:語(yǔ)句的語(yǔ)法格式為: 塊標(biāo)號(hào):塊標(biāo)號(hào):BLOCK (塊保護(hù)表達(dá)式塊保護(hù)表達(dá)式) 說(shuō)明語(yǔ)句說(shuō)明語(yǔ)句; BEGIN 并行語(yǔ)句并行語(yǔ)句; END BLOCK 標(biāo)號(hào)名;標(biāo)號(hào)名; 保護(hù)表達(dá)式保護(hù)表達(dá)式是可選項(xiàng),它是一個(gè)布爾表達(dá)式。保護(hù)表達(dá)式的作是可選項(xiàng),它是一個(gè)布爾表達(dá)式。保護(hù)表達(dá)

9、式的作用是:只有當(dāng)其為真時(shí),該塊中的語(yǔ)句才被啟動(dòng)執(zhí)行;否則,該用是:只有當(dāng)其為真時(shí),該塊中的語(yǔ)句才被啟動(dòng)執(zhí)行;否則,該塊中的語(yǔ)句不被執(zhí)行。塊中的語(yǔ)句不被執(zhí)行。 BLOCK語(yǔ)句中所描述的各個(gè)語(yǔ)句是可以并行執(zhí)行的,它和書(shū)語(yǔ)句中所描述的各個(gè)語(yǔ)句是可以并行執(zhí)行的,它和書(shū)寫(xiě)順序無(wú)關(guān)寫(xiě)順序無(wú)關(guān)。 一個(gè)大規(guī)模的電原理圖通??梢苑指畛啥鄰堊釉韴D,以便于設(shè)計(jì)和存一個(gè)大規(guī)模的電原理圖通??梢苑指畛啥鄰堊釉韴D,以便于設(shè)計(jì)和存檔。同樣,在檔。同樣,在VHDL程序設(shè)計(jì)中,結(jié)構(gòu)體對(duì)應(yīng)整個(gè)電原理圖,而結(jié)構(gòu)體可由程序設(shè)計(jì)中,結(jié)構(gòu)體對(duì)應(yīng)整個(gè)電原理圖,而結(jié)構(gòu)體可由多個(gè)多個(gè)BLOCK塊組成,每一個(gè)塊組成,每一個(gè)BLOCK塊則對(duì)

10、應(yīng)一張子原理圖。電原理圖的分塊則對(duì)應(yīng)一張子原理圖。電原理圖的分割關(guān)系和割關(guān)系和VHDL程序中用程序中用BLOCK塊分割結(jié)構(gòu)體的關(guān)系是一一對(duì)應(yīng)的。塊分割結(jié)構(gòu)體的關(guān)系是一一對(duì)應(yīng)的。例: 用BLOCK語(yǔ)句描述2選1電路的程序。 ENTITY mux2_1 IS PORT(d0, d1, sel: INSTD_LOGIC; q: OUT STD_LOGIC); END mux2_1; ARCHITECTURE amux OF mux2_1 IS SIGNAL tmp1,tmp2,tmp3 : STD_LOGIC; BEGIN cale: BLOCK BEGIN tmp1=d0 AND sel; tmp

11、2=d1 AND (not sel); tmp3=tmp1 OR tmp2; q=tmp3; END BLOCK cale; END amux; 上述結(jié)構(gòu)體中只有一個(gè) BLOCK塊,若電路復(fù)雜時(shí)可由幾個(gè)BLOCK塊組成。d1d0qselu2u1u3tmp1tmp2tmp3 實(shí)體的功能和結(jié)構(gòu)。小 結(jié) 本節(jié)課我們學(xué)習(xí)了VHDL程序的基本結(jié)構(gòu)及其主要模塊實(shí)體結(jié)構(gòu)體和結(jié)構(gòu)體中的并行描述語(yǔ)句-塊語(yǔ)句。要求大家重點(diǎn)掌握的內(nèi)容有:VHDL程序的基本結(jié)構(gòu)。結(jié)構(gòu)體的能和結(jié)構(gòu)。了解塊語(yǔ)句的并行特點(diǎn)。 練習(xí):練習(xí):1、簡(jiǎn)述設(shè)計(jì)實(shí)體、實(shí)體和結(jié)構(gòu)體之間的關(guān)系、簡(jiǎn)述設(shè)計(jì)實(shí)體、實(shí)體和結(jié)構(gòu)體之間的關(guān)系2、描述結(jié)構(gòu)體的主要特點(diǎn)

12、、描述結(jié)構(gòu)體的主要特點(diǎn)l2.4 進(jìn)程(進(jìn)程( PROCESS ) PROCESS語(yǔ)句是一種并發(fā)處理語(yǔ)句,在一個(gè)構(gòu)造體中多語(yǔ)句是一種并發(fā)處理語(yǔ)句,在一個(gè)構(gòu)造體中多個(gè)個(gè)PROCESS語(yǔ)句可以同時(shí)并發(fā)運(yùn)行。語(yǔ)句可以同時(shí)并發(fā)運(yùn)行。PROCESS語(yǔ)句是語(yǔ)句是VHDL中描述硬件系統(tǒng)并發(fā)行為的最常用、最基本的語(yǔ)句。中描述硬件系統(tǒng)并發(fā)行為的最常用、最基本的語(yǔ)句。進(jìn)程語(yǔ)句的一般格式為;進(jìn)程語(yǔ)句的一般格式為; 進(jìn)程名:進(jìn)程名: PROCESS (敏感信號(hào)表敏感信號(hào)表) 進(jìn)程說(shuō)明語(yǔ)句進(jìn)程說(shuō)明語(yǔ)句 BEGIN 順序描述語(yǔ)句;順序描述語(yǔ)句; END PROCESS 進(jìn)程名進(jìn)程名; 例:例: 利用利用PROCESS語(yǔ)句設(shè)

13、計(jì)與非門(mén)電路。語(yǔ)句設(shè)計(jì)與非門(mén)電路。 nandx: PROCESS (a, b) BEGIN y=a NAND b ; END PROCESS nandx; 敏感信號(hào)表敏感信號(hào)表所標(biāo)明的信號(hào)是用來(lái)所標(biāo)明的信號(hào)是用來(lái)啟動(dòng)進(jìn)程啟動(dòng)進(jìn)程的。敏感信的。敏感信號(hào)表中的信號(hào)無(wú)論哪一個(gè)發(fā)生變化(如由號(hào)表中的信號(hào)無(wú)論哪一個(gè)發(fā)生變化(如由0變變1或或由由1變變0 )都將啟動(dòng)該)都將啟動(dòng)該P(yáng)ROCESS語(yǔ)句。語(yǔ)句。一旦啟動(dòng)后一旦啟動(dòng)后, PROCESS中的語(yǔ)句將從上至下逐句執(zhí)中的語(yǔ)句將從上至下逐句執(zhí)行一遍。當(dāng)最后一個(gè)執(zhí)行完畢以后,即返回到開(kāi)始的行一遍。當(dāng)最后一個(gè)執(zhí)行完畢以后,即返回到開(kāi)始的PROCESS語(yǔ)句,等待下

14、一次啟動(dòng)語(yǔ)句,等待下一次啟動(dòng)。因此,只要因此,只要PROCESS中指定的信號(hào)變化一次,該中指定的信號(hào)變化一次,該P(yáng)ROCESS語(yǔ)句就語(yǔ)句就會(huì)執(zhí)行一遍。會(huì)執(zhí)行一遍。 l2.5 子程序(子程序( SUBPROGRAM ) 子程序可以在結(jié)構(gòu)體或程序包的任何位置被調(diào)用,而且可以子程序可以在結(jié)構(gòu)體或程序包的任何位置被調(diào)用,而且可以反復(fù)調(diào)用。反復(fù)調(diào)用。 VHDL的子程序有兩種類(lèi)型:的子程序有兩種類(lèi)型:過(guò)程過(guò)程(PROCEDURE)函數(shù)函數(shù)(FUNCTION)子程序的特點(diǎn)子程序的特點(diǎn): 過(guò)程(過(guò)程(PROCEDURE)過(guò)程語(yǔ)句的結(jié)構(gòu):過(guò)程語(yǔ)句的結(jié)構(gòu): PROCEDURE 過(guò)程名(參數(shù)過(guò)程名(參數(shù)1;參數(shù);參

15、數(shù)2; )IS 定義語(yǔ)句定義語(yǔ)句; BEGIN 順序處理語(yǔ)句順序處理語(yǔ)句; END 過(guò)程名;過(guò)程名;過(guò)程語(yǔ)句的調(diào)用格式:過(guò)程語(yǔ)句的調(diào)用格式: 過(guò)程名過(guò)程名(實(shí)際參數(shù)表);(實(shí)際參數(shù)表);例:例: 設(shè)計(jì)一個(gè)從兩個(gè)整數(shù)中求取最大值的過(guò)程。設(shè)計(jì)一個(gè)從兩個(gè)整數(shù)中求取最大值的過(guò)程。 PROCEDURE max(a, b: IN INTEGER; y:OUT INTEGER) IS BEGIN IF (ab) THEN y=b; ELSE yb) THEN tmp:=a; ELSE tmp:=b; END IF; RETURN tmp; END max; 函數(shù)的參數(shù)均為輸入?yún)?shù)。函數(shù)的參數(shù)均為輸入?yún)?shù)。

16、函數(shù)調(diào)用返回一個(gè)指定數(shù)據(jù)類(lèi)型的值。函數(shù)調(diào)用返回一個(gè)指定數(shù)據(jù)類(lèi)型的值。ARCHITECTURE rtl OF dpeak IS SIGNAL peak : STD_LOGIC_VECTOR(5 downto 0); BEGIN dout=peak; PROCESS (clk) BEGIN IF (clkevent and clk=1) THEN IF (set=1) THEN peak=date; ELSE peak RETURN 1; WHEN 1= RETURN 0; WHEN Z= RETURN Z; END CASE; END invert; END BODY; 一個(gè)包集合說(shuō)明至多可以帶

17、一個(gè)包體,包體和包頭使用一個(gè)包集合說(shuō)明至多可以帶一個(gè)包體,包體和包頭使用相同的名字。包體的內(nèi)容是基本說(shuō)明和子程序體說(shuō)明。但要相同的名字。包體的內(nèi)容是基本說(shuō)明和子程序體說(shuō)明。但要注意,若包集合中含有子程序說(shuō)明時(shí),必須將子程序放在對(duì)注意,若包集合中含有子程序說(shuō)明時(shí),必須將子程序放在對(duì)應(yīng)的包體中。應(yīng)的包體中。 包體中的子程序及其相應(yīng)的說(shuō)明是專(zhuān)用的,不能被其它包體中的子程序及其相應(yīng)的說(shuō)明是專(zhuān)用的,不能被其它VHDL單元所引用;而包集合中的說(shuō)明是公用的,它可以獨(dú)單元所引用;而包集合中的說(shuō)明是公用的,它可以獨(dú)立地編譯并插入設(shè)計(jì)庫(kù)中。包集合體是次級(jí)設(shè)計(jì)單元,只有立地編譯并插入設(shè)計(jì)庫(kù)中。包集合體是次級(jí)設(shè)計(jì)單元

18、,只有在其對(duì)應(yīng)的主設(shè)計(jì)單元編譯并插入設(shè)計(jì)庫(kù)之后,才可獨(dú)立地在其對(duì)應(yīng)的主設(shè)計(jì)單元編譯并插入設(shè)計(jì)庫(kù)之后,才可獨(dú)立地編譯并插入到設(shè)計(jì)庫(kù)中。編譯并插入到設(shè)計(jì)庫(kù)中。l2. 8 配置配置(CONFIGURATION) 配置的基本格式為:配置的基本格式為: CONFIGURATION 配置名配置名 OF 實(shí)體名實(shí)體名 IS 配置說(shuō)明配置說(shuō)明; END 配置名;配置名; 配置語(yǔ)句配置語(yǔ)句描述了層與層之間的連接關(guān)系,以及實(shí)體與構(gòu)描述了層與層之間的連接關(guān)系,以及實(shí)體與構(gòu)造體之間的連接關(guān)系。(一個(gè)實(shí)體(造體之間的連接關(guān)系。(一個(gè)實(shí)體(ENTITY)可以有多個(gè))可以有多個(gè)構(gòu)造體)設(shè)計(jì)者可以利用配置語(yǔ)句選擇不同的構(gòu)造體

19、,使其構(gòu)造體)設(shè)計(jì)者可以利用配置語(yǔ)句選擇不同的構(gòu)造體,使其與要設(shè)計(jì)的實(shí)體相對(duì)應(yīng);在仿真某一個(gè)實(shí)體時(shí),可以利用配與要設(shè)計(jì)的實(shí)體相對(duì)應(yīng);在仿真某一個(gè)實(shí)體時(shí),可以利用配置選擇不同的構(gòu)造體進(jìn)行性能對(duì)比實(shí)驗(yàn),以得到性能最佳的置選擇不同的構(gòu)造體進(jìn)行性能對(duì)比實(shí)驗(yàn),以得到性能最佳的構(gòu)造體。構(gòu)造體。 CONFIGURATION 配置名配置名 OF 實(shí)體名實(shí)體名 IS FOR 選配結(jié)構(gòu)體名選配結(jié)構(gòu)體名 END FOR; END 配置名配置名; 配置語(yǔ)句根據(jù)不同情況,其說(shuō)明語(yǔ)句有簡(jiǎn)有繁。最簡(jiǎn)單配置語(yǔ)句根據(jù)不同情況,其說(shuō)明語(yǔ)句有簡(jiǎn)有繁。最簡(jiǎn)單的缺省配置格式為:的缺省配置格式為:例:例:加入了配置的加入了配置的4位等值比較器設(shè)計(jì)文件位等值比較器設(shè)計(jì)文件LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY comp4 IS PORT(a, b: IN STD_LOGIC_VECTOR(3 downto 0); y: OUT STD_LOGIC); END comp4;-結(jié)構(gòu)體結(jié)構(gòu)體 1: ARCHITECTURE behavior OF comp4 IS BEGIN Comp: PROCESS(a, b) BEGIN IF a=b THEN y=1; ELSE y=0; END IF; END PROCESS comp; END be

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論