首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

用VERILOG实现门级D触发器和RS触发器

用VERILOG实现门级D触发器和RS触发器

            同步RS触发器的Verilog-HDL描述
            /* SY_RS_FF */
            module SY_RS_FF ( R, S, CLK, Q, QB ); //模块名及参数定义,范围至endmodule。
              input R, S, CLK;         //输入端口定义
              output Q, QB;          //输出端口定义
              reg Q;              //寄存器定义
              assign QB = ~Q;         //assign语句,QB=/Q。
              always @( posedge CLK )     //在CLK的上跳沿,执行以下语句。
              case ({ R ,S })         //case语句,至于endcase为止。
                1 <= 1;          //当R,S的组合为01,则令Q=1。
                2 <= 0;          //当R,S的组合为01,则令Q=1。
                3 <= 1'bx;         //当R,S的组合为11,则令Q为1bit的数,数值为不定(x)。
              endcase            //case语句结束
            endmodule              //模块结束



带有R端D触发器的Verilog-HDL描述
            
            /* R_SY_D_FF */
            
            module R_SY_D_FF ( RB, D, CLK, Q, QB );  //模块名及参数定义,范围至endmodule。            
              input             RB, D, CLK;           //输入端口定义
              output Q, QB ;            //输出端口定义
              reg Q;                //寄存器定义

            
              assign             QB = ~Q;             //assign语句,QB=/Q。
              always @( posedge CLK or negedge RB ) //如果CLK端有上跳或RB端有下跳脉冲,
                                  //则执行下面(Q <= ( !RB )? 0: D;)的语句。
              Q <= ( !RB )? 0: D;           //如果RB是低电平,则Q=0,否则Q=D。
            endmodule                  //模块结束
继承事业,薪火相传
返回列表