verilog實現一種任意占空比方波產生

2021-08-20 17:55:52 字數 927 閱讀 8202

今天突發奇想,比如我要得到上圖所示的,高電平佔7個clk,低電平佔2個clk的輸出方波。

設定個計數的暫存器,當計數值小於高電平持續時間時,輸出高電平,當高於高電平持續時間小於總週期時,輸出低電平

程式如下:

module fenpinqi_buduicheng (clk, clr, q);

input clk;

input clr;

output reg q;

parameter high = 5, low = 2;

reg [3:0] count;

always @ (posedge clk)

begin

if (clr == 1) 

begin

q <= 0;

count <= 1'b0;

endif (clr == 0) 

begin

if (count < high) 

begin

count <= count+1'b1;

q <= 1;

endif (count >= high) 

begin

count <= count+1'b1;

q <= 0;

endif (count == high+low-1) 

begin

q <= 0;

count <= 1'b0;

endend

endendmodule

注意,count因為要計數到high+low-1,所以要注意reg的大小,我剛開始沒有設定,預設為一位reg,導致計數值在0-1之間變化,所以輸出一直是高電平。

Session為空的一種原因

在維護乙份比較老的 想改為ajax呼叫,然後就新增了乙個一般處理程式檔案,也就是以.ashx結尾的檔案,一切都正常,但發現session一直為空,很奇怪 基本的 如下 最後發現,在其他頁面都可以取到session中儲存的內容,只有此處為空,很奇怪。經過很長時間的測試,解決方法竟然也很簡單,就是還需要...

Session為空的一種原因

在維護乙份比較老的 想改為ajax呼叫,然後就新增了乙個一般處理程式檔案,也就是以.ashx結尾的檔案,一切都正常,但發現session一直為空,很奇怪 基本的 如下 最後發現,在其他頁面都可以取到session中儲存的內容,只有此處為空,很奇怪。經過很長時間的測試,解決方法竟然也很簡單,就是還需要...

迴圈佇列一種實現

queue實現方式有兩種 陣列和鍊錶,本文屬於陣列實現,為了防止佇列出現 明明還有儲存空間,但是卻提示佇列已滿 的情況,故使用迴圈佇列 include include define max size 5 typedef struct qnode squeue,squeueptr void init ...