先来回答上周的两个问题。问题1、 8位循环移位寄存器源代码- module shift
- (
- input clk,rstn,
- output reg [7:0] dout
- );
- /***************************************/
- always@(posedge clk or negedge rstn)
- begin
- if(!rstn)
- dout[7:0]<=8'b00000001;
- else
- dout[7:0]<={dout[6:0],dout[7]};
- end
- /***************************************/
- endmodule
复制代码对于这个题目,其实主要想让大家了解reg寄存器类型,还有就是练习位拼接符{}。一般的,我们在给模块复位、清零或置数等的时候,会使用异步操作。这样用有什么用呢?就是在复位、清零或置数等的时候是可以独立进行,不受时钟的约束。
问题2、D触发器(上升沿触发)源代码如下:(参考)
- module d
- (
- input clk,clr,din,
- output q;
- );
- reg din,q;
- /***************************************/
- always@(posedge clk)
- if(clr)
- q<=0;
- else
- q<=din;
- /***************************************/
- endmodule
复制代码本周要开始练习时序器件了,那么什么是时序器件?一个时序器件(指触发器或锁存器)就是一个一位存储器。锁存器是电平敏感存储器件,触发器是沿触发存储器件。触发器也被称为寄存器,在程序中体现为对上升沿或下降沿的探测,Verilog 中采用如下方法表示:posedgeclk-------- 上升沿negedgeclk-------- 下降沿 本周题目是:用VerilogHDL
设计1、带同步置位、上升沿触发的触发器2、带异步复位和时钟使能、上升沿触发的触发
下周练习预告:分频器设计
往期回顾:【FPGA每周一练】FPGA的HDL建模第三周
【FPGA每周一练】FPGA的HDL建模第二周
【FPGA每周一练】FPGA的HDL建模第一周
一周热门 更多>