⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 seq_rec_3_1s_shft_reg.v

📁 Vlerilog HDL高级数字设计源码
💻 V
字号:
module Seq_Rec_3_1s_Mealy_Shft_Reg (D_out, D_in, En, clk, reset);  	   
  output 		D_out;					 
  input 		D_in, En;
  input 		clk, reset;
  parameter		Empty = 2'b00;
  reg		[1:0] 	Data;
   					 
  always @ (negedge clk) 
    if (reset == 1) Data <= Empty; else if (En  == 1) Data <= {D_in, Data[1]}; 

  assign D_out = ((Data == 2'b11) && (D_in == 1 ));	// Mealy output
endmodule

module Seq_Rec_3_1s_Moore_Shft_Reg (D_out, D_in, En, clk, reset);  	   
  output 		D_out;	
  input 		D_in, En;
  input 		clk, reset;
  parameter		Empty = 2'b00;
  reg		[2:0] 	Data;
   					 
  always @ (negedge clk) 
    if (reset == 1) Data <= Empty; else if (En == 1) Data <= {D_in, Data[2:1]}; 

  assign D_out = (Data == 3'b111);     // Moore output
endmodule

 
module t_Seq_Rec_3_1s ();
  reg D_in, En, clk, reset;  
	   
  wire D_out_Mealy;
  wire D_out_Moore;
 
  Seq_Rec_3_1s_Mealy_Shft_Reg M0 (D_out_Mealy, D_in, En, clk, reset);  	   
   Seq_Rec_3_1s_Moore_Shft_Reg M1 (D_out_Moore, D_in, En, clk, reset);  	   

  initial #275 $finish;

  initial begin #5 reset = 1; #1 reset = 0; end
  initial begin
    clk = 0; forever #10 clk = ~clk;  
  end
  initial begin
    #5 En = 1;
   //#50 En = 0;
  end
 /*
  initial fork 
    begin #10 D_in = 0;    #25 D_in = 1;    #80 D_in = 0; end
    begin #135 D_in = 1; #40 D_in = 0; end
    begin #195 D_in = 1'bx; #60 D_in = 0; end
   join
*/
  initial fork
    #10 D_in = 0;    
    #35 D_in = 1;    #45 D_in = 0; 
    #55 D_in = 1;    #65 D_in = 0;
    #75 D_in = 1;    #85 D_in = 0; 
    #95 D_in = 1;    #105 D_in = 0; 
    #135 D_in = 1; #145 D_in = 0; #155 D_in = 1; #165 D_in = 0; 
    #195 D_in = 1'bx; #250 D_in = 0; 
  join
endmodule
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -