文档详情

第5讲典型基本逻辑路的Verilog-HDL描述-Read.DOC

发布:2017-11-08约9.31千字共26页下载文档
文本预览下载声明
第 5 讲 典型基本逻辑路的Verilog-HDL描述 5.1 数据选择器 ? 5.2 编码器 ? 5.3 同步RS触发器 ? 5.4 带有复位端的同步D触发器 5.1 数据选择器[To top]   数据选择器又称为多路开关,简称MUX(Multiplexer)。它的逻辑功能是在地址选择信号SEL的控制下,从多路输入(A、B…)数据中选择某一路数据作为输出,一个2-1数据选择器的逻辑电路符号如图1所示。 ?                 图1 2-1数据选择器的逻辑符号   逻辑电路如图2所示,有关A、B及SEL的解释读者还可参考有关书籍(1)。 ?                   图2 2-1数据选择器的逻辑电路 例1 2-1数据选择器的Verilog-HDL描述 /* 2-1 SELECTOR */ module SEL ( A, B, SEL, F ); //模块名及端口参数,范围至endmodule。   input  A, B, SEL; //输入端口定义   output  F ; //输出端口定义   assign F = ~SEL A | SEL B; //assign语句,实现功能:F=(/SEL·A)+(SEL·B)。 endmodule //模块结束 例2 使用case语句的2-1数据选择器 /* 2-1 SELECTOR */ module SEL ( A, B, SEL, F );      //模块名及参数定义,范围至endmodule。   input A, B, SEL;         //输入端口定义   output F;             //输出端口定义   assign F = SEL2_1_FUNC ( A, B, SEL );   //用assign语句实现function函数调用   function SEL2_1_FUNC;           //function函数及函数名,至endfunction为止。     input A, B, SEL;           //输入端口定义     case ( SEL )             //case语句,至于endcase为止。       0: SEL2_1_FUNC = A;        //功能:SEL=0时,返回A。       1: SEL2_1_FUNC = B;        //功能:SEL=1时,返回B。     endcase               //case语句结束   endfunction               //function函数结束 endmodule                  //模块结束 【解说】if_else语句的使用方法   if_else 语句用来先判定所给的条件是否满足,然后根据判定的结果(真或假)来执行所给出的两种操作之一。 例3 使用if_else语句的2-1数据选择器   /* 2-1 SELECTOR */ module SEL ( A, B, SEL, F );  //模块名及参数定义,范围至endmodule。   input A, B, SEL;      //输入端口定义   output F;         //输出端口定义   assign F = SEL2_1_FUNC ( A, B, SEL ); //用assign语句实现function函数调用   function SEL2_1_FUNC;         //function函数及函数名,至endfunction为止。     input A, B, SEL;          //输入端口定义     if ( SEL == 0 )           // if语句,与else配合使用。       SEL2_1_FUNC = A;        //如果SEL= 0,则返回A。       else             //if相呼应       SEL2_1_FUNC = B;        //否则返回B   endfunction              //function函数结束 endmodule                 //模块结束   【解说】function函数   function函数的目的是返回一个用于表达式的值 ,函数的形式为:   function 返回值位宽或类型说明 函数名;     端口定义;     局部变量定义;     其他语句;   endfunction   在例2中,用到了fun
显示全部
相似文档