|
這是我的代碼,目的是設計一個(gè)同步捕獲的計數器用來(lái)測頻,大家看看能行嗎
- always@(posedge clk or negedge rest or negedge softrest)//1s分頻,clk為系統時(shí)鐘,rest硬件復位,softrest軟件復位
- 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;//計數清零
- end
復制代碼
我就是第三個(gè)always弄不清楚,編碼是發(fā)生在fre1的上升沿,還是說(shuō)在clk的上升沿就發(fā)生,計數清零又是發(fā)生在什么時(shí)候?我一直都是begin end中的時(shí)序不太明白,begin end中若是有多條語(yǔ)句,則執行一次begin end需要的是1個(gè)時(shí)鐘還是多個(gè)時(shí)鐘?
|
|