原创 加法器(行波與超前、全加與半加)

行波進位加法器 行波進位加法器,又稱爲逐級進位加法器,從左至右,每一級產生的進位傳遞到高一級的加法單元后該單元才能輸出本級的運算結果,隨着加數位寬的增加,最終得到的運算結果的延遲會不斷增大,從而限制了系統的最高運算速度。 以32位二進制加法

原创 DCI技術

數控輸出阻抗,(digitally Controlled impedance),包括兩個功能: (1)、控制驅動器的輸出阻抗 (2)、爲驅動器添加一個並行端接,在傳輸線上得到精確的特徵阻抗匹配,以提高信號完整性 DCI會主動調節IO ban

原创 **標識符

**表示多少次冪,例如: reg [DATA_WIDTH-1:0] rom[2**ADDR_WIDTH-1:0]; 前面的[DATA_WIDTH-1:0]表示的是寄存器的寬度,後面的定義表示定義了2的ADDR_WIDTH次方個位寬爲[DAT

原创 `define `ifdef `elseif的巧妙使用

當一個工程包含多個面向對象但具體使用只有一個時,可通過`define實現。 以攝像頭爲例,攝像頭有OV5640、OV7670、OV7725三種,可以在配置程序中通過宏定義`define定義一種,比如 `define OV5640 1 接下來

原创 電容放置問題

旁路需要考慮的另一重要方面是電容的放置。一般的規則是,電容值越大則其放置要求越不嚴格。若電容值較小,則電容應該儘可能靠近電源和地的引腳。可以採用的一種方法是將不用的通用IO 的走線和過孔移除,從而爲旁路電容騰出空間。如果在FPGA 內使用M

原创 TMDS代碼

module dvi_encoder( clkin, rstin, din, c0, c1, de, dout ); input clkin; //像素時鐘輸入 input rstin; //同步復位輸入 input[7:0]di

原创 前導參數#的聲明

在函數聲明時: 在函數名之後添加#標識符,之後用括號括起聲明參數,每個參數用逗號分開,       也可以直接在函數中使用parameter聲明,這樣在上層模塊調用時也可以通過#標識符直接更改parameter聲明參數。 在函數調用時: 與

原创 input[0:3]data

表示對輸入信號的位進行一次重新排序,之前信號的分佈是{位3,位2,位1,位0},現在信號的順序是{位0,位1,位2,位3},但是原始信號並沒有發生變化, example:   代碼: module hh(in,out); input [0:

原创 使用移位寄存器產生重複序列信號“100_0001”,移位寄存器的級數至少爲?

這類題有兩種,一直是直接說產生序列信號,需要幾級觸發器,另一種問法是“使用移位寄存器產生序列信號” 在問直接產生序列信號需要幾級觸發器是,爲log2(Length) 在使用移位寄存器實現時,需要: 級數就是構成該寄存器的觸發器的個數,一個觸

原创 定點數

1、定點數定義 定點數是指小數點固定的隱含在某一位置上的一類數據 有符號數: 以四位有符號數1111爲例,其數值大小爲:1x(-2^(0))(4+2+1)= -7。 2、補碼 正整數的補碼:與原碼相同。 負整數的補碼:將其原碼除符號位外的所

原创 紅綠燈設計

  module hld( input clk, input rst_n, input nb_beg, //南北方向同行請求 input dx_beg, //東西方向同行請求 output reg nb

原创 畫狀態機,接收1,2,5分錢的賣報機,每份報紙5分錢

畫狀態機,接收1,2,5分錢的賣報機,每份報紙5分錢 斜槓的左邊是當前的輸入,斜槓的右側是輸出信號。下圖是網上找出的,有部分錯誤,在st1缺少狀態。 代碼: module maib( input clk, input rst_n, in

原创 畫出可以檢測10010串的狀態圖

狀態轉換圖:   module det( input clk, input rst_n, input d, //數據輸入 output reg y //檢測結果輸出 ); /* 檢測101101 */ //狀態編碼 parame

原创 NOT、NAND、NOR符號

a是與門,b是或門,c是非門,d是異或門,e是與非門,f是或非門。   晶體管非門實現:   晶體管非門實現:   晶體管與非門實現: 分析: 晶體管或非門實現: a爲0負邏輯,b爲0正邏輯。    

原创 DAC和ADC的實現方法

DAC DAC的作用是將數字信號轉換爲與之相對應的電平(幅值)的模擬信號。 DAC實現方法: 1、  T型電阻網絡方式:由T型電阻網絡和反相運算器構成。 2、  倒T型電阻網絡方式 T型電阻網絡: