版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 課程設(shè)計</b></p><p> 開課學(xué)期: 2013-2014學(xué)年第一學(xué)期 </p><p> 課程名稱: 集成電路綜合課程設(shè)計 </p><p> 學(xué) 院: </p><p> 專 業(yè): </p><p&
2、gt; 班 級: </p><p> 學(xué) 號: </p><p> 姓 名: </p><p> 任課教師: </p><p> 2013 年 9 月 11 日</p><p>
3、 一、課程設(shè)計目的3</p><p><b> 二、設(shè)計要求3</b></p><p><b> 3</b></p><p> 三、設(shè)計基本原理3</p><p> 四、設(shè)計設(shè)計分析4</p><p> 五,設(shè)計實現(xiàn)過程5</p><p
4、><b> A.電路設(shè)計5</b></p><p><b> B.綜合過程5</b></p><p><b> C.結(jié)果8</b></p><p><b> 五.總結(jié)及感想9</b></p><p><b> 附件:23
5、</b></p><p><b> 設(shè)計目的</b></p><p> 利用verilogHDL設(shè)計數(shù)字電路異步FIFO,通過對verilogHDL的學(xué)習(xí),掌握一些基本的知識,本次課程設(shè)計的安排旨在提升學(xué)生的動手能力,加強大家對專業(yè)理論知識的理解和實際運用,加強大家的自學(xué)能力,為大家做畢業(yè)設(shè)計做很好的鋪墊。</p><p>&l
6、t;b> 設(shè)計要求</b></p><p> 遵循RTL設(shè)計規(guī)則,利用VerilogHDL 設(shè)計數(shù)字電路異步FIFO.異步FIFO具有讀寫兩個時鐘,讀時鐘100MHz,寫時鐘50MHz。RTL為可綜合設(shè)計,需要考慮不同時鐘領(lǐng)域的同步設(shè)計,具有空滿標(biāo)志產(chǎn)生邏輯,并且根據(jù)空滿標(biāo)志進行讀寫數(shù)據(jù)及讀寫使能等邏輯控制。根據(jù)RTL設(shè)計,編寫驗證環(huán)境,即testbench,在testbenc
7、h中測試異步FIFO的讀寫功能是否正確。異步FIFO寫數(shù)據(jù)由testbench產(chǎn)生。編寫一定的測試向量,來測試覆蓋所設(shè)計的異步FIFO各項功能及指標(biāo)。將異步FIFO RTL在DC環(huán)境中進行綜合,編寫約束文件,給出最終的綜合結(jié)果,包括面積報告,網(wǎng)表及時序報告。約束文件中,讀寫時鐘要求見上,輸入延遲為寫時鐘周期的一半,輸出延遲為讀時鐘周期的1/3,其他約束要求根據(jù)RTL設(shè)計自己確定。</p><p>&l
8、t;b> 設(shè)計基本原理</b></p><p> 從硬件的觀點來看,就是一塊數(shù)據(jù)內(nèi)存。它有兩個端口,一個用來寫數(shù)據(jù),就是將數(shù)據(jù)存入FIFO;另一個用來讀數(shù)據(jù),也就是將數(shù)據(jù)從FIFO當(dāng)中取出。與FIFO操作相關(guān)的有兩個指針,寫指針指向要寫的內(nèi)存部分,讀指針指向要讀的內(nèi)存部分。FIFO控制器通過外部的讀寫信號控制這兩個指針移動,并由此產(chǎn)生FIFO空信號或滿信號。</p><p
9、> 對于異步FIFO而言,數(shù)據(jù)是由某一個時鐘域的控制信號寫入FIFO,而由另一個時鐘域的控制信號將數(shù)據(jù)讀出FIFO。也就是說,讀寫指針的變化動作是由不同的時鐘產(chǎn)生的。因此,對FIFO空或滿的判斷是跨時鐘域的。如何根據(jù)異步的指針信號對FIFO的滿狀態(tài)或空狀態(tài)進行正確的判斷。</p><p><b> 設(shè)計分析</b></p><p> 在數(shù)字集成電路中,觸發(fā)
10、器要滿足setup/hold的時間要求。當(dāng)一個信號被寄存器鎖存時,如果信號和時鐘之間不滿足這個要求,Q端的值是不確定的,并且 在未知的時刻會固定到高電平或低電平。這個過程稱為亞穩(wěn)態(tài)(Metastability)。圖2所示為異步時鐘和亞穩(wěn)態(tài),圖中clka和clkb為異步時 鐘。</p><p> ?、賹懙刂?讀地址采用格雷碼。由實踐可知,同步多個異步輸入信號出現(xiàn)亞穩(wěn)態(tài)的概率遠(yuǎn)遠(yuǎn)大于同步一個異步信號的概率。對多個觸
11、發(fā)器的輸出所組成的寫地址/讀地址可以采用格雷碼。由于格雷碼每次只變化一位,采用格雷碼可以有效地減少亞穩(wěn)態(tài)的產(chǎn)生。</p><p> 2.2 空/滿標(biāo)志的產(chǎn)生</p><p> 空/滿標(biāo)志的產(chǎn)生FIFO的核心部分。如何正確設(shè)計此部分的邏輯,直接影響到FIFO的性能。</p><p> 空/ 滿標(biāo)志產(chǎn)生的原則是:寫滿不溢出,讀空不多讀。即無論在什么進修,都不應(yīng)出現(xiàn)
12、讀寫地址同時對一個存儲器地址操作的情況。在讀寫地址相等或相差一個或多個地 址的時候,滿標(biāo)志應(yīng)該有效,表示此時FIFO已滿,外部電路應(yīng)對FIFO發(fā)數(shù)據(jù)。在滿信號有效時寫數(shù)據(jù),應(yīng)根據(jù)設(shè)計的要求,或保持、或拋棄重發(fā)。同理,空 標(biāo)志的產(chǎn)生也是如此,即:</p><p> 空標(biāo)志<=(|寫地址-讀地址|<=預(yù)定值)AND(寫地址超前讀地址)</p><p> 滿標(biāo)志<=(|寫地
13、址-讀地址|<=預(yù)定值)AND(讀地址超前寫地址)</p><p><b> 設(shè)計實現(xiàn)過程</b></p><p><b> 五、設(shè)計實現(xiàn)過程</b></p><p><b> A、電路實現(xiàn)過程</b></p><p><b> 附圖 1</b&g
14、t;</p><p> 由異步FIFO內(nèi)部模塊圖和接口信號(附圖1)可以知道,因為是兩個異步的時鐘,所以用鎖存器來避免產(chǎn)生亞穩(wěn)態(tài)。為了生成空滿標(biāo)志,我們采用格雷碼來編寫。我們可以看出FIFO中的讀寫指針是一個循環(huán)指針,讀寫指針初始化值都為0,滿標(biāo)志初始化為0,空標(biāo)志初始化值為1.讀寫操作開始的時候,每做一次寫操作,寫指針加1,每做一次讀操作,讀指針也加1,。當(dāng)讀指針在加1過程中與寫指針相等的時候,表示緩沖區(qū)為空
15、,應(yīng)置空標(biāo)志。反之,寫指針加1過程中等于讀指針,緩沖區(qū)滿,應(yīng)置滿標(biāo)志。</p><p> 經(jīng)上面的分析,結(jié)合格雷碼的特點,我們可以將滿標(biāo)志定義如下:</p><p> overflow=(wptr[n]^rptr[n-1])&~(wptr[n-1]^rptr[n]</p><p> 我們可以將空標(biāo)志定義如下:</p><p>
16、 underflow=~(wptr[n]^rptr[n-1]&(wptr[n-1]^rptr[n])</p><p> 分析后根據(jù)RTL設(shè)計的規(guī)則來編寫代碼如下所示:</p><p> //asyn fifo</p><p> `timescale 1ns/1ns</p><p> module fifo (</p>
17、;<p><b> wdata,</b></p><p><b> full,</b></p><p><b> winc,</b></p><p><b> wclk,</b></p><p><b> wrst_n,&
18、lt;/b></p><p><b> rdata,</b></p><p><b> rinc,</b></p><p><b> empty,</b></p><p><b> rclk,</b></p><p>
19、<b> rrst_n</b></p><p><b> );</b></p><p> //----------------</p><p> parameterWIDTH = 8;</p><p> parameter DEPTH = 2;</p><
20、p> parametermax_count = 2'b11;</p><p> //-------------------------</p><p> input[WIDTH:0]wdata;</p><p> inputwinc;</p><p> inputwclk;</p><
21、p> inputwrst_n;</p><p> inputrinc;</p><p> inputrclk;</p><p> inputrrst_n;</p><p> //-------------------</p><p> outputfull;</p>
22、<p> output[WIDTH:0]rdata;</p><p> outputempty;</p><p> //---------------------------</p><p> regfull_r;</p><p> regempty_r;</p><p> reg
23、[WIDTH:0]rdata_r;</p><p> //-------------------</p><p> reg[DEPTH:0]wptr; //n+1 ptr</p><p> reg[DEPTH:0]rptr;</p><p> reg[DEPTH:0]w1_rptr;</p><p&
24、gt; reg[DEPTH:0]w2_rptr;</p><p> reg[DEPTH:0]r1_wptr;</p><p> reg[DEPTH:0]r2_wptr;</p><p> //---------------------------------</p><p> reg[(WIDTH-1):0]fifo
25、mem [0:max_count];</p><p> reg[DEPTH:0]wbin,rbin;</p><p> wire[DEPTH:0]rgnext,rbnext,wgnext,wbnext;</p><p> reg[DEPTH:0] rgnext_r,rbnext_r;</p><p> wire[(DE
26、PTH-1):0]raddr,waddr;</p><p> //reg[(DEPTH-1):0]raddr_r;</p><p> wirefull_val,empty_val;</p><p> //---------------------/</p><p> //write in</p><p>
27、; always@(posedge wclk)</p><p><b> begin</b></p><p> if(!winc&!full)//write enable no full</p><p> fifomem[waddr] <= wdata;</p><p><b> e
28、nd</b></p><p> //read out</p><p> always@(posedge rclk)</p><p><b> begin</b></p><p> if(!rinc&!empty)</p><p> rdata_r <= fifo
29、mem[raddr];</p><p><b> end</b></p><p> //------------------------</p><p> //asyn write ptr</p><p> always@(posedge wclk or negedge wrst_n)</p>&l
30、t;p><b> begin</b></p><p> if(!wrst_n)</p><p> {w2_rptr,w1_rptr} <= 2'b00;</p><p><b> else</b></p><p> {w2_rptr,w1_rptr} <= {w1
31、_rptr,rptr};</p><p><b> end</b></p><p><b> //-----</b></p><p> //generate wptr and wbin</p><p> always@(posedge wclk or negedge wrst_n)<
32、/p><p><b> begin</b></p><p> if(!wrst_n)</p><p> {wbin,wptr} <= 2'b00;</p><p><b> else</b></p><p> {wbin,wptr} <= {wbne
33、xt,wgnext};</p><p><b> end</b></p><p><b> //--</b></p><p> assign waddr = wbin[(DEPTH-1):0];</p><p> assign wbnext = !full ? (wbin + !winc
34、) : wbin;</p><p> assignwgnext = (wbnext >> 1) ^ wbnext;</p><p> assign full_val = (wgnext == {~w2_rptr[DEPTH],w2_rptr[(DEPTH-1):0]});</p><p> always@(posedge wclk or neg
35、edge wrst_n)</p><p><b> begin</b></p><p> if(!wrst_n)</p><p> full_r <= 1'b0;</p><p><b> else</b></p><p> full_r <=
36、full_val;</p><p><b> end</b></p><p> //asyn read ptr ------------------------------------------------------------</p><p> always@(posedge rclk or negedge rrst_n)</
37、p><p><b> begin</b></p><p> if(!rrst_n)</p><p> {r2_wptr,r1_wptr} <= 2'b00;</p><p><b> else</b></p><p> {r2_wptr,r1_wptr}
38、<= {r1_wptr,wptr};</p><p><b> end</b></p><p> ///---------------------------------------------</p><p> //generate rbin and rptr</p><p> always@(pose
39、dge rclk or negedge rrst_n)</p><p><b> begin</b></p><p> if(!rrst_n)</p><p> {rbin,rptr} <= 2'b00;</p><p><b> else</b></p><
40、;p> {rbin,rptr} <= {rbnext_r,rgnext_r};</p><p><b> end</b></p><p> //---------</p><p> assignraddr = rbin[(DEPTH-1):0];</p><p> assignrbnext =
41、!empty ? (rbin + !rinc) :rbin;</p><p> assign rgnext = (rbnext >> 1) ^ rbnext;</p><p> assignempty_val = (rgnext_r == r2_wptr);</p><p> always@(posedge rclk or negedge rr
42、st_n)</p><p><b> begin</b></p><p> if(!rrst_n)</p><p> empty_r <= 1'b0;</p><p><b> else</b></p><p> empty_r <= empty
43、_val;</p><p><b> end</b></p><p> //-----------</p><p> assignfull = full_r;</p><p> assignempty = empty_r;</p><p> assignrdata = rdata_
44、r;</p><p> //assign rgnext = rgnext_r;</p><p> always @(posedge rclk )</p><p><b> begin</b></p><p> rgnext_r <= rgnext;</p><p> rbnext
45、_r <= rbnext;</p><p> //raddr_r <= raddr;</p><p><b> end</b></p><p> endmodule在quartus II中進行編譯,語法正確無誤后在modelsim中進行仿真查看是否有滿足預(yù)設(shè)的功能和要求。編譯文件(testbench)如下所示。</p&g
46、t;<p> `timescale 1 ns/ 1 ps</p><p> module FIFO_vlg_tst();</p><p> // constants </p><p> // general purpose registers</p>
47、<p> //reg eachvec;</p><p> // test vector input registers</p><p> reg [7:0] IN;</p><p> reg RD_CLOCK;</p><p><b> reg RINC;</b></p><p
48、> reg RRESET_N;</p><p><b> reg WINC;</b></p><p> reg WRESET_N;</p><p> reg WR_CLOCK;</p><p> // wires
49、</p><p> wire EMPTY_P;</p><p> wire FULL_P;</p><p> wire [7:0] OUT;</p><p> // assign statements (if any) </p><p><b>
50、FIFO i1 (</b></p><p> // port map - connection between master ports and signals/registers </p><p> .EMPTY_P(EMPTY_P),</p><p> .FULL_P(FULL_P),</p><p><b&g
51、t; .IN(IN),</b></p><p> .OUT(OUT),</p><p> .RD_CLOCK(RD_CLOCK),</p><p> .RINC(RINC),</p><p> .RRESET_N(RRESET_N),</p><p> .WINC(WINC),</p>
52、;<p> .WRESET_N(WRESET_N),</p><p> .WR_CLOCK(WR_CLOCK)</p><p><b> );</b></p><p> initial </p><p>
53、 fork </p><p> WR_CLOCK = 0;</p><p><b> WINC = 1;</b></p><p> #10 WRESET_N = 0;</p><p> #20 WRESET_N =
54、1;</p><p> #40 WINC = 0;</p><p> //IN = 8'd10;</p><p><b> join </b></p><p> initial </p><
55、;p> fork </p><p> RD_CLOCK = 0;</p><p><b> RINC = 1;</b></p><p> #10 RRESET_N = 0;</p><p> #200 RRE
56、SET_N = 1;</p><p> #400 RINC = 0;</p><p> join </p><p> always &l
57、t;/p><p> begin </p><p> #10 WR_CLOCK = ~WR_CLOCK; </p><p><b> end </b></p>
58、;<p> always </p><p> begin </p><p> #100 RD_CLOCK = ~RD_CLOCK;
59、 </p><p> end </p><p><b> endmodule</b></p><p><b> B、綜合過程</b></p><p
60、> 將RTL文件拷如liux系統(tǒng)中進行綜合,生成門級網(wǎng)表,并根據(jù)要求來編寫約束文件,使文件最優(yōu)化。</p><p> 完成后的約束文件如下:</p><p> #fifo constrains </p><p> #data 2013.5.18</p><p> #authou johnny</p><p&
61、gt;<b> #</b></p><p><b> #</b></p><p> ###########design entry###########</p><p> read_verilog ../rtl/fifo.v</p><p> check_design</p>
62、<p> current_design</p><p> set_max_area 1000</p><p> #set_min_area 0.0</p><p> ###########setup operating conditions ,wire load, clocks,reset#####</p><p> #
63、#create_clock -period 10 -waveform{0 5} [get_ports CLOCK]</p><p> create_clock -period 20 [get_ports wclk]</p><p> create_clock -period 10 [get_ports rclk]</p><p> set_dont_touch
64、_network [get_clocks wclk]</p><p> set_dont_touch_network [get_clocks rclk]</p><p> ##set_dont_touch_network [list CLOCK RESET_N]</p><p> set_operating_conditions -max WCIND -min
65、 WCCOM</p><p> set_wire_load_model -name "10x10"</p><p> set_wire_load_mode enclosed</p><p> set_clock_latency 4.0 [get_clocks wclk]</p><p> set_clock_lat
66、ency 2.0 [get_clocks rclk]</p><p> set_clock_uncertainty -setup 4.0 -hold 0.50 [get_clocks wclk]</p><p> set_clock_uncertainty -setup 2.0 -hold 0.25 [get_clocks rclk]</p><p> ###
67、###useful commands #######################</p><p><b> ##</b></p><p> ##report_port -verbose ##</p><p> ##report_clock###</p><p> ##reset_design##</p
68、><p> ##list_libs#####</p><p> ##remove_design -all</p><p> ##remove_design -design</p><p> ##list_files##lists all files in DC memory</p><p> ##list_des
69、igns</p><p> ##list_license</p><p> ###########input drives######################</p><p> set_driving_cell -lib_cell AN2 [get_ports wdata]</p><p> ##set_drive 0 [li
70、st RESET_N]</p><p> ############output load #############</p><p> set_load 5 [all_outputs]</p><p> ##########set input & set output delay##########</p><p> set
71、_input_delay -max 10 -clock wclk [get_ports wdata]</p><p> set_input_delay -max 5 -clock rclk [get_ports rdata]</p><p> set_output_delay -max 3.3 -clock rclk [get_ports rdata]</p><p
72、> ##set_input_delay 5 -clock CLOCK [all_inputs]</p><p> ##############Advanced constrints#################</p><p> ##group_path</p><p> ##set_false_path</p><p>
73、 ##set_multicycle</p><p> ##############compile and write the database########</p><p><b> compile</b></p><p> write -hierarchy -format verilog -output ../rtl/fifo.net
74、list.v</p><p> ########create reports################</p><p> ##write -hierarchy -format verilog -output ../rtl/fifo_timing.v</p><p> write_sdc ../rtl/fifo_timing.sdc</p>
75、<p> report_timing</p><p> report_area</p><p> report_area > ./fifo_test.area_rpt</p><p> report_timing > fifo_test.timing.rpt</p><p> report_constrain
76、t -all_violators > fifo_test.constraint_rpt</p><p> ##gui_start</p><p> #######report</p><p> #report_timing</p><p><b> 結(jié)果</b></p><p>&l
77、t;b> 系統(tǒng)功能仿真波形:</b></p><p><b> 時序仿真波形:</b></p><p><b> 總結(jié)及感想</b></p><p> 雖然該設(shè)計用了差不多兩個星期的時間,雖然效率不高,但也對學(xué)到了不少東西。對同步異步信號有了較深的理解,以及怎樣通過看RTL和描述語言作對比,找出問
78、題的所在,此方法對于小的設(shè)計及有幫助。同時也讓我積累了一些經(jīng)驗,比如在設(shè)計之前還查找相關(guān)的資料,了解該方面設(shè)計目前的大體情況。整理好設(shè)計方案、思想等。這樣能在很大程度上提高設(shè)計效率。</p><p><b> 附件:</b></p><p><b> 門級網(wǎng)表:</b></p><p> module fifo (
79、wdata, full, winc, wclk, wrst_n, rdata, rinc, empty, rclk, </p><p><b> rrst_n );</b></p><p> input [8:0] wdata;</p><p> output [8:0] rdata;</p><p> inpu
80、t winc, wclk, wrst_n, rinc, rclk, rrst_n;</p><p> output full, empty;</p><p> wire N5, N6, \fifomem[0][7] , \fifomem[0][6] , \fifomem[0][5] ,</p><p> \fifomem[0][4] , \fifomem[
81、0][3] , \fifomem[0][2] , \fifomem[0][1] ,</p><p> \fifomem[0][0] , \fifomem[1][7] , \fifomem[1][6] , \fifomem[1][5] ,</p><p> \fifomem[1][4] , \fifomem[1][3] , \fifomem[1][2] , \fifomem[1][1]
82、,</p><p> \fifomem[1][0] , \fifomem[2][7] , \fifomem[2][6] , \fifomem[2][5] ,</p><p> \fifomem[2][4] , \fifomem[2][3] , \fifomem[2][2] , \fifomem[2][1] ,</p><p> \fifomem[2][0] ,
83、 \fifomem[3][7] , \fifomem[3][6] , \fifomem[3][5] ,</p><p> \fifomem[3][4] , \fifomem[3][3] , \fifomem[3][2] , \fifomem[3][1] ,</p><p> \fifomem[3][0] , N14, N15, N16, N17, N18, N19, N20, N21,
84、 \w2_rptr[2] ,</p><p> full_val, \rbin[2] , empty_val, n10, n20, n23, n26, n29, n31, n32,</p><p> n33, n34, n35, n36, n37, n38, n39, n40, n41, n42, n43, n44, n45, n46,</p><p> n4
85、7, n48, n49, n50, n51, n52, n53, n54, n55, n56, n57, n58, n59, n60,</p><p> n61, n62, n63, n64, n65, n66, n67, n68, n69, n70, n71, n72, n73, n74,</p><p> n75, n76, n77, n78, n79, n80, n81, n82
86、, n83, n84, n85, n86, n87, n88,</p><p> n89, n96, n97, n98, n99, n100, n101, n102, n103, n104, n105, n106,</p><p> n107, n108, n109, n110, n111, n112, n113, n114, n115, n116, n117,</p>
87、<p> n118, n119, n120, n121, n122, n123, n124, n125, n126, n127,</p><p> \dp_cluster_0/N34 , N32, \dp_cluster_1/N36 , N31, n128, n129, n130,</p><p> n131, n132, n133, n134, n135, n136, n
88、137, n138, n139, n140, n141,</p><p> n142, n143, n144, n145, n146, n147, n148, n149, n150, n151, n152,</p><p> n153, n154, n155, n156, n157, n158, n159, n160, n161, n162, n163,</p><
89、p> n164, n165, n166, n167, n168, n169, n170, n171, n172, n173, n174,</p><p> n175, n176, n177, n178, n179, n180, n181, n182, n183, n184, n185,</p><p> n186, n187, n188, n189, n190, n191, n
90、192, n193;</p><p> wire [2:0] w1_rptr;</p><p> wire [2:0] rptr;</p><p> wire [2:0] wbnext;</p><p> wire [1:0] wgnext;</p><p> wire [2:0] wpt
91、r;</p><p> wire [2:0] wbin;</p><p> wire [2:0] r1_wptr;</p><p> wire [1:0] rbnext_r;</p><p> wire [2:0] rgnext_r;</p><p> wire [2:0] rbnext;
92、</p><p> wire [2:0] rgnext;</p><p> assign rdata[8] = 1'b0;</p><p> FD2 \wptr_reg[2] ( .D(wbnext[2]), .CP(wclk), .CD(wrst_n), .Q(wptr[2]) );</p><p> FD2 \wpt
93、r_reg[1] ( .D(wgnext[1]), .CP(wclk), .CD(wrst_n), .Q(wptr[1]) );</p><p> FD2 \wptr_reg[0] ( .D(wgnext[0]), .CP(wclk), .CD(wrst_n), .Q(wptr[0]) );</p><p> FD2 \wbin_reg[2] ( .D(wbnext[2]), .
94、CP(wclk), .CD(wrst_n), .Q(wbin[2]) );</p><p> FD2 \r1_wptr_reg[2] ( .D(wptr[2]), .CP(rclk), .CD(rrst_n), .Q(r1_wptr[2])</p><p><b> );</b></p><p> FD2 \r1_wptr_reg[1]
95、 ( .D(wptr[1]), .CP(rclk), .CD(rrst_n), .Q(r1_wptr[1])</p><p><b> );</b></p><p> FD2 \r1_wptr_reg[0] ( .D(wptr[0]), .CP(rclk), .CD(rrst_n), .Q(r1_wptr[0])</p><p><
96、;b> );</b></p><p> FD2 \r2_wptr_reg[2] ( .D(r1_wptr[2]), .CP(rclk), .CD(rrst_n), .QN(n38) );</p><p> FD2 \r2_wptr_reg[1] ( .D(r1_wptr[1]), .CP(rclk), .CD(rrst_n), .QN(n39) );</p
97、><p> FD2 \r2_wptr_reg[0] ( .D(r1_wptr[0]), .CP(rclk), .CD(rrst_n), .QN(n37) );</p><p> FD1 \rbnext_r_reg[2] ( .D(rbnext[2]), .CP(rclk), .Q(rgnext[2]) );</p><p> FD1 \rgnext_r_reg
98、[2] ( .D(rgnext[2]), .CP(rclk), .Q(rgnext_r[2]) );</p><p> FD2 \rptr_reg[2] ( .D(rgnext_r[2]), .CP(rclk), .CD(rrst_n), .Q(rptr[2]) );</p><p> FD2 \w1_rptr_reg[2] ( .D(rptr[2]), .CP(wclk), .
99、CD(wrst_n), .Q(w1_rptr[2])</p><p><b> );</b></p><p> FD2 \w2_rptr_reg[2] ( .D(w1_rptr[2]), .CP(wclk), .CD(wrst_n), .Q(</p><p> \w2_rptr[2] ) );</p><p>
100、 FD2 \rbin_reg[2] ( .D(rgnext[2]), .CP(rclk), .CD(rrst_n), .Q(\rbin[2] ) );</p><p> FD1 \rbnext_r_reg[1] ( .D(rbnext[1]), .CP(rclk), .Q(rbnext_r[1]) );</p><p> FD2 \rbin_reg[1] ( .D(rbnext_
101、r[1]), .CP(rclk), .CD(rrst_n), .Q(N6), .QN(</p><p><b> n163) );</b></p><p> FD1 \rgnext_r_reg[1] ( .D(rgnext[1]), .CP(rclk), .Q(rgnext_r[1]) );</p><p> FD2 \rptr_reg
102、[1] ( .D(rgnext_r[1]), .CP(rclk), .CD(rrst_n), .Q(rptr[1]) );</p><p> FD2 \w1_rptr_reg[1] ( .D(rptr[1]), .CP(wclk), .CD(wrst_n), .Q(w1_rptr[1])</p><p><b> );</b></p><p
103、> FD2 \w2_rptr_reg[1] ( .D(w1_rptr[1]), .CP(wclk), .CD(wrst_n), .QN(n40) );</p><p> FD1 \rbnext_r_reg[0] ( .D(rbnext[0]), .CP(rclk), .Q(rbnext_r[0]) );</p><p> FD2 \rbin_reg[0] ( .D(rbn
104、ext_r[0]), .CP(rclk), .CD(rrst_n), .Q(N5), .QN(</p><p><b> n178) );</b></p><p> FD1 \rgnext_r_reg[0] ( .D(rgnext[0]), .CP(rclk), .Q(rgnext_r[0]) );</p><p> FD2 \rptr
105、_reg[0] ( .D(rgnext_r[0]), .CP(rclk), .CD(rrst_n), .Q(rptr[0]) );</p><p> FD2 \w1_rptr_reg[0] ( .D(rptr[0]), .CP(wclk), .CD(wrst_n), .Q(w1_rptr[0])</p><p><b> );</b></p>&
106、lt;p> FD2 \w2_rptr_reg[0] ( .D(w1_rptr[0]), .CP(wclk), .CD(wrst_n), .QN(n41) );</p><p> FD1 \fifomem_reg[0][7] ( .D(n96), .CP(wclk), .Q(\fifomem[0][7] ), .QN(n73)</p><p><b> );<
107、/b></p><p> FD1 \fifomem_reg[0][6] ( .D(n97), .CP(wclk), .Q(\fifomem[0][6] ), .QN(n72)</p><p><b> );</b></p><p> FD1 \fifomem_reg[0][5] ( .D(n98), .CP(wclk), .Q(
108、\fifomem[0][5] ), .QN(n71)</p><p><b> );</b></p><p> FD1 \fifomem_reg[0][4] ( .D(n99), .CP(wclk), .Q(\fifomem[0][4] ), .QN(n70)</p><p><b> );</b></p&g
109、t;<p> FD1 \fifomem_reg[0][3] ( .D(n100), .CP(wclk), .Q(\fifomem[0][3] ), .QN(n69)</p><p><b> );</b></p><p> FD1 \fifomem_reg[0][2] ( .D(n101), .CP(wclk), .Q(\fifomem[0][
110、2] ), .QN(n68)</p><p><b> );</b></p><p> FD1 \fifomem_reg[0][1] ( .D(n102), .CP(wclk), .Q(\fifomem[0][1] ), .QN(n67)</p><p><b> );</b></p><p&g
111、t; FD1 \fifomem_reg[0][0] ( .D(n103), .CP(wclk), .Q(\fifomem[0][0] ), .QN(n66)</p><p><b> );</b></p><p> FD1 \fifomem_reg[1][7] ( .D(n104), .CP(wclk), .Q(\fifomem[1][7] ), .QN(n
112、65)</p><p><b> );</b></p><p> FD1 \fifomem_reg[1][6] ( .D(n105), .CP(wclk), .Q(\fifomem[1][6] ), .QN(n64)</p><p><b> );</b></p><p> FD1 \fi
113、fomem_reg[1][5] ( .D(n106), .CP(wclk), .Q(\fifomem[1][5] ), .QN(n63)</p><p><b> );</b></p><p> FD1 \fifomem_reg[1][4] ( .D(n107), .CP(wclk), .Q(\fifomem[1][4] ), .QN(n62)</p&g
114、t;<p><b> );</b></p><p> FD1 \fifomem_reg[1][3] ( .D(n108), .CP(wclk), .Q(\fifomem[1][3] ), .QN(n61)</p><p><b> );</b></p><p> FD1 \fifomem_reg[1
115、][2] ( .D(n109), .CP(wclk), .Q(\fifomem[1][2] ), .QN(n60)</p><p><b> );</b></p><p> FD1 \fifomem_reg[1][1] ( .D(n110), .CP(wclk), .Q(\fifomem[1][1] ), .QN(n59)</p><p&g
116、t;<b> );</b></p><p> FD1 \fifomem_reg[1][0] ( .D(n111), .CP(wclk), .Q(\fifomem[1][0] ), .QN(n58)</p><p><b> );</b></p><p> FD1 \fifomem_reg[2][7] ( .D(
117、n112), .CP(wclk), .Q(\fifomem[2][7] ), .QN(n57)</p><p><b> );</b></p><p> FD1 \fifomem_reg[2][6] ( .D(n113), .CP(wclk), .Q(\fifomem[2][6] ), .QN(n56)</p><p><b>
118、 );</b></p><p> FD1 \fifomem_reg[2][5] ( .D(n114), .CP(wclk), .Q(\fifomem[2][5] ), .QN(n55)</p><p><b> );</b></p><p> FD1 \fifomem_reg[2][4] ( .D(n115), .CP(
119、wclk), .Q(\fifomem[2][4] ), .QN(n54)</p><p><b> );</b></p><p> FD1 \fifomem_reg[2][3] ( .D(n116), .CP(wclk), .Q(\fifomem[2][3] ), .QN(n53)</p><p><b> );</b&
120、gt;</p><p> FD1 \fifomem_reg[2][2] ( .D(n117), .CP(wclk), .Q(\fifomem[2][2] ), .QN(n52)</p><p><b> );</b></p><p> FD1 \fifomem_reg[2][1] ( .D(n118), .CP(wclk), .Q(\
121、fifomem[2][1] ), .QN(n51)</p><p><b> );</b></p><p> FD1 \fifomem_reg[2][0] ( .D(n119), .CP(wclk), .Q(\fifomem[2][0] ), .QN(n50)</p><p><b> );</b></p&g
122、t;<p> FD1 \fifomem_reg[3][7] ( .D(n120), .CP(wclk), .Q(\fifomem[3][7] ), .QN(n49)</p><p><b> );</b></p><p> FD1 \fifomem_reg[3][6] ( .D(n121), .CP(wclk), .Q(\fifomem[3][
123、6] ), .QN(n48)</p><p><b> );</b></p><p> FD1 \fifomem_reg[3][5] ( .D(n122), .CP(wclk), .Q(\fifomem[3][5] ), .QN(n47)</p><p><b> );</b></p><p&g
124、t; FD1 \fifomem_reg[3][4] ( .D(n123), .CP(wclk), .Q(\fifomem[3][4] ), .QN(n46)</p><p><b> );</b></p><p> FD1 \fifomem_reg[3][3] ( .D(n124), .CP(wclk), .Q(\fifomem[3][3] ), .QN(n
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 集成電路課程設(shè)計
- 集成電路課程設(shè)計
- 集成電路課程設(shè)計報告
- 集成電路課程設(shè)計報告
- 集成電路課程設(shè)計_new
- 數(shù)字集成電路課程設(shè)計報告——通訊集成電路
- 集成電路課程設(shè)計報告 (2)
- 集成電路課程設(shè)計74h
- 集成電路課程設(shè)計74h
- 集成電路課程設(shè)計74h
- 集成電路設(shè)計課程設(shè)計課程教學(xué)大綱
- 集成電路設(shè)計課程設(shè)計課程教學(xué)大綱
- 集成電路課程設(shè)計(cmos二輸入與門)
- 集成電路課程總結(jié)
- 集成電路課程設(shè)計74h138芯片設(shè)計
- 集成電路課程設(shè)計--基于cmos的二輸入與門電路
- 集成電路eda的課程設(shè)計-- 自動售郵票機的設(shè)計
- 超大規(guī)模集成電路課程設(shè)計
- 集成電路課程設(shè)計 --溫濕度光照采集傳輸控制
- 集成電路課程設(shè)計--cmos反相器的電路設(shè)計及版圖設(shè)計
評論
0/150
提交評論