verilog

    1熱度

    2回答

    目前我有一些tcl文件。在tcl文件中,特別是在一個tcl中,我在tcl中找到了下面的一個proc函數。 proc ahb_write {addr data {str s}} { set ahbm top.cpu_subsys ... if {$::verbose > 0} { } silent { ...........

    -1熱度

    1回答

    我設計了一個16 * 16蒙哥馬利乘數。該代碼使用16 * 16乘法器執行三次乘法。乘法運算使用相同的乘法器一個接一個地執行,每個乘法的結果存儲在寄存器中。單個16×16乘法器以大約1550MHz的頻率執行,但是當三個乘法串聯執行時,蒙哥馬利乘法器(其使用單個16×16乘法器三次)的頻率減小到接近500MHz。我想避免頻率下降,並希望以單倍頻的頻率操作。在這方面需要幫助。 的代碼與一起提供。 `d

    1熱度

    1回答

    我想知道是否有簡單的方法來定義模塊的有效邊沿,例如,一個寄存器,在Verilog中,所以我可以定義在實例化時是否爲正/負觸發。例如: Register #(.width(8), .active_edge(`POS_EDGE)) DUT(); 這是我的嘗試,雖然,我不知道這是否是合法的,即使在posedge變量使用邏輯運算符: module Register #( parameter wid

    0熱度

    1回答

    我正在嘗試製作可合成的Verilog代碼,它可以檢測'x'或無效輸入。基本上,x不合成,所以我避免x。我試圖在每個時鐘週期讀取輸入,如果是0或1,那麼我將加載到一個新的寄存器中。這是代碼; [email protected](posedge clk) begin if(in & gate_check == 0 | in & gate_check == 1) begin

    1熱度

    1回答

    我需要實現一個塊(行爲,而不是要被合成的),其或者通過 一個)的外部事件EFLAG,或b)根據其狀態,一個觸發內部事件iflag,計劃dt秒後,以先到者爲準。 我的使用延遲(#)運算符的試驗導致阻塞行爲,例如,很長時間dt阻止了下一個電子郵件。 如果可能,我會避免dtmax計算長dt的開銷。 工作和打算,但未能代碼: `timescale 1ns/100fs `define tick 1.0e-

    0熱度

    1回答

    我對verilog有點新。所以這個問題可能很簡單。 我試圖模擬一個使用verilog的有限狀態機。 簡要說明: 有三種狀態:0,1 & 2.默認情況下,狀態爲0。 狀態變爲1僅當輸入爲01 的狀態更改爲2僅當輸入是10 狀態只有當輸入爲00時才變回0。 代碼已成功模擬,但Im沒有輸出。請幫我解決這個問題。 代碼:(State.v) module State( input clk,

    -1熱度

    1回答

    我設計了一個簡單的計數器。以下代碼爲 。 input sig; reg [3:0] cnt; always @(sig) begin if(sig) cnt = cnt + 1; end 使用Modelsim進行仿真可正常工作。我在fpga上執行代碼(Spartan 6 by ise 14.7),sig高時計數器持續計數!!! 對不起我的英文不好。

    0熱度

    2回答

    我試圖在路由後模擬期間監視一個內部信號。 所以我在Verilog代碼中使用了$display語法。 但是,在控制檯中沒有任何顯示。 我用Verilog代碼中的語法如下 always @(negedge clk) begin $display("Decimal: %d", idatabuf); end 所以我的問題是,是否$display語法佈線後仿真不起作用? 無論如何,我正在採取粗暴的

    1熱度

    1回答

    我需要在verilog中的for-generate塊中生成以下分配。這是給定位大小 n = 8位的有符號數乘法過程的一部分。 assign p[1]=pp[1][1]; assign p[2]=pp[2][1]; assign p[3]=pp[3][1]; assign p[4]=pp[4][1]; assign p[5]=pp[5][1]; assign p[6]=pp[6][1];

    0熱度

    1回答

    Verilog中%運算符的範圍是什麼?在C中,我知道如果我寫數字%10然後輸出介於0和9之間。但我嘗試了Verilog,結果我得到的是-9和9之間?這是爲什麼? enter code here module testbench; integer i; reg signed [15:0] a,b; initial begin for(i = 0; i < 9; i = i + 1) b