|
這是我的代碼,目的是設(shè)計(jì)一個(gè)同步捕獲的計(jì)數(shù)器用來測頻,大家看看能行嗎
- always@(posedge clk or negedge rest or negedge softrest)//1s分頻,clk為系統(tǒng)時(shí)鐘,rest硬件復(fù)位,softrest軟件復(fù)位
- if((!rest)||(!softrest)) fre_1Hz<=0;
- else if(fre_1Hz<50000000-1) fre_1Hz<=fre_1Hz+1;
- else fre_1Hz<=0;
- always@(fre_1Hz)
- if(fre_1Hz==50000000-1) fre_1Hz_flag=1;
- else fre_1Hz_flag=0;
- always@(posedge fre1 or posedge clk negedge rest or negedge softrest)//fre1為捕獲端口
- if((!rest)||(!softrest)) fre_cnt1<=0;
- else if(clk)
- if(!fre_1Hz_flag) fre_cnt1<=fre_cnt1+1;
- else
- begin
- {fre1buf[4],fre1buf[3],fre1buf[2],fre1buf[1],fre1buf[0]}<={{2'b01,fre_cnt1[24:20],2'b01},{2'b01,fre_cnt1[19:15],2'b01},{2'b01,fre_cnt1[14:10],2'b01},{2'b01,fre_cnt1[9:5],2'b01},{2'b01,fre_cnt1[4:0],2'b01}};//編碼發(fā)送
- fre_cnt1<=0;//計(jì)數(shù)清零
- end
復(fù)制代碼
我就是第三個(gè)always弄不清楚,編碼是發(fā)生在fre1的上升沿,還是說在clk的上升沿就發(fā)生,計(jì)數(shù)清零又是發(fā)生在什么時(shí)候?我一直都是begin end中的時(shí)序不太明白,begin end中若是有多條語句,則執(zhí)行一次begin end需要的是1個(gè)時(shí)鐘還是多個(gè)時(shí)鐘?
|
|