大三已過(guò)兩周,現(xiàn)在我正在一邊看大一新生軍訓(xùn),一邊享受中秋假期。這兩周沒(méi)課,我們只有一個(gè)任務(wù):做電子課設(shè)。 課設(shè)的內(nèi)容上半年暑假前就已經(jīng)發(fā)下,考慮再三之后我決定用FPGA作,于是就有了暑假留校這回事。苦逼的自學(xué)了近一個(gè)月之后,最后還是回家貓了一個(gè)星期,好吧好吧,這不是重點(diǎn)。
昨天下午答辯完之后,課設(shè)這回事就算完成了,下周交上報(bào)告收個(gè)尾就歐。傳聞這個(gè)報(bào)告對(duì)格式和內(nèi)容的要求都挺嚴(yán)的,一個(gè)不小心可能就要掛掉。說(shuō)起掛科,昨天考去年因?yàn)槌鋈ケ荣惥徔嫉哪k?nbsp;
額~~其實(shí)這也不是重點(diǎn)。
昨天發(fā)了條微博,說(shuō):這是個(gè)終究不會(huì)讓人活在理想中,卻又不讓人看清現(xiàn)實(shí)的世界。我自己都覺(jué)的這句話挺文藝挺裝逼的(啥?你覺(jué)得不文藝不裝逼?好吧,其實(shí)你的意見(jiàn)不重要),事實(shí)上,我這是在很誠(chéng)實(shí)的描述我課設(shè)最后的苦逼狀態(tài)。
我的課設(shè)題目是這樣的:
如果有單片機(jī)大神看見(jiàn)這個(gè)任務(wù),八成會(huì)說(shuō):不就流水燈嗎,簡(jiǎn)單啊!
對(duì)于這樣的人,我除了打心眼里表示由衷的敬佩之情外,只想說(shuō)以下簡(jiǎn)單的幾句話:你妹啊,這叫電子課設(shè),不是單片機(jī)實(shí)訓(xùn)啊!就是不允許用單片機(jī)啊有木有!要是單片機(jī)實(shí)訓(xùn)讓我抽到這么簡(jiǎn)單的題目,晚上做夢(mèng)都會(huì)笑醒啊!我用FPGA做,答辯時(shí)都差點(diǎn)被判違規(guī)啊~啊~~~~啊,又跑題了。
總之,任務(wù)就是這樣的,我的應(yīng)對(duì)措施簡(jiǎn)述如下:
先用同相比例放大電路吧毫伏級(jí)信號(hào)放大到伏級(jí),然后用電壓比較器把信號(hào)整形成方波之后送進(jìn)FPGA。FPGA部分分成三個(gè)模塊,分別是測(cè)頻模塊、分頻模塊和LED控制模塊。分頻模塊把最小系統(tǒng)板上提供的40MHz時(shí)鐘降到100Hz和5Hz,分別送給測(cè)頻模塊當(dāng)做基準(zhǔn)信號(hào)和LED控制模塊用作時(shí)鐘信號(hào)。測(cè)頻模塊使用等精度法測(cè)頻,測(cè)得輸入信號(hào)的頻率后按照不同的頻段發(fā)出一個(gè)對(duì)應(yīng)的兩位二進(jìn)制信號(hào)給LED控制模塊(即1~5Hz時(shí)發(fā)00,6~10Hz時(shí)發(fā)01,11~15Hz時(shí)發(fā)10,16~20Hz時(shí)發(fā)11),LED控制模塊根據(jù)接收到的兩位二進(jìn)制信號(hào)選擇用哪種方式控制四位LED燈流動(dòng)。LED模塊內(nèi),使用2-4譯碼器和一個(gè)可逆的四進(jìn)制計(jì)數(shù)器控制LED循環(huán)流動(dòng),然后使用一個(gè)三位狀態(tài)機(jī)、一個(gè)5進(jìn)制加法計(jì)數(shù)器和一個(gè)減法計(jì)數(shù)器控制LED燈遞增亮和遞減滅。
分頻模塊和LED控制模塊暑假時(shí)一邊學(xué)一邊也就寫(xiě)完也調(diào)試完,沒(méi)啥問(wèn)題,問(wèn)題出在測(cè)頻模塊上。
我最一開(kāi)始想到的方案其實(shí)是濾波,搭了兩三天仿真電路之后發(fā)現(xiàn),頻率太小,別說(shuō)實(shí)物了,仿真都放不出來(lái)。想到測(cè)頻這回事的時(shí)候已經(jīng)是上星期,也就是是課設(shè)第一個(gè)星期周三了,好死不死的那天晚上睡覺(jué)忘關(guān)窗戶,第二天就著涼感冒了,于是連著兩天基本啥都干不成,直到周五晚上才開(kāi)始動(dòng)手查基于FPGA Verilog語(yǔ)言的測(cè)頻模塊怎么寫(xiě)。這一查不要緊,直接嚇的我頭皮發(fā)麻啊,很多人直接把這個(gè)當(dāng)做一個(gè)單獨(dú)的課題來(lái)研究啊有木有。硬著頭皮接著查了一晚上,大概有三種方法可以實(shí)現(xiàn)測(cè)頻:直接測(cè)頻法、周期測(cè)頻法和等精度測(cè)頻法。第二天一大早就開(kāi)始寫(xiě)測(cè)頻模塊的代碼,大周末的,滿學(xué)校都是愉快的玩耍的同學(xué)們,就我們通信和電子這倆專業(yè)的苦逼們埋頭實(shí)驗(yàn)室搭電路啊!
周末兩天,把三種測(cè)頻方法的代碼都寫(xiě)了一遍,頭兩種測(cè)出來(lái)的頻率漫天飛舞,看的人直眼花繚亂,惡心想吐。等精度法是最可行的,但是,呆毛,我自己寫(xiě)的代碼因?yàn)榉N種原因,不~能~用!!!!
這星期一,也就是課設(shè)第二周周一晚上,功夫不負(fù)有心人,終于在網(wǎng)上找到一段可用的代碼,按照我的需要改了一下輸入輸出,加了幾行我需要的代碼,仿真之后,結(jié)果堪稱完美。測(cè)出來(lái)的頻率誤差只有不超過(guò)1Hz,兩位二進(jìn)制信號(hào)輸出正常。于是就安心的關(guān)了電腦回宿舍睡覺(jué),天真的我以為這樣就可以結(jié)束了,誰(shuí)知道,噩夢(mèng)才剛剛開(kāi)始。
周二上午將近十點(diǎn)才到實(shí)驗(yàn)室,因?yàn)樽砸詾橹灰炎蛲韺?xiě)的代碼跟其他模塊對(duì)接好久萬(wàn)事大吉,也因?yàn)楦忻昂脹](méi)好完全。
到午飯時(shí),我的腦袋整個(gè)是懵的。測(cè)頻模塊在進(jìn)行必要改動(dòng)之后和暑假寫(xiě)的其它代碼放在一起,編譯沒(méi)錯(cuò),只有三個(gè)不是很重要的警告,但是,仿真就是死活出不來(lái)結(jié)果。我去問(wèn)我的指導(dǎo)老師是不是仿真設(shè)置出了問(wèn)題,結(jié)果老師她沒(méi)學(xué)過(guò)FPGA,她給我找的其他老師也沒(méi)解決什么實(shí)際問(wèn)題,敷衍居多。時(shí)間很快就到了周四下午,出差兩天多的房老師歸來(lái),我趁她有空時(shí)抓緊問(wèn),解決了一些問(wèn)題,但是關(guān)鍵問(wèn)題依舊。
周四晚上,我們小組的組長(zhǎng)也是我們班班長(zhǎng)和我的課設(shè)指導(dǎo)老師確定我要去答辯,但是我還沒(méi)整體的事物測(cè)試啊,而且周五下午就要模電考試,還有一篇毛概暑期實(shí)踐論文沒(méi)寫(xiě),死的心都有了。
昨天,課設(shè)最后一天。上午早起到實(shí)驗(yàn)室做最后的努力,一直到上午十點(diǎn)多,還是失敗。離答辯還有兩個(gè)多小時(shí),里考試還有不到六個(gè)小時(shí),不得不放棄,開(kāi)始做答辯的PPT和復(fù)習(xí)模電。我打賭這是我做過(guò)的最爛的PPT。
答辯時(shí)間因?yàn)閰⒓哟疝q的人太多,一直到下午兩點(diǎn)多才輪到我們班,還好按學(xué)號(hào)我是第三個(gè)上,此前做了最最后的努力,仍舊失敗。還好給我答辯的有房老師,雖然她不是我指導(dǎo)老師,但是我的進(jìn)度和問(wèn)題她是知道的,并沒(méi)有問(wèn)特別難為我的問(wèn)題。我答辯完之后另外兩個(gè)老師說(shuō)了些,大概意思是其實(shí)并不鼓勵(lì)現(xiàn)在就用FPGA作,太早了些,對(duì)信號(hào)的傳輸理解上會(huì)有問(wèn)題。不過(guò)我決定用FPGA做之前是跟房老師打過(guò)招呼的,所以這點(diǎn)也沒(méi)出啥大問(wèn)題。
然后模電考試是竟然是我指導(dǎo)老師和房老師監(jiān)考,差點(diǎn)沒(méi)崩潰了。
明天開(kāi)始寫(xiě)報(bào)告,加油拼命吧,騷年!!!
|