還是從李小龍說(shuō)起。伴隨著(zhù)一聲“喲嚯”,飛出一腳后張開(kāi)雙臂身體半蹲的招牌式動(dòng)作,被全球各地無(wú)數人模仿過(guò)?墒俏覀冎,全世界只有一個(gè)李小龍。無(wú)論你把“招式”模仿得多么惟妙惟肖,都無(wú)法達到那個(gè)效果。原因其實(shí)很簡(jiǎn)單,我們不具備他的速度和力量。采用反推法逆向思維,如果具備了他的速度與力量,任何一個(gè)招式都會(huì )威力無(wú)窮。由此可知,基本功是多么重要。 前幾節的內容,我們講的是怎么“減負”,盡量卸下對于完成項目來(lái)說(shuō)沒(méi)有必要的學(xué)習部分。本節內容要講的就是,對于核心知識點(diǎn),必須下苦功完全掌握。 我們經(jīng)常會(huì )遇到這樣的情況,“感覺(jué)”已經(jīng)懂了,會(huì )了,但是一進(jìn)入實(shí)際項目束手無(wú)策。為什么?這種情形,絕大部分時(shí)候,都是因為基本核心知識點(diǎn)還沒(méi)有完全學(xué)通,處于半懂不懂的狀態(tài)。例如: 搞不清楚 add_flag和sel_flag的區別 ,不清楚變量使用的條件,不清楚計數器需要用幾個(gè)已經(jīng)計數器之間的關(guān)系。 那么對于核心知識點(diǎn),應該達到什么樣的標準,才算是真正掌握了呢? 例 :當收到en1=1時(shí),執行一下操作 a.間隔2個(gè)時(shí)鐘周期后,dout產(chǎn)生寬度為5的高電平脈沖,然后 b.間隔2個(gè)時(shí)鐘周期后,dout產(chǎn)生寬度為7的高電平脈沖,然后 c.間隔2個(gè)時(shí)鐘周期后,dout產(chǎn)生寬度為3的高電平脈沖,然后 d.間隔2個(gè)時(shí)鐘周期后,dout產(chǎn)生寬度為6的高電平脈沖。 當收到en2=1時(shí),執行一下操作 a.間隔4個(gè)時(shí)鐘周期后,dout產(chǎn)生寬度為3的高電平脈沖,然后 b.間隔1個(gè)時(shí)鐘周期后,dout產(chǎn)生寬度為6的高電平脈沖,然后 c.間隔6個(gè)時(shí)鐘周期后,dout產(chǎn)生寬度為3的高電平脈沖,然后 d.間隔2個(gè)時(shí)鐘周期后,dout產(chǎn)生寬度為5的高電平脈沖。(答案如下) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 4142434445464748495051525354 555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 | always @(posedge clk or negedge rst_n)begin if(!rst_n)begin cnt0 <= 0; end else if(add_cnt0)begin if(end_cnt0) cnt0 <= 0; else cnt0 <= cnt0 + 1; end end assign add_cnt0 = add_flag ; assign end_cnt0 = add_cnt0 && cnt0==x-1 ; always @(posedge clk or negedge rst_n)begin if(!rst_n)begin cnt1 <= 0; end else if(add_cnt1)begin if(end_cnt1) cnt1 <= 0; else cnt1 <= cnt1 + 1; end end assign add_cnt1 = end_cnt0; assign end_cnt1 = add_cnt1 && cnt1==4-1 ; always @(posedge clk or negedge rst_n)begin if(rst_n==1'b0)begin dout <= 0; end else if(en_dout)begin dout <= 1; end else if(end_cnt0)begin dout <= 0; end end assign en_dout = add_cnt0 && cnt0 == y-1; always @(posedge clk or negedge rst_n)begin if(rst_n==1'b0)begin add_flag <= 0; end else if(en1||en2)begin add_flag <= 1; end else if(end_cnt1)begin add_flag <= 0; end end always @(posedge clk or negedge rst_n)begin if(rst_n==1'b0)begin sel_flag <= 0; end else if(en1)begin sel_flag <= 0; end else if(en2)begin sel_flag <= 1; end end always @(*)begin if(sel_flag==0)begin if(cnt==0)begin x = 7; y = 2; end else if (cnt1==1)begin x = 9; y = 2; end else if (cnt1==2)begin x = 5; y = 2; end else begin x = 8; y = 2; end end else begin if(cnt==0)begin x = 7; y = 4; end else if (cnt1==1)begin x = 7; y = 1; end else if (cnt1==2)begin x = 9; y = 6; end else begin x = 7; y = 2; end end end |
類(lèi)似這些習題,一直要練習到不需要思考的過(guò)程,而是形成類(lèi)似于條件反射式的自然反應。掌握的要領(lǐng)就是不停練習反復練習。在這一點(diǎn)上,沒(méi)有捷徑可走。唯一可依托的,就是——勤奮。 高深的內容都是由最基本的要素組合而成。一旦有了扎實(shí)的基本功底,就有了“李小龍的速度與力量”,很多“招式”方面的高深問(wèn)題就迎刃而解了。 本節中我們通過(guò)借喻“功夫”,來(lái)說(shuō)明基本功的重要性以及和高深內容的關(guān)系。
|