首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | 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  
继承事业,薪火相传
返回列表