【FPGA每周一练】第四周:用Verilog HDL设计

2019-07-16 00:18发布

先来回答上周的两个问题。问题1       8位循环移位寄存器源代码
  1. module shift
  2.         (
  3.         input                                clk,rstn,
  4.         output        reg        [7:0]                dout
  5.         );
  6. /***************************************/
  7. always@(posedge clk or negedge rstn)
  8.         begin
  9.         if(!rstn)
  10.                 dout[7:0]<=8'b00000001;
  11.         else
  12.                 dout[7:0]<={dout[6:0],dout[7]};
  13.         end
  14. /***************************************/
  15. endmodule


复制代码
对于这个题目,其实主要想让大家了解reg寄存器类型,还有就是练习位拼接符{}。一般的,我们在给模块复位、清零或置数等的时候,会使用异步操作。这样用有什么用呢?就是在复位、清零或置数等的时候是可以独立进行,不受时钟的约束。


问题2D触发器(上升沿触发)源代码如下:(参考)
  1. module d
  2.         (
  3.         input        clk,clr,din,
  4.         output        q;
  5.         );
  6.         reg din,q;
  7. /***************************************/
  8. always@(posedge clk)
  9.         if(clr)
  10.                 q<=0;
  11.         else
  12.                 q<=din;
  13. /***************************************/        
  14. endmodule
复制代码
本周要开始练习时序器件了,那么什么是时序器件?一个时序器件(指触发器或锁存器)就是一个一位存储器。锁存器是电平敏感存储器件,触发器是沿触发存储器件。触发器也被称为寄存器,在程序中体现为对上升沿或下降沿的探测,Verilog 中采用如下方法表示:posedgeclk-------- 上升沿negedgeclk-------- 下降沿 本周题目是:用VerilogHDL设计1、带同步置位、上升沿触发的触发器2、带异步复位和时钟使能、上升沿触发的触发
下周练习预告:分频器设计
往期回顾:【FPGA每周一练】FPGA的HDL建模第三周
【FPGA每周一练】FPGA的HDL建模第二周
【FPGA每周一练】FPGA的HDL建模第一周


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。