標題: FPGA經典設計案例 [打印本頁]
作者: mdy-吳偉杰 時間: 2019-7-30 08:44
標題: FPGA經典設計案例
學習FPGA,最關鍵的是學什么?有讀者學了大半年時間的FPGA,學了串口就只懂串口的設計,學了SPI就只懂SPI接口的設計。每個接口、每個功能,都只是學一個懂一個。換個功能需求,或者對接口做一個小小的改動,就無從下手了。
設計代碼,從來都只是模仿,或者不斷地調試修改,湊代碼。設計出的代碼也沒有任何規律,相同的功能,今天設計和明天設計都不一樣。這就如學功夫,今天學下少林,明天學下武當,后天又學下華山,在這樣的情況下,能成長為高手,那就奇怪了。
在明德揚看來,FPGA設計應該有一套通用的設計方法。該方法能夠應付所有的功能設計,無論功能怎么變,都可以用該方法來套用。明德揚發明的這套方法就是至簡設計法。
至簡設計法從宏觀上,適應所有的功能設計需求。例如,無論是什么功能,我們都先將其轉化成需求波形。然后在此基礎上設計模塊架構;在模塊架構基礎上設計信號。這步驟都是通用的、是固化的。
至簡設計法在微觀上,則制定得實用的規范。詳細到,要不要添加信號;怎么添加信號;添加信號的名字規范等,我們都做了詳細的規定。
下面我們用4個經典例子,講述了至簡設計法的使用技巧。其他復雜功能,無論怎么變,都是這4個經典案例的變種。讀者只需要強化、鞏固技巧,多訓練,多應用,逐步成長為高手。
至簡設計法經典案例1案例1. 當收到en=1后,dout產生一個寬度為10個時鐘周期的高電平脈沖。
需要說明,根據看波形規則,在第3個時鐘上沿的時候,看到en==1,根據功能要求,上升沿之后dout就會變為1。10個時鐘周期后,dout將變為0。
從功能要求中,看到數字10,我們就知道要計數,并且是dout==1的次數為10個。所以我們計算的是dout==1的時鐘次數,并且是10次。為此,補充一個計數器信號cnt,更新后的波形如下圖。
計數器cnt要遵守如下原則。
初值一定為0。
除了最后一個,在時鐘上升沿,看到dout==1,就將cnt值加1
在時鐘上升沿時看到dout==1,并且是最后一個時,cnt值不加1,直接清零。
從功能要求和波形圖,我們確認,計數器cnt是對dout==1進行計數,并且一共數10個。為此,在GVIM編輯器中輸入“Jsq”并回車,將出現如下代碼。
在第13行,輸入dout==1,在第14行代碼中,輸入10-1,這樣就完成了計數器設計。
代碼解釋:第1至第11行,是一個時序always的代碼。該代碼要描述的功能是:
在時鐘clk上升沿或者復位rst_n的下降沿的時候,always就對cnt判斷條件并變化一次。具體變化過程如下:
如果是rst_n==0,則將cnt變為0。
否則(即rst_n==1),如果add_cnt有效,也就是為1的時候。繼續判斷條件并執行。
如果end_cnt有效,即end_cnt==1,則將cnt變為0。
否則(即end_cnt==0),cnt就自加1。
否則(即rst_n==1且add_cnt==0的時鐘),cnt保持不變。
上面代碼中add_cnt表示計數器加1條件,end_cnt表示計數器數到最后一個。
上面代碼描述過于復雜,其實概括起來,功能就是:時鐘上升沿時,如果計數器加1條件有效,并且是數到最后一個,則計數器清零;如果計數器加1條件有效,但不是最后一個,則計數器就加1;其他時候,計數器就保持不變。
那么加1條件,即add_cnt是什么呢?在第13行進行了定義。該行代碼表示,dout==1就是計數器的加1條件。
那么結束條件,即end_cnt是什么呢?在第14行進行了定義。該行代碼表示,數到10個就結束。其中我們關注的是那個數字10,而-1是固定的格式。
add_cnt && cnt==10-1,含義是表示“數到第10個的時候”,add_cnt &&cnt==x-1表示“數到第x個的時候”。記住這個規則。end_cnt==1也表示數完了。
設計好計數器cnt后,我們就可以設計輸出信號dout了。仔細分析dout,該信號有兩個變化點:變1和變0。我們分析原因,dout變1是由于收到en==1;dout變0,則是數到了10個或者是數完了。所以綜上所述,dout的代碼是:
至此,我們完成了主體程序的設計,接下來補充module的其他部分。
將module的名稱定義為my_ex1。并且我們已經知道該模塊有4個信號:clk、rst_n、en和dout。為此,代碼如下:
其中clk、rst_n和en是輸入信號,dout是輸出信號,并且4個信號都是1比特的,根據這些信息,我們補充輸入輸出端口定義。代碼如下:
接下來定義信號類型。
cnt是用always產生的信號,因此類型為reg。cnt計數的最大值為9,需要用4根線表示,即位寬是4位。add_cnt和end_cnt都是用assign方式設計的,因此類型為wire。并且其值是0或者1,1個線表示即可。因此代碼如下:
dout是用always方式設計的,因此類型為reg。并且其值是0或者1,1根線表示即可。因此代碼如下:
至此,整個代碼的設計工作已經完成。整體代碼如下:
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 | module my_ex1( clk , rst_n , en , dout ); input clk ; input rst_n ; input en ; output dout ;
reg [ 3:0] cnt ; wire add_cnt ; wire end_cnt ; reg dout ;
always @(posedge clk or negedge rst_n)begin if(!rst_n)begin cnt <= 0; end else if(add_cnt)begin if(end_cnt) cnt <= 0; else cnt <= cnt + 1; end end
assign add_cnt = (dout==1); assign end_cnt = add_cnt && cnt==10 -1 ;
always @(posedge clk or negedge rst_n)begin if(rst_n==1'b0)begin dout <= 0; end else if(en==1)begin dout <= 1; end else if(add_cnt && cnt==10-1)begin dout <= 0; end end
endmodule |
如果你覺得有用的話,就請你回個貼或者贊,證明我的付出沒有白費,大家都不容易,q328908175,讓我們共同學習。
作者: tyrl800 時間: 2019-9-1 10:55
例子不錯,規范,有代表性
作者: 1339337425 時間: 2019-9-1 13:42
不錯,最近在看正點原子FPGA的視頻,看了樓主的帖子,對程序的設計又有了新的理解
作者: 陽仔! 時間: 2019-10-30 15:20
不錯,確實提倡樓主的做法
作者: 天上跑著玩 時間: 2019-11-12 11:48
本帖最后由 天上跑著玩 于 2019-11-12 13:59 編輯
樓主
這里的
if(end_cnt)
cnt<=0;
else
cnt <= cnt+1;
end
根據上面的cnt最大加到9時就會變成0
else if(en==1)
begin
dout<=1;
end
else if(add_cnt && cnt==10-1)
begin
dout<=0;
end
這邊也是cnt計數到9時就運行。
那么dout只會在clk上升沿觸發,那么dout在這個程序里會觸發不了。
要改成 cnt==10;
| 歡迎光臨 (http://www.izizhuan.cn/bbs/) |
Powered by Discuz! X3.1 |
午夜av区久久|
www.av毛片|
蜜桃视频一区二区|
澳门av一区二区三区|
男人天堂免费视频|
亚洲成熟女性毛茸茸|
日韩精品卡通动漫网站|
www成人免费|
99c视频在线|
欧美精品国产精品日韩精品|
国产乱码精品1区2区3区|
在线观看黄色|
特级毛片www|
免费高清一区二区三区|
成人在线一区二区|
中国china体内裑精亚洲片|
日韩欧美一区二区在线|
91丨porny丨户外露出|
影音先锋久久|
欧美大胆视频|
天堂久久午夜av|
老司机av在线免费看|
天天操天天操天天|
国产无遮挡又黄又爽又色|
在线看黄色的网站|
国产又黄又大又粗视频|
97视频在线观看视频免费视频|
欧美一级xxx|
向日葵视频成人app网址|
操操操综合网|
免费黄色大片|
午夜精品久久久久久久星辰影院|
中文字幕在线观看欧美|
在线免费日韩av|
欧美 变态 另类 人妖|
久久综合伊人77777麻豆最新章节|
国产97免费视|
中文字幕精品网|
日韩一级精品视频在线观看|
午夜精品久久一牛影视|
国产精品视频观看|
白白色亚洲国产精品|
日韩高清在线观看|
一区二区三区四区五区精品视频|
日本一区二区高清不卡|
精品一区二区男人吃奶|
亚洲毛片在线免费|
亚洲承认视频|
久久综合色播|
www.黄色网址|
嫩草影院入口一二三|
另类欧美视频|
欧美黑人双插|
亲爱的老师6电影韩剧|
中国女人精69xxxxxx视频|
国产精品人妻一区二区三区|
精人妻无码一区二区三区|
亚洲日本韩国在线|
国产无遮挡又黄又爽又色|
久久久国产成人|
久草免费新视频|
精品一区在线观看视频|
国模私拍视频在线观看|
精品国产乱码久久久久|
亚洲综合日韩中文字幕v在线|
91精品视频网|
欧美亚洲国产bt|
欧美性猛交一区二区三区精品|
欧美色xxxx|
在线亚洲高清视频|
中文欧美字幕免费|
国产精品视频看|
亚洲欧洲日韩综合一区二区|
中文字幕一区二区三区不卡
|
中国特级黄色大片|
亚洲制服中文字幕|
精品人妻二区中文字幕|
一区二区高清视频|
热久久视久久精品18亚洲精品|
欧美激情视频网|
午夜精品蜜臀一区二区三区免费
|
一级性生活免费视频|
久久婷婷五月综合|
中文字幕在线有码|
91精品国产乱码在线观看|
久久中文字幕在线观看|
日韩高清免费av|
一区二区视频免费观看|
日韩一级中文字幕|
国产欧美一区二区三区小说|
柠檬福利视频导航|
特黄国产免费播放|
av在线日韩国产精品|
毛片网站在线看|
日韩欧美三区|
免费看久久久|
女人香蕉久久**毛片精品|
亚洲一区二区三区高清不卡|
精品一区二区三区视频在线观看|
91美女在线视频|
亚洲美女视频在线观看|
91黄色免费网站|
亚洲第一网站免费视频|
制服视频三区第一页精品|
欧美成人伊人久久综合网|
亚洲欧美日韩高清|
久久久久久久久爱|
91沈先生在线观看|
97超碰色婷婷|
久久久午夜视频|
成人性生交大片免费观看嘿嘿视频
|
一区二区成人国产精品|
热99这里只有精品|
四川一级毛毛片|
2014亚洲天堂|
中文字幕久久久久|
欧美妇乱xxxxx视频|
1234区在线观看视频免费|
麻豆av电影在线观看|
亚洲黄色免费av|
成午夜精品一区二区三区软件|
а√天堂8资源在线|
国产精品3区|
欧美日韩视频|
成人成人成人在线视频|
亚洲第一成人在线|
亚洲精品久久久久中文字幕欢迎你|
欧美日韩福利电影|
国产精选在线观看91|
欧美精品一区免费|
mm131丰满少妇人体欣赏图|
久久久久亚洲视频|
偷拍国模大尺度视频在线播放|
亚洲大胆精品|
日本在线一区二区|
欧美日韩免费观看一区=区三区|
www.日本不卡|
欧美性猛交一区二区三区精品
|
国产精品国产馆在线真实露脸
|
欧美日韩国产片|
久久在线视频在线|
精品日韩欧美|
日韩av自拍偷拍|
少妇熟女视频一区二区三区|
久久久久久久久久91|
区日韩二区欧美三区
|
97精品资源在线观看|
91精品蜜臀一区二区三区在线|
国产精品996|
91久久精品午夜一区二区|
精品国产依人香蕉在线精品|
国产一区国产精品|
日韩av一区二区三区在线|
五月天婷婷亚洲|
日韩污视频在线观看|
欧美黑人xxxxx性受|
成人网视频在线观看|
国产精品白丝av嫩草影院|
国产免费久久|
亚洲成人中文|
国产精品大尺度|
亚洲精品影视在线观看|
99久久精品无码一区二区毛片|
久久久精品麻豆|
日日夜夜综合网|
91av福利|
啊啊啊久久久|
亚洲麻豆视频|
豆国产96在线|亚洲|
国产精品午夜电影|
日韩成人av网|
欧美激情综合亚洲一二区|
97伦理在线四区|
超碰中文字幕在线观看|
中文字幕人妻丝袜乱一区三区|
99riav视频|
在线观看美女网站大全免费|
亚洲最好看的视频|
91在线播放网址|
日韩经典第一页|
九九九九九九精品|
一级特级黄色片|
推川ゆうり中文亚洲二区|
日本视频在线观看|
午夜精品视频一区二区三区在线看|
中文字幕乱码一区二区免费|
日韩中文字幕精品|
黄色一级片av|
国产精品偷伦视频免费观看了|
97人妻人人澡人人爽人人精品|
又黄又www的网站|
特黄特色欧美大片|
日本一区二区高清|
精品自在线视频|
欧美爱爱视频免费看|
亚洲精品毛片一区二区三区|
在线观看国产v片|
免费福利视频一区二区三区|
日韩激情视频网站|
日韩一区二区精品葵司在线|
在线激情影院一区|
综合色婷婷一区二区亚洲欧美国产|
久艹在线观看视频|
av色影在线看免费|
成人在线视频你懂的|
国产色91在线|
日韩欧美国产一区二区在线播放
|
少妇视频在线播放|
国产女18毛片多18精品|
2018狠狠干|
亚洲毛片在线免费|
97精品久久久久中文字幕|
日韩中文在线中文网在线观看
|
天天综合亚洲|
欧美性xxxxx极品娇小|
国产男女猛烈无遮挡91|
xxxwww国产|
国产福利热线视频|
国产精品久久久久久久久久辛辛
|
国产精品全国免费观看高清
|
av小说在线观看|
夜夜爽夜夜操|
999久久久久久久久6666|
国产拍欧美日韩视频二区|
久久久免费精品视频|
亚洲色图欧美自拍|
欧美成人se01短视频在线看
|
欧美色图另类小说|
亚洲精品综合久久|
亚洲同志男男gay1069网站|
成人听书哪个软件好|
久久精品亚洲国产|
www.51色.com|
国产porn在线|
大香伊人久久|
中文不卡在线|
欧美二区三区的天堂|
亚洲一区免费看|
一女二男一黄一片|
av成人影院在线|
久久亚洲国产精品一区二区|
亚洲二区中文字幕|
人妻精品无码一区二区三区
|
亚洲欧美福利视频|
无码少妇一区二区三区芒果|
中日韩av在线|
91三级在线|
日韩视频在线一区二区三区
|
黄色漫画在线免费观看|
jlzzjlzz亚洲女人|
欧美久久久一区|
奇米777四色影视在线看|
久久久久亚洲AV|
国产精品麻豆一区二区三区
|
黄色片视频网站|
最新97超碰在线|
国产精品一区二区三区乱码|
欧美—级a级欧美特级ar全黄|
亚洲成人av免费在线观看|
可以免费看污视频的网站|
亚洲福利电影|
精品国内亚洲在观看18黄|
北京富婆泄欲对白|
中文字幕伊人|
另类的小说在线视频另类成人小视频在线|
久久亚洲精品成人|
熟女少妇内射日韩亚洲|
在线亚洲日本|
9l视频自拍九色9l视频成人|
欧美色图天堂网|
粉嫩av免费一区二区三区|
成年人免费高清视频|
av电影在线地址|
亚洲欧美在线高清|
欧美激情第一页在线观看|
www.五月激情|
99久久婷婷国产综合精品青牛牛|
欧美亚洲综合网|
黄色动漫网站入口|
国产porn在线|
激情六月综合|
久久久久国色av免费观看性色|
国产18无套直看片|
超碰最新在线|
国产美女精品一区二区三区|
国产精品6699|
久久久久女人精品毛片九一|
正在播放日韩精品|
亚洲国产日韩a在线播放性色|
自拍偷拍视频在线|
国产人成高清视频观看|
国内久久视频|
国外色69视频在线观看|
日韩精品一区三区|
熟妇高潮一区二区高潮|
免费观看亚洲天堂|
伊人色综合久久天天|
亚洲午夜久久久影院伊人|
欧美xxxx三人交性视频|
午夜精品婷婷|
久久久久久久久久久成人|
九九视频在线观看|
日本.亚洲电影|
欧美人牲a欧美精品|
手机av在线网站|
男人av在线|
中文乱码免费一区二区|
中文字幕在线中文字幕日亚韩一区|
久久这里只有精品1|
一本综合久久|
国产精品日韩在线观看|
青娱乐国产在线|
成人日韩在线观看|
日韩一级视频免费观看在线|
亚洲一区二区乱码|
欧美videos另类精品|
欧美视频裸体精品|
五月天婷婷影视|
91精彩视频在线播放|
一区二区三区精品在线观看|
日日橹狠狠爱欧美超碰|
视频在线国产|
欧美激情一区三区|
无码 制服 丝袜 国产 另类|
久热精品视频在线播放|
国产精品普通话对白|
成人精品久久久|
亚洲第一香蕉视频|
国产欧美另类|
999视频在线观看|
国产精品天美传媒入口|
青青草国产精品亚洲专区无|
欧美乱妇40p|
日韩精品在线观看免费|
久久成人福利|
欧美俄罗斯性视频|
一本一道精品欧美中文字幕|
日韩久久视频|
日本在线精品视频|
亚洲va在线va天堂成人|
香蕉久久夜色精品国产|
国产精品18毛片一区二区|
国产剧情在线一区|
国产成人精品一区二区三区四区
|
成人a在线视频|
亚洲免费视频在线|
日韩影院在线观看|
久久婷婷人人澡人人喊人人爽|
欧美 日韩 国产 成人 在线 91|
欧美日韩福利|
成人自拍偷拍|
一个人看的www片免费高清视频|
国产精品456露脸|
国产911在线观看|
在线电影av|
狠狠久久五月精品中文字幕|
一级黄色片毛片|
粉嫩av一区二区三区四区五区|
日韩精品在线观看网站|
少妇高潮av久久久久久|
亚洲91中文字幕无线码三区|
亚洲影视九九影院在线观看|
国产精品偷乱一区二区三区|
成人国产免费视频|
国产91在线视频观看|
免费在线看黄色|
精品国产a毛片|
亚洲av毛片基地|
视频国产精品|
久久久久久久久国产|
亚洲第一成人在线视频|
国产福利一区二区三区视频在线|
天天想你在线观看完整版电影免费|
四虎影院在线播放|
欧美日本韩国一区|
男人的天堂一区二区|
你懂的国产精品|
欧美午夜精品久久久久免费视|
日本调教视频在线观看|
五月天精品一区二区三区|
av网在线播放|
欧美男男gaytwinkfreevideos|
成人午夜小视频|
99视频高清|
精品久久久久国产|
丝袜美腿小色网|
影视一区二区|
色一情一乱一伦一区二区三欧美|
亚洲校园欧美国产另类|
欧美日韩免费不卡视频一区二区三区
|
综合图区欧美|
久久一区二区视频|
av不卡中文字幕|
成人在线黄色电影|
精品久久久av|
无国产精品白浆免费视|
亚洲国产高清在线|
国产免费看av|
欧美日韩国产传媒|
欧美日韩一区二区三|