版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第六講verilog的可綜合性邏輯綜合Verilog的邏輯綜合Verilog的可綜合風格6.1邏輯綜合邏輯綜合l 邏輯綜合邏輯綜合: :在標準單元庫和特定的設計約束的基礎上,把設在標準單元庫和特定的設計約束的基礎上,把設計的計的高層次描述轉(zhuǎn)換成優(yōu)化的門級網(wǎng)表的高層次描述轉(zhuǎn)換成優(yōu)化的門級網(wǎng)表的過程。過程。l標準單元庫可以包含簡單的單元,例如與門、或門和或非門標準單元庫可以包含簡單的單元,例如與門、或門和或非門等基本邏輯門,也可以包含宏單元,例如加法器、多路選擇器等基本邏輯門,也可以包含宏單元,例如加法器、多路選擇器和特殊的觸發(fā)器。和特殊的觸發(fā)器。l 計算機輔助邏輯綜合計算機輔助邏輯綜合工具的出現(xiàn)
2、已經(jīng)把高層次描述向邏輯門工具的出現(xiàn)已經(jīng)把高層次描述向邏輯門的轉(zhuǎn)化過程自動化了。設計者現(xiàn)在可以把精力集中在體系結(jié)構的轉(zhuǎn)化過程自動化了。設計者現(xiàn)在可以把精力集中在體系結(jié)構的方案、設計的硬件語言描述上,由綜合工具在內(nèi)部進行幾次的方案、設計的硬件語言描述上,由綜合工具在內(nèi)部進行幾次反復,生成優(yōu)化的門級描述。反復,生成優(yōu)化的門級描述。l 自動化的邏輯綜合自動化的邏輯綜合已經(jīng)非常有效地減少了高層次設計到門級已經(jīng)非常有效地減少了高層次設計到門級網(wǎng)表的轉(zhuǎn)化時間。它使設計者可以把更多的時間用于更高層次網(wǎng)表的轉(zhuǎn)化時間。它使設計者可以把更多的時間用于更高層次的描述上,因為把設計轉(zhuǎn)換到門級網(wǎng)表所需的時間大大減少了。的
3、描述上,因為把設計轉(zhuǎn)換到門級網(wǎng)表所需的時間大大減少了。l 寄存器傳輸級寄存器傳輸級(RTL)(RTL)層次用硬件描述語言層次用硬件描述語言verilogverilog編寫編寫設計。設計。l術語術語RTLRTL用于表示用于表示HDLHDL的一種風格,該風格的描述采用的一種風格,該風格的描述采用了了數(shù)據(jù)流和行為結(jié)構相結(jié)合數(shù)據(jù)流和行為結(jié)構相結(jié)合的方式。的方式。l邏輯綜合工具接受邏輯綜合工具接受RTLRTL級描述并把它轉(zhuǎn)化為優(yōu)化的門級級描述并把它轉(zhuǎn)化為優(yōu)化的門級網(wǎng)表。網(wǎng)表。lVerilogVerilog和和VHDLVHDL是兩種最流行的是兩種最流行的RTLRTL描述語言描述語言 6.2Verilog
4、HDL綜合綜合結(jié)構類型結(jié)構類型關鍵字或描述注釋關鍵字或描述注釋端口端口參數(shù)參數(shù)模塊定義模塊定義信號和變量信號和變量調(diào)用(實例引用)調(diào)用(實例引用)函數(shù)和任務函數(shù)和任務過程過程過程塊過程塊數(shù)據(jù)流數(shù)據(jù)流循環(huán)循環(huán)input, inout, outputparametermodulewire , reg , tri 允許使用向量表示允許使用向量表示模塊調(diào)用和門級原語調(diào)用模塊調(diào)用和門級原語調(diào)用 function, task 不考慮時序結(jié)構不考慮時序結(jié)構always, if, else, case,casex, casez 不支持不支持initialbegin, end, named blocks, di
5、sableassign 不考慮延遲信息不考慮延遲信息for , while, forever while和和forever循環(huán)必循環(huán)必 須須包括包括(posedge clock)或或(negedge clock)支持綜合的支持綜合的Verilog結(jié)構類型結(jié)構類型l邏輯綜合工具并不能處理隨意編寫的邏輯綜合工具并不能處理隨意編寫的verilog結(jié)構描述:通常,結(jié)構描述:通常,周周期期到到周期周期的任何的任何RTL verilog結(jié)構描述都能為邏輯綜合工具所接受。結(jié)構描述都能為邏輯綜合工具所接受。一、一、verilog結(jié)構類型結(jié)構類型l只有周期到周期只有周期到周期的任何的任何RTL verilogR
6、TL verilog結(jié)構描述都能結(jié)構描述都能為邏輯綜合工具所接受。例為邏輯綜合工具所接受。例whilewhile和和foreverforever語句必須語句必須由由(posedge(posedge clock) clock)或或(negedge(negedge clock) clock)終止循環(huán),終止循環(huán),使其具有強制性的周期到周期的描述。使其具有強制性的周期到周期的描述。l結(jié)構指定的延遲將被忽略結(jié)構指定的延遲將被忽略l不支持不支持initialinitial語句,必須用復位機制來代替。語句,必須用復位機制來代替。l要明確指定信號和變量的寬度。要明確指定信號和變量的寬度。否則,綜合后的可否則,
7、綜合后的可能會產(chǎn)生大量的門級網(wǎng)表能會產(chǎn)生大量的門級網(wǎng)表注意事項:注意事項:二、操作符二、操作符l幾乎所有的操作符都可以綜合。幾乎所有的操作符都可以綜合。l和!與和!與x x和和z z有關的操作符不可綜合有關的操作符不可綜合l寫表達式時,要用寫表達式時,要用圓括號使邏輯關系明確圓括號使邏輯關系明確,最好不要依賴運算的優(yōu)先級,最好不要依賴運算的優(yōu)先級操作符類型操作符類型符號符號連接及復制操作符連接及復制操作符一元操作符一元操作符算術操作符算術操作符邏輯移位操作符邏輯移位操作符關系操作符關系操作符相等操作符相等操作符按位操作符按位操作符邏輯操作符邏輯操作符條件操作符條件操作符 ! & | +
8、 - * % = = = != & | &|?:三三、部分、部分verilog結(jié)構的綜合結(jié)構的綜合賦值語句賦值語句assignl賦值語句綜合為賦值語句綜合為組合邏輯電路組合邏輯電路un1_outoutcbaoutassign out= (a & b) | c;l綜合為以下門級電路綜合為以下門級電路XOR2XOR2OR2AND2c_inbac_outsumassign c_out,sum=a + b + c_in;OR2AND2d1d0soutassign out= (s) ? d1 : d0;if-else語句語句OR2AND2d1d0soutmodule compif
9、 (out, d0, d1, s); input d0, d1, s; output out; reg out; always ( s or d0 or d1) if (s) out = d1; else out = d0;endmodule單條的單條的if-else語句語句綜合為一個二選綜合為一個二選1數(shù)數(shù)據(jù)選擇器據(jù)選擇器module compif (a, b, c, d, e); input a, b, c, d; output e; reg e; always ( a or b or c or d) if (a & b) e = d; else if (a & b) e
10、= c; else if ( a & b) e = 1b0; else if ( a & b) e = 1b1;endmoduleOR2m3AND2m3_b_0AND2m2AND2m1m3_b.Oedcba 定義了所有可能的選項的定義了所有可能的選項的ifelse嵌套語句,綜合結(jié)嵌套語句,綜合結(jié)果是受條件控制的純組合邏輯電路。果是受條件控制的純組合邏輯電路。module increment (phy, ones,z);input phy;input 1:0 ones;output 1:0 z;reg 1:0 z;always (phy or ones)if (phy)z = o
11、nes +1;endmodule 不給出所有不給出所有if分支值,則綜合出的結(jié)果會帶有分支值,則綜合出的結(jié)果會帶有鎖存器,變?yōu)闀r序邏輯電路鎖存器,變?yōu)闀r序邏輯電路。AND2z_ld00AND2z_ld10AND2z_ld01AND2z_ld11XOR2z_1_1.SUM1_0_x2z_1_.QRSz_0_.QRSz1:01:0ones1:01:0phy00001101101Q0D1000Q0D0XOR2z_1.SUM1_0_x2XOR2z_1.SUM0_0_x2OR2z_1.CO1_0_o2z_1.N_6_i_i.Oz1:01:0ones1:01:0phy10001else z = ones;
12、case語句語句 case語句綜合為語句綜合為數(shù)據(jù)選擇器數(shù)據(jù)選擇器,一般用于設計龐大的,一般用于設計龐大的數(shù)據(jù)選擇器數(shù)據(jù)選擇器。OR2z_7_0AND2z_7_0_b_0OR2z_6_0AND2z_6_0_b_0OR2z_5_0AND2z_5_0_b_0OR2z_4_0AND2z_4_0_b_0OR2z_3_0AND2z_3_0_b_0OR2z_2_0AND2z_2_0_b_0OR2z_1_0AND2z_1_0_b_0z_5_0_b.Oz_4_0_b.Oz_2_0_b.Oz_1_0_b.Oz_3_0_b.Oz_6_0_b.Oz_7_0_b.Ozd7d6d5d4d3d2d1d0s2:02:001
13、221222222110module increment (s, d0,d1,d2,d3,d4,d5,d6,d7,z);input 2:0 s;input d0,d1,d2,d3,d4,d5,d6,d7;output z;reg z;always (*)case (s)3b000: z = d0;3b001: z = d1;3b010: z = d2;3b011: z = d3;3b100: z = d4;3b101: z = d5;3b110: z = d6;3b111: z = d7;endcaseendmoduleAND2z_ld0AND2z_ld1OR2z_1_4_0_i_m2AND2
14、z_1_4_0_i_m2_b_0OR2z_1_3_0_i_m2AND2z_1_3_0_i_m2_b_0OR2z_1_2_0_i_m2AND2z_1_2_0_i_m2_b_0OR2z_1_1_0_i_m2AND2z_1_1_0_i_m2_b_0AND2un1_s_6_i_a2OR2z_1_5_0AND2z_1_5_0_b_0z.QRSz_1_5_0_b.Oz_1_4_0_i_m2_b.Oz_1_2_0_i_m2_b.Oz_1_3_0_i_m2_b.Oz_1_1_0_i_m2_b.Ozd5d4d3d2d1d0s2:02:021211200Q0D02211module increment (s, d
15、0,d1,d2,d3,d4,d5,d6,d7,z);input 2:0 s;input d0,d1,d2,d3,d4,d5,d6,d7;output z;reg z;always (*)case (s)3b000: z = d0;3b001: z = d1;3b010: z = d2;3b011: z = d3;3b100: z = d4;3b101: z = d5;endcaseendmodule 與與if語句類似,語句類似,如果如果沒有給出所有分支的值,沒有給出所有分支的值,則綜合后會出現(xiàn)鎖存器則綜合后會出現(xiàn)鎖存器。 casez和和casex與與case類似,只是條件的判斷類似,只是條件的
16、判斷不同。不同。sum_11:0+un19_sum1:0+un40_sum1:0+un61_sum1:0+un82_sum1:0+un103_sum1:0+un124_sum1:0+un145_sum1:0+c_inb7:07:0a7:07:0c_out1sum7:00000000001:0011:01121:02131:03141:04151:05161:06171:071for語句語句module increment (sum, c_out,a,b,c_in);input 7:0 a,b;output 7:0 sum;input c_in;output c_out;reg 7:0 sum;
17、reg c_out;reg c;integer i;always (a or b or c_in)beginc = c_in;for (i=0;i=7;i=i+1)c,sumi=ai+bi+c;c_out =c;endendmodulefor循環(huán)語句綜合產(chǎn)循環(huán)語句綜合產(chǎn)生級聯(lián)的鏈式組合生級聯(lián)的鏈式組合邏輯電路邏輯電路XOR2sum_1_1.SUM0XOR2un145_sum_1.m2OR2un145_sum_1.m3AND2un145_sum_1.m3_b_0XOR2un124_sum_1.m2OR2un124_sum_1.m3AND2un124_sum_1.m3_b_0XOR2un103_s
18、um_1.m2OR2un103_sum_1.m3AND2un103_sum_1.m3_b_0XOR2un82_sum_1.m2OR2un82_sum_1.m3AND2un82_sum_1.m3_b_0XOR2un61_sum_1.m2OR2un61_sum_1.m3AND2un61_sum_1.m3_b_0XOR2un40_sum_1.m2OR2un40_sum_1.m3AND2un40_sum_1.m3_b_0OR2un19_sum_1.m3AND2un19_sum_1.m3_b_0OR2sum_1_1.m3AND2sum_1_1.m3_b_0XOR2sum_1_1.SUM0_0XOR2un
19、19_sum_1.SUM0_0XOR2un40_sum_1.SUM0_0XOR2un61_sum_1.SUM0_0XOR2un82_sum_1.SUM0_0XOR2un103_sum_1.SUM0_0XOR2un124_sum_1.SUM0_0XOR2un145_sum_1.SUM0_0XOR2un145_sum_1.SUM0XOR2un124_sum_1.SUM0XOR2un103_sum_1.SUM0XOR2un82_sum_1.SUM0XOR2un61_sum_1.SUM0XOR2un40_sum_1.SUM0XOR2un19_sum_1.SUM0sum_1_1.m3_b.Oun19_s
20、um_1.m3_b.Oun40_sum_1.m3_b.Oun61_sum_1.m3_b.Oun82_sum_1.m3_b.Oun103_sum_1.m3_b.Oun124_sum_1.m3_b.Oun145_sum_1.m3_b.Oc_inb7:07:0a7:07:0c_outsum7:00776655443322100122334455667711234567always語句語句 alwaysalways語句可用于生成時序和組合邏輯。對于語句可用于生成時序和組合邏輯。對于時序邏輯時序邏輯來說,來說,alwaysalways語句必須由時鐘信號語句必須由時鐘信號clkclk的變化所控制。的變化所
21、控制。q.QclkdqQDmodule increment (q, d,clk);input d,clk;output q;reg q;always ( posedge clk)q = d;endmodulemodule increment (q, d,clk,rst);input d,clk,rst;output q;reg q;always ( posedge rst or negedge clk)if (!rst)q = d;elseq =0;endmoduleq.QRrstclkdqQD 帶異步復位端的帶異步復位端的D D觸發(fā)器。觸發(fā)器。阻塞或非阻塞阻塞或非阻塞使用的賦值類型依賴于所描
22、述的邏輯類型:使用的賦值類型依賴于所描述的邏輯類型: 在時序塊在時序塊RTLRTL代碼中使用非阻塞賦值代碼中使用非阻塞賦值 非阻塞賦值保存值直到時間片段的結(jié)束,從而避非阻塞賦值保存值直到時間片段的結(jié)束,從而避免仿真時的競爭情況或結(jié)果的不確定性免仿真時的競爭情況或結(jié)果的不確定性 在組合的在組合的RTLRTL代碼中使用阻塞賦值代碼中使用阻塞賦值 阻塞賦值立即執(zhí)行阻塞賦值立即執(zhí)行阻塞、非阻塞對比阻塞、非阻塞對比非阻塞賦值語句非阻塞賦值語句并行執(zhí)行并行執(zhí)行,因此臨時變量不可避免地在一個周期中,因此臨時變量不可避免地在一個周期中被賦值,在下一個周期中被采樣。被賦值,在下一個周期中被采樣。 module
23、bloc (clk, a, b); input clk, a; output b; reg y; reg b; always ( posedge clk) begin y =a; b =y; endendmodulemodule nonbloc (clk, a, b); input clk, a; output b; reg y; reg b; always ( posedge clk) begin y = a; b = y; endendmodule使用阻塞賦值,此描述綜合使用阻塞賦值,此描述綜合出一個出一個D flip-flop:使用非阻塞賦值,此描述將使用非阻塞賦值,此描述將綜合出兩個綜
24、合出兩個D Flip-flop。b.QbaclkQDy.Qb.QbaclkQDQD函數(shù)和任務函數(shù)和任務module orand (out, a, b, c, d, e); input a, b, c, d, e; output out; wire out; assign out = forand (a, b, c, d, e); function forand; input a, b, c, d, e; if (e = 1) forand = (a| b) & (c| d); else forand = 0; endfunctionendmodule 函數(shù)沒有時序控制,因此綜合結(jié)果為組
25、合邏輯。函數(shù)沒有時序控制,因此綜合結(jié)果為組合邏輯。函數(shù)可以在過程塊內(nèi)或持續(xù)賦值語句中調(diào)用。函數(shù)可以在過程塊內(nèi)或持續(xù)賦值語句中調(diào)用。下例中的下例中的or/andor/and塊由持續(xù)賦值語句調(diào)用函數(shù)實現(xiàn)塊由持續(xù)賦值語句調(diào)用函數(shù)實現(xiàn) AND2out_0AND2outOR2forand_0.un2_forandOR2forand_0.un1_forandedcbaout任務任務module orandtask (out, a, b, c, d, e); input a, b, c, d, e; output out; reg out; always ( a or b or c or d or e) o
26、rand (out, a, b, c, d, e); task orand; output out; input a, b, c, d, e; if (e = 1) out = (a| b) & (c| d); else out = 0; endtaskendmodule任務一般只在測試基準使用,因為:任務一般只在測試基準使用,因為: 沒有時序控制的任務如同函數(shù)沒有時序控制的任務如同函數(shù) 帶有時序控制的任務不可綜合帶有時序控制的任務不可綜合下面是用任務描述的下面是用任務描述的or/and塊:塊:AND2out_0AND2outOR2orand_0.un2_outOR2orand_0.u
27、n1_outedcbaout復位復位復位是可綜合編碼風格的重要環(huán)節(jié)。狀態(tài)機中一般都有復位。復位是可綜合編碼風格的重要環(huán)節(jié)。狀態(tài)機中一般都有復位。module sync( q, ck, r, d); input ck, d, r; output q; reg q; always ( negedge ck) if (r) q = 0; else q = d;endmodulemodule async( q, ck, r, d); input ck, d, r; output q; reg q; always ( negedge ck or posedge r) if (r) q = 0; else
28、 q = d;endmodule同步復位同步復位同步塊的異步復位同步塊的異步復位同步復位描述:同步復位描述:在同步塊內(nèi),當復位信號有效時,進行復位操作;當復位信號無在同步塊內(nèi),當復位信號有效時,進行復位操作;當復位信號無效時,執(zhí)行該塊的同步行為。如果將復位信號作為條件語句的條件,且在第一個效時,執(zhí)行該塊的同步行為。如果將復位信號作為條件語句的條件,且在第一個分支中進行復位,綜合工具可以更容易的識別復位信號。分支中進行復位,綜合工具可以更容易的識別復位信號。異步復位:異步復位:在同步塊的敏感表中包含復位信號的激活邊沿。在塊內(nèi),復位描述方在同步塊的敏感表中包含復位信號的激活邊沿。在塊內(nèi),復位描述方
29、式與同步方式相同式與同步方式相同。qdrckqQDRq.Qq_0.OdrckqQD同步復位同步復位qRdrckqQDq.QRdrckqQD同步塊的異步復位同步塊的異步復位6.3 verilog可綜合設計 設計者使用的設計者使用的verilogverilog設計風格會影響邏輯綜合最終產(chǎn)設計風格會影響邏輯綜合最終產(chǎn)生的門級網(wǎng)表。根據(jù)描述風格的不同,邏輯綜合可能產(chǎn)生生的門級網(wǎng)表。根據(jù)描述風格的不同,邏輯綜合可能產(chǎn)生高效率或者低效率的門級網(wǎng)表。因此,設計者必須清楚高高效率或者低效率的門級網(wǎng)表。因此,設計者必須清楚高效率電路的描述技巧,本節(jié)討論建模方案的技巧以及編寫效率電路的描述技巧,本節(jié)討論建模方案的
30、技巧以及編寫出高效率、可綜合的出高效率、可綜合的verilogverilog模塊方法。模塊方法。 verilogverilog描述的風格對最終設計有很大的影響。就邏輯綜合描述的風格對最終設計有很大的影響。就邏輯綜合而言,重要的是考慮實際的硬件實現(xiàn)問題:而言,重要的是考慮實際的硬件實現(xiàn)問題:在不犧牲高抽象在不犧牲高抽象層次優(yōu)勢的情況下,層次優(yōu)勢的情況下,RTLRTL描述應該盡可能地接近預期的結(jié)構描述應該盡可能地接近預期的結(jié)構。在設計抽象層次和控制邏輯綜合輸出結(jié)構之間存在一個折中。在設計抽象層次和控制邏輯綜合輸出結(jié)構之間存在一個折中。下面列出的是班下面列出的是班RTLRTL設計中設計者應該考慮的一
31、些設計原則。設計中設計者應該考慮的一些設計原則。一、一、 verilogverilog編碼風格編碼風格1.1.當為時序邏輯建模,使用當為時序邏輯建模,使用“非阻塞賦值非阻塞賦值”。2.2.當用當用alwaysalways塊為組合邏輯建模,使用塊為組合邏輯建模,使用“阻塞賦值阻塞賦值”3.3.當在同一個當在同一個alwaysalways塊里面既為組合邏輯又為時序邏輯建模,塊里面既為組合邏輯又為時序邏輯建模,使用使用“非阻塞賦值非阻塞賦值”。4.4.不要在同一個不要在同一個alwaysalways塊里面混合使用塊里面混合使用“阻塞賦值阻塞賦值”和和“非非阻塞賦值阻塞賦值”。5.5.不要在兩個或兩個以上不要在兩個或兩個以上alwaysalways塊里面對同一個塊里面對同一個變量變量進行賦進行賦值。值。6.6.在在VERILOGVERILOG語法中,語法中, if.else if . elseif.else if . else 語句是有優(yōu)先語句是有優(yōu)先級的,一般說來第一個級的,一般說來第一個ifif的優(yōu)先級最高,最后一個的優(yōu)先級最高,最后一個elseelse的優(yōu)的優(yōu)先級最低。先級最低。 而而casecase語句是語句是“平行平行”的結(jié)構的結(jié)構,所有的,所有的casecase的的條件和執(zhí)行都沒有條件和執(zhí)行都沒有“優(yōu)先級優(yōu)先級”
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 效果圖制作合同模板范本2篇
- 文具采購的合同范本3篇
- 探究采購訂單與采購合同的區(qū)別3篇
- 房屋買賣合同補充協(xié)議內(nèi)容3篇
- 安徽林業(yè)行業(yè)勞動合同模板3篇
- 房屋買賣合同解除的解除合同法律問題3篇
- 工業(yè)用地買賣合同范本3篇
- 市政工作市民意見3篇
- 放棄保證書中的放棄條件解讀3篇
- 房屋買賣合同解除協(xié)議書樣本3篇
- 機動車檢測站新?lián)Q版20241124質(zhì)量管理手冊
- 廣東省深圳市2023-2024學年高一上學期期末考試物理試題(含答案)
- 改變世界的材料智慧樹知到期末考試答案2024年
- 人文英語4寫作
- 《科研誠信與學術規(guī)范》期末考試答案95分
- 中國古代朝代歷史知識大漢王朝科普圖文PPT教學課件
- 基于R語言數(shù)據(jù)挖掘課程期末論文
- 數(shù)字電子技術課程設計電子密碼鎖
- 答案-唐宋詞鑒賞
- 國企三項制度改革文件-8、任期制契約化年度業(yè)績目標責任書(總經(jīng)理)
- 2022年公務員事業(yè)編面試題型及答題技巧
評論
0/150
提交評論