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

D触发器Verilog描述

D触发器Verilog描述

今日偶然看到一些知名企业的笔试试题,随便扫描了下,看到有几道关于FPGA/CPLD的题目,小小的编程题,用VerilogHDL或VHDL语言编触发器,脑袋转了一下,模糊似乎清晰,清晰又像浸入模糊,呵呵。。。上半年,由于Boss项目,学习了FPGA,学的有点急,也断断续续的,才过几个月,似乎知识已经远去,打开电脑,速览以前的资料,记忆又回来了。。。简单记录下这道题,权当回忆。。。
  • //基本D触发器
module D_EF(Q,D,CLK)
input D,CLK;
output Q;
reg Q;                           //在always语句中被赋值的信号要声明为reg类型 寄存器定义
always @ (posedge CLK) //上升沿,下降沿用negedge表示,^_^ 需要记忆
       begin Q <= D; end
endmodule

  • //带异步清0、异步置1的D触发器
module D_EF(q,qn,d,clk,set,reset)
input d,clk,set,reset;
output q,qn;
reg q,qn;//寄存器定义
always @ (posedge clk or negedge set or negedge reset)
       begin
              if(!reset) begin q<=0;qn<=1;end//异步清0,低有效
              else if(!set) begin q<=1;qn<=1;end //异步置1,低有效
              else begin q<=~d;qn<=~d;end
       end   
endmodule

  • //带同步清0、同步置1的D触发器
module D_EF(q,qn,d,clk,set,reset)
input d,clk,set,reset;
output q,qn;
reg q,qn;
always @ (posedge clk)
       begin
              if(reset) begin q<=0;qn<=1;end//同步清0,高有效
              else if(set) begin q<=1;qn<=1;end //同步置1,高有效
              else begin q<=~d;qn<=~d;end
       end   
endmodule
继承事业,薪火相传
返回列表