verilog語言求助,別人給我發了一份程式,我有點看不懂

2021-03-31 22:38:20 字數 1146 閱讀 8888

1樓:匿名使用者

這是一個clk驅動的移位暫存器

當clr為高時,以為暫存器q被清零

不然的話,每個時鐘週期,data_in的值送入q的最低位,每一位q左移一位,最高位的q被丟棄

求大神幫忙 有一段verilog語言 我看不懂 求翻譯

2樓:匿名使用者

按鍵計時

always @(negedge on or posedge clock) begin

if (!on)

counter=0;

else if (counter[`out_bit]==0)

counter=counter+1;

end每個時鐘計數,counter自加1,且counter[9] = 0

always @(posedge clock) begin

if ((counter>=1) && (counter <5))

keyon=0;

else

keyon=1;

endcounter 1~5 keyon 為0,其餘為1

wire on=((counter[`out_bit]==1) && (key==0))?0:1;

10位計數器 最高位為1,且輸入key為0時,清零,其餘為1

一次key有效輸入,為1時,counter計滿9bit,on為高,keyon持續5cycle;

key沒有輸入,即0時,on為低,可以理解成,你按下鍵,給你5ycle的按鍵脈衝

求問以下verilog語言。7『0100000』完全看不懂

3樓:

verilog裡的資料可以以這種格式寫

[要寫的資料bit位數]'[資料型別,後面的資料型別,b為二制,d為十進位制,h為十六進位制等][根據資料型別寫具體的資料,_不影響]

例如:8『b0001_0020

8』h12

8'd18

4樓:匿名使用者

seg7ment_sub這個模組根據輸入進來的16進位制,產生7bit的數碼管訊號,每bit對應一個led數碼管燈。1表示該燈管滅,0表示亮。

比如,輸入8,輸出7『b000_0000,即所有的燈都點亮。

verilog語言中的begin BLOCK A是什麼意思

if begin block a x x endelse begin block b x x end意思是 第一個begin end內的模組命名為block a第二個begin end內的模組命名為block b做區分用,一般情況下,可以不對begin end命名。begin.end 是一個順序過程...

初學Verilog語言,有個問題 always列表裡面不能同時有電平敏感事件和邊沿觸發事件嗎

不能同時有電平觸抄發與邊沿觸發信 襲號存在,綜合的時候通不過,例如xlinx ise 會報錯xst 902 unexpected event in always block sensitivity list.同樣的,一個邏輯塊裡不能同時阻塞賦值和非阻塞賦值。必須分開寫。可以不過這種很容易導致引起競爭...

c語言!!求助,C語言求助!!!

沒什麼問題,兩題給出的答案都是正確的。第2題 後面按c語言要求帶上規定的字元或數字,構成轉義字元,因此要想將 賦給字元變數ch,需要定義為 ch 而不是ch 選項a是錯誤的。其餘選項都是正確的。選a第9題 011表示八進位制數,轉為十進位制數是9,執行printf語句,a,是a先自增1 9 1 10...