digital-logic

    0熱度

    1回答

    如何將一個寄存器(8位)中的最高半字節(4位)分配給另一個寄存器的最高半字節?不改變4個LSbs? 這是我提出的解決方案,我可以做的兩個步驟,但我相信有更巧妙的解決做它只有一步(也許用更少的門或指令): REGA & =(REGB | 0x0F); REGA | =(REGB & 0xF0); 任何人都可以用數字設計幫助嗎? (這是凌晨3點,我不能沒有緩解睡眠: - /)

    1熱度

    1回答

    我想實現一個結構化的讀端口MEM沒有默認: class TagType() extends Bundle() { import Consts._ val valid = Bool() val dirty = Bool() val tag = UInt(width = ADDR_MSB - ADDR_LSB + 1) } object TagType

    0熱度

    1回答

    我試圖證明BC + !A!B + !A!C = ABC +!A 我一直在使用德摩根的法律嘗試,而代X for !A!B和Y for !A!C,但是我在這個沒有取得進展。 我已經試過了A的樣子,!A(!B+!C),但是我再也找不到任何地方,如果有人能指點我的方向,幫我解決,給我一個可以做到的工具等等。 。我會很感激。

    -1熱度

    1回答

    我想幫助簡化此布爾代數表達式: B * C +〜A *〜B +〜A *〜C => A * B * C +〜甲 我需要知道如何把它簡化爲ABC的步驟+〜一 '*' 指示 「與」 '+' 表示 「OR」 「〜A」表示「A NOT」 任何幫助,將不勝感激! 謝謝!

    -1熱度

    1回答

    我是VHDL的新手,我的代碼出現問題,我似乎無法修復。我們應該使用選定的信號分配或表查找來做到這一點。由於我們應該使用不關心不會發生的輸入,所以我是兩者的組合。 該代碼基本上應該爲2的補碼輸入或偏移二進制提供相同的輸出。因此,例如,十進制數7在偏移二進制中爲「1111」,在二進制補碼中爲「0111」。這兩種形式都應根據開關oe的值('1'爲偏移二進制,'0'爲2的補碼)生成「1111100000」

    1熱度

    2回答

    我想用MIPS指令集做一些字節操作。 我有註冊$S0具有0x8C2E5F1E並註冊$S1具有0x10AC32BB。 我想將$S0,5F的第二個字節存儲到$S1,AC的第三個字節中。 我的邏輯是將寄存器$S0的字節存儲到另一個寄存器,將其移位到所需的字節。然後,我會與0xFF00FFFF註冊$S1。最後,我只是或兩個寄存器。 聽起來怎麼樣?這是對的嗎?有更好的方法嗎? 任何建議或解決方案,將不勝感激

    0熱度

    3回答

    如果我有一個「與門」具有三個輸入「A,B和控制線C」 可予控制切換和門打開或關閉..只是這樣如果C == 1然後,AND門與輸入A,B一起工作,如果C == 0,則什麼都不會發生 這可以通過任何方法完成?

    -2熱度

    1回答

    我有兩條電纜從另一條電路進入。 當我給某種Arduino或電動imp的命令時,我想讓這兩個連接接觸。我需要某種默認關閉的虛擬開關,但我可以通過寫入一個引腳來輕鬆打開代碼。 實質上,我想製作一個瞬時開關按鈕,可以用代碼打開和關閉。 我知道有一種方法可以做到這一點,但我是一個數字新手。有什麼建議麼?

    3熱度

    1回答

    Vec [Mem]對於說集關聯緩存會很好。 不幸的是鑿不支持VEC [存儲]構造: val tag_ram2 = Vec.fill(num_ways) {Mem(new TagType(), num_sets , seqRead = true)} 事實上: inferred type arguments [Chisel.Mem[cache.TagType]] do not conform to

    1熱度

    1回答

    我可以在always塊內使用電線嗎? 舉例來說: wire [3:0]a; assign a=3; always @(c) begin d=a+c; end 它編譯時沒有拋出任何錯誤。爲什麼?