亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 220model.v

?? 一本老師推薦的經典的VHDL覆蓋基礎的入門書籍
?? V
?? 第 1 頁 / 共 5 頁
字號:
        if (lpm_width <= 0)
        begin
            $display("Value of lpm_width parameter must be greater than 0(ERROR)");
            $finish;
        end
    end
    
// ALWAYS CONSTRUCT BLOCK
    always @(data or tridata or i_enabletr or i_enabledt)
    begin
        if ((i_enabledt == 0) && (i_enabletr == 1))
        begin
            result = tridata;
        end
        else if ((i_enabledt == 1) && (i_enabletr == 0))
        begin
            result = 'bz;
        end
        else if ((i_enabledt == 1) && (i_enabletr == 1))
        begin
            result = data;
        end
        else
        begin
            result = 'bz;
        end
    end

// CONTINOUS ASSIGNMENT
    assign tridata = (i_enabledt == 1) ? data : {lpm_width{1'bz}};

endmodule // lpm_bustri

//START_MODULE_NAME------------------------------------------------------------
//
// Module Name     :  lpm_mux
//
// Description     :  Parameterized multiplexer megafunctions.
//
// Limitation      :  n/a
//
// Results expected:  Selected input port.
//
//END_MODULE_NAME--------------------------------------------------------------

// BEGINNING OF MODULE
`timescale 1 ps / 1 ps

// MODULE DECLARATION
module lpm_mux ( 
    data,    // Data input. (Required)
    sel,     // Selects one of the input buses. (Required)
    clock,   // Clock for pipelined usage
    aclr,    // Asynchronous clear for pipelined usage.
    clken,   // Clock enable for pipelined usage.
    result   // Selected input port. (Required)
);

// GLOBAL PARAMETER DECLARATION
    parameter lpm_width = 1;  // Width of the data[][] and result[] ports. (Required)
    parameter lpm_size = 2;   // Number of input buses to the multiplexer. (Required)
    parameter lpm_widths = 1; // Width of the sel[] input port. (Required)
    parameter lpm_pipeline = 0; // Specifies the number of Clock cycles of latency
                                // associated with the result[] output.
    parameter lpm_type = "lpm_mux";
    parameter lpm_hint  = "UNUSED";

// INPUT PORT DECLARATION
    input [(lpm_size * lpm_width)-1:0] data;
    input [lpm_widths-1:0] sel;
    input clock;
    input aclr;
    input clken;
    
// OUTPUT PORT DECLARATION
    output [lpm_width-1:0] result;

// INTERNAL REGISTER/SIGNAL DECLARATION
    reg [lpm_width-1:0] tmp_result2 [lpm_pipeline:0];
    reg [lpm_width-1:0] tmp_result;

// LOCAL INTEGER DECLARATION
    integer i;

// INTERNAL TRI DECLARATION
    tri0 aclr;
    tri0 clock;
    tri1 clken;

    buf (i_aclr, aclr);
    buf (i_clock, clock);
    buf (i_clken, clken);

// INITIAL CONSTRUCT BLOCK
    initial
    begin
        if (lpm_width <= 0)
        begin
            $display("Value of lpm_width parameter must be greater than 0 (ERROR)");
            $finish;
        end

        if (lpm_size <= 1)
        begin
            $display("Value of lpm_size parameter must be greater than 1 (ERROR)");
            $finish;
        end

        if (lpm_widths <= 0)
        begin
            $display("Value of lpm_widths parameter must be greater than 0 (ERROR)");
            $finish;
        end
        
        if (lpm_pipeline < 0)
        begin
            $display("Value of lpm_pipeline parameter must NOT less than 0 (ERROR)");
            $finish;
        end

    end
    
    
// ALWAYS CONSTRUCT BLOCK
    always @(data or sel or i_aclr)
    begin
        if (i_aclr)
            for (i = 0; i <= lpm_pipeline; i = i + 1)
                tmp_result2[i] = 'b0;
        else
        begin
            tmp_result = 0;
            
            if (sel < lpm_size)
            begin
                for (i = 0; i < lpm_width; i = i + 1)
                    tmp_result[i] = data[(sel * lpm_width) + i];
            end
            else
                tmp_result = {lpm_width{1'bx}};

            tmp_result2[lpm_pipeline] = tmp_result;
        end
    end

    always @(posedge i_clock)
    begin
        if (!i_aclr && i_clken == 1)
            for (i = 0; i < lpm_pipeline; i = i + 1)
                tmp_result2[i] <= tmp_result2[i+1];
    end

// CONTINOUS ASSIGNMENT
    assign result = tmp_result2[0];
    
endmodule // lpm_mux
// END OF MODULE

//START_MODULE_NAME------------------------------------------------------------
//
// Module Name     :  lpm_decode
//
// Description     :  Parameterized decoder megafunction.
//
// Limitation      :  n/a
//
// Results expected:  Decoded output.
//
//END_MODULE_NAME--------------------------------------------------------------

// BEGINNING OF MODULE
`timescale 1 ps / 1 ps

// MODULE DECLARATION
module lpm_decode (
    data,    // Data input. Treated as an unsigned binary encoded number. (Required)
    enable,  // Enable. All outputs low when not active.
    clock,   // Clock for pipelined usage.
    aclr,    // Asynchronous clear for pipelined usage.
    clken,   // Clock enable for pipelined usage.
    eq       // Decoded output. (Required)
);

// GLOBAL PARAMETER DECLARATION
    parameter lpm_width = 1;                // Width of the data[] port, or the
                                            // input value to be decoded. (Required)
    parameter lpm_decodes = 1 << lpm_width; // Number of explicit decoder outputs. (Required)
    parameter lpm_pipeline = 0;             // Number of Clock cycles of latency 
    parameter lpm_type = "lpm_decode";
    parameter lpm_hint = "UNUSED";

// INPUT PORT DECLARATION
    input  [lpm_width-1:0] data;
    input  enable;
    input  clock;
    input  aclr;
    input  clken;

// OUTPUT PORT DECLARATION
    output [lpm_decodes-1:0] eq;

// INTERNAL REGISTER/SIGNAL DECLARATION
    reg    [lpm_decodes-1:0] tmp_eq2 [lpm_pipeline:0];
    reg    [lpm_decodes-1:0] tmp_eq;

// LOCAL INTEGER DECLARATION
    integer i;

// INTERNAL TRI DECLARATION
    tri1   enable;
    tri0   clock;
    tri0   aclr;
    tri1   clken;
    
    buf (i_clock, clock);
    buf (i_clken, clken);
    buf (i_aclr, aclr);
    buf (i_enable, enable);

// INITIAL CONSTRUCT BLOCK
    initial
    begin
        if (lpm_width <= 0)
        begin
            $display("Value of lpm_width parameter must be greater than 0 (ERROR)");
            $finish;
        end
        if (lpm_decodes <= 0)
        begin
            $display("Value of lpm_decodes parameter must be greater than 0 (ERROR)");
            $finish;
        end
        if (lpm_decodes > (1 << lpm_width))
        begin
            $display("Value of lpm_decodes parameter must be less or equal to 2^lpm_width (ERROR)");
            $finish;
        end
        if (lpm_pipeline < 0)
        begin
            $display("Value of lpm_pipeline parameter must be greater or equal to 0 (ERROR)");
            $finish;
        end
    end

// ALWAYS CONSTRUCT BLOCK
    always @(data or i_enable or i_aclr)
    begin
        if (i_aclr)
            for (i = 0; i <= lpm_pipeline; i = i + 1)
                tmp_eq2[i] = 'b0;
        else
        begin
            tmp_eq = 0;
            if (i_enable)
                tmp_eq[data] = 1'b1;
            tmp_eq2[lpm_pipeline] = tmp_eq;
        end
    end
 
    always @(posedge i_clock)
    begin
        if (!i_aclr && clken == 1)
            for (i = 0; i < lpm_pipeline; i = i + 1)
                tmp_eq2[i] <= tmp_eq2[i+1];
    end

    assign eq = tmp_eq2[0];

endmodule // lpm_decode
// END OF MODULE

//START_MODULE_NAME------------------------------------------------------------
//
// Module Name     :  lpm_clshift
//
// Description     :  Parameterized combinatorial logic shifter or barrel shifter
//                    megafunction.
//
// Limitation      :  n/a
//
// Results expected:  Return the shifted data and underflow/overflow status bit.
//
//END_MODULE_NAME--------------------------------------------------------------

// BEGINNING OF MODULE
`timescale 1 ps / 1 ps

// MODULE DECLARATION
module lpm_clshift (     
    data,        // Data to be shifted. (Required)
    distance,    // Number of positions to shift data[] in the direction specified
                 // by the direction port. (Required)
    direction,   // Direction of shift. Low = left (toward the MSB),
                 //                     high = right (toward the LSB). 
    result,      // Shifted data. (Required)
    underflow,   // Logical or arithmetic underflow.
    overflow     // Logical or arithmetic overflow.
);

// GLOBAL PARAMETER DECLARATION
    parameter lpm_width = 1;  // Width of the data[] and result[] ports. Must be
                              // greater than 0 (Required)
    parameter lpm_widthdist = 1; // Width of the distance[] input port. (Required) 
    parameter lpm_shifttype = "LOGICAL"; // Type of shifting operation to be performed.
    parameter lpm_type = "lpm_clshift";
    parameter lpm_hint = "UNUSED";

// INPUT PORT DECLARATION   
    input  [lpm_width-1:0] data;
    input  [lpm_widthdist-1:0] distance;
    input  direction;

// OUTPUT PORT DECLARATION
    output [lpm_width-1:0] result;
    output underflow;
    output overflow;

// INTERNAL REGISTERS DECLARATION
    reg    [lpm_width-1:0] ONES;
    reg    [lpm_width-1:0] result;
    reg    overflow, underflow;

// LOCAL INTEGER DECLARATION
    integer i;

// INTERNAL TRI DECLARATION
    tri0  direction;

    buf (i_direction, direction);

    
// FUNCTON DECLARATION
    // Perform logival shift operation
    function [lpm_width+1:0] LogicShift;
        input [lpm_width-1:0] data;
        input [lpm_widthdist-1:0] dist;
        input direction;
        reg   [lpm_width-1:0] tmp_buf;
        reg   overflow, underflow;
                
        begin
            tmp_buf = data;
            overflow = 1'b0;
            underflow = 1'b0;
            if ((direction) && (dist > 0)) // shift right
            begin
                tmp_buf = data >> dist;
                if ((data != 0) && ((dist >= lpm_width) || (tmp_buf == 0)))
                    underflow = 1'b1;
            end
            else if (dist > 0) // shift left
            begin
                tmp_buf = data << dist;
                if ((data != 0) && ((dist >= lpm_width)
                    || ((data >> (lpm_width-dist)) != 0)))
                    overflow = 1'b1;
            end
            LogicShift = {overflow,underflow,tmp_buf[lpm_width-1:0]};
        end
    endfunction // LogicShift

    // Perform Arithmetic shift operation
    function [lpm_width+1:0] ArithShift;
        input [lpm_width-1:0] data;
        input [lpm_widthdist-1:0] dist;
        input direction;
        reg   [lpm_width-1:0] tmp_buf;
        reg   overflow, underflow;
        integer i;
        
        begin
            tmp_buf = data;
            overflow = 1'b0;
            underflow = 1'b0;

            if (dist < lpm_width)
            begin           
                if (direction && (dist > 0))   // shift right
                begin

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人高清免费在线播放| 一区二区三区精品视频在线| 日本亚洲免费观看| 欧美乱妇23p| 日本伊人午夜精品| 久久综合成人精品亚洲另类欧美| 国产自产高清不卡| 欧美经典三级视频一区二区三区| 成人免费看片app下载| 一区二区三区在线观看视频| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 国产精品成人免费| 99久久综合色| 亚洲韩国一区二区三区| 欧美一级xxx| 国产成人自拍网| 亚洲人吸女人奶水| 欧美一区二区视频网站| 国产在线看一区| 亚洲三级在线播放| 日韩一区二区三区高清免费看看| 国产一区二区三区四区五区入口 | 日本一区二区三区四区| 色婷婷久久久亚洲一区二区三区| 亚洲午夜精品17c| 久久伊99综合婷婷久久伊| 色综合中文字幕国产 | 日韩电影一区二区三区四区| 2020国产成人综合网| 色婷婷国产精品| 另类小说欧美激情| 最新欧美精品一区二区三区| 91麻豆精品国产自产在线观看一区| 国产精品91一区二区| 亚洲国产aⅴ成人精品无吗| 久久久精品免费免费| 欧美私人免费视频| 国产91丝袜在线18| 午夜成人免费电影| 中文字幕一区二区5566日韩| 欧美一区二区日韩| 色综合久久天天| 国产精品99久久久久久久女警| 一区二区三区.www| 国产欧美精品国产国产专区| 91麻豆精品国产91久久久使用方法 | 国产精品情趣视频| 欧美一区二区三区四区五区| 不卡av在线免费观看| 精品亚洲成a人| 亚洲国产美女搞黄色| 国产精品九色蝌蚪自拍| 精品国产精品一区二区夜夜嗨| 在线中文字幕一区| 成人听书哪个软件好| 久久精品久久99精品久久| 亚洲午夜成aⅴ人片| 亚洲丝袜另类动漫二区| 久久久噜噜噜久久人人看| 欧美一级搡bbbb搡bbbb| 欧美系列日韩一区| 99久久婷婷国产综合精品电影| 激情综合色播五月| 美女国产一区二区三区| 天天色综合天天| 亚洲与欧洲av电影| 亚洲免费观看视频| 1000精品久久久久久久久| 国产欧美一区二区三区沐欲| 日韩欧美高清在线| 91精品国产综合久久精品麻豆| 欧洲人成人精品| 91片在线免费观看| 色综合色综合色综合色综合色综合| 国产白丝网站精品污在线入口 | 国产乱淫av一区二区三区| 精品一区二区av| 国产一区二区三区免费观看| 国产精选一区二区三区| 精东粉嫩av免费一区二区三区| 看电影不卡的网站| 国产一区二区免费看| 成人午夜激情片| 色悠悠亚洲一区二区| 91国偷自产一区二区开放时间| 色婷婷综合久久久中文一区二区| 在线免费观看日韩欧美| 欧美日韩一区不卡| 欧美一级高清片在线观看| 日韩欧美123| 久久久久九九视频| 国产精品色婷婷久久58| 亚洲人成人一区二区在线观看| 一区二区三区精品久久久| 午夜激情久久久| 久久精品国产久精国产| 国产成人综合亚洲91猫咪| 99久久精品一区| 欧美体内she精高潮| 日韩精品最新网址| 欧美国产精品v| 亚洲国产乱码最新视频| 黄色资源网久久资源365| 成人久久18免费网站麻豆| 欧美最猛黑人xxxxx猛交| 日韩一区二区在线看| 国产亚洲精品bt天堂精选| 亚洲精品伦理在线| 男人的j进女人的j一区| 高清beeg欧美| 欧美日韩激情一区| 久久精品日产第一区二区三区高清版| 国产女人18水真多18精品一级做 | 一二三区精品视频| 蜜桃一区二区三区四区| 97精品久久久午夜一区二区三区 | 一本久久精品一区二区| 欧美精品在线视频| 国产精品人人做人人爽人人添| 亚洲国产日韩一级| 国产不卡在线视频| 91精品一区二区三区久久久久久| 精品入口麻豆88视频| 亚洲欧美日韩精品久久久久| 久久99久久精品欧美| 色又黄又爽网站www久久| 精品久久久久香蕉网| 亚洲伊人色欲综合网| 国产老妇另类xxxxx| 欧美日本在线看| 亚洲欧洲综合另类| 国产成人精品免费在线| 欧美一区二区视频在线观看2022| 亚洲三级电影全部在线观看高清| 另类中文字幕网| 欧美亚洲高清一区| 国产精品嫩草影院com| 蜜臀99久久精品久久久久久软件| 91黄视频在线| 中文字幕国产精品一区二区| 日产国产欧美视频一区精品| 99久久婷婷国产| 日本一区二区三区久久久久久久久不| 亚洲综合图片区| 91丨porny丨蝌蚪视频| 欧美国产乱子伦| 国产麻豆精品在线| 26uuu久久天堂性欧美| 青青草原综合久久大伊人精品优势 | 久久久亚洲精品石原莉奈 | 天天综合网 天天综合色| 99精品久久只有精品| 国产欧美日韩亚州综合| 国内精品久久久久影院薰衣草| 91麻豆精品91久久久久同性| 亚洲无线码一区二区三区| 91视频观看免费| 18成人在线观看| 91首页免费视频| 国产精品国产三级国产aⅴ原创 | 精品国产sm最大网站| 日韩vs国产vs欧美| 欧美日韩亚洲不卡| 亚洲自拍另类综合| 欧美手机在线视频| 亚洲第一成年网| 欧美日韩精品系列| 亚洲网友自拍偷拍| 欧美精品国产精品| 日韩中文字幕麻豆| 日韩一本二本av| 精品一区二区三区免费播放| 欧美精品一区二区三区高清aⅴ| 久久国产夜色精品鲁鲁99| ww亚洲ww在线观看国产| 国产成人精品影视| 中文字幕在线观看一区二区| 99久久精品国产毛片| 一区二区三区在线视频免费观看| 欧美在线观看视频一区二区| 日日夜夜免费精品| 日韩精品专区在线| 国产91精品精华液一区二区三区| 中文字幕精品在线不卡| 99视频有精品| 亚洲mv在线观看| 精品国产91洋老外米糕| 成人av电影免费观看| 亚洲资源在线观看| 91精品在线免费| 风流少妇一区二区| 有坂深雪av一区二区精品| 欧美日韩免费在线视频| 久色婷婷小香蕉久久| 国产精品久久777777| 欧美日韩一区二区电影| 精品无人区卡一卡二卡三乱码免费卡| 国产精品无人区| 欧美日韩精品欧美日韩精品一| 激情欧美日韩一区二区|