🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: cn.bbs.sci.electronics
Article #252

����һ��Verilog����~!!!лл��Ϻ

#252
From: ��
Date: Fri, 02 Dec 2005 09:04
95 lines
3559 bytes
Ŀ�������һ��˳�����������ʹ�ò���������Ԥ����Ӧ�ļ����в��ԡ�
�ҵij�����:
`timescale 1ns / 1ns
module control (rd, wr, ld_ir, ld_acc, ld_pc, inc_pc, halt, data_e, sel,opcode
, zero, clk, rst);
`define output1 {rd,wr,ld_ir,ld_acc,ld_pc,inc_pc,halt,data_e,sel}
  output       rd, wr, ld_ir, ld_acc, ld_pc, inc_pc, halt, data_e, sel;  
  input [2:0]  opcode;
  input        zero, clk, rst;
  reg rd,wr,ld_ir,ld_acc, ld_pc, inc_pc, halt, data_e, sel;
  reg state=1'd0;
  
  
  task t1;
  input [2:0]opcode1;
  output[8:0]output12;
  begin
  case(opcode1)
  3'b010,3'b011,3'b100,3'b101 :output12=9'b100000000;
  3'b000,3'b001,3'b110,3'b111 :output12=9'b000000000;
  endcase
  end
  endtask
  task t2;
  input[2:0]opcode1; 
  input zero1;
  output [8:0]output12;
  begin
  if(zero1==1) output12=9'b000001010;
  case(opcode1)
  3'b010,3'b011,3'b100,3'b101 :output12=9'b100000000;
  3'b000,3'b001,3'b110:output12=9'b000000010;
  3'b111:output12=9'b000010010;
  endcase
  end
  endtask
  task t3;
  input [2:0] opcode1;
  input zero1;
  output [8:0]output12;
  begin
  if(zero1==1) output12=9'b000001010;
  case(opcode1)
  3'b010,3'b011,3'b100,3'b101 :output12=9'b100100000;
  3'b000,3'b001:output12=9'b000000010;
  3'b110: output12=9'b010000010;
  3'b111: output12=9'b000011010;
  endcase
  end
  endtask 
  
  
  
  
 always@(clk)
 case(state)
      1'd0: 
      begin `output1=9'b000000001;state=state+1;
      end
      1'd1: 
      begin `output1=9'b100000001;state=state+1;
      end
      1'd2: 
      begin `output1=9'b101000001;state=state+1;
      end
      1'd3: 
      begin 
      `output1=9'b101000001;state=state+1;
      end
      1'd4: 
      if(opcode==3'b000) begin `output1=9'b000001100;state=state+1;end
      else 
      begin  `output1=9'b000001000;state=state+1;state=state+1;
      end
      1'd5: begin state=state+1;t1(opcode,`output1);end
      1'd6: begin state=state+1;t2(opcode,zero,`output1);end
      1'd7: begin state=state+1;t3(opcode,zero,`output1);end
endcase

always@(rst)

if(rst==0)   
begin `output1=9'b000000000;
state=1'd0;
end
endmodule

���Ա���,���Ƿ����ʱ�����RD���ź������źŶ�����.���ڸ�ѧVHDL,��֪ԭ����ʲôϣ
����λ��Ϻ�п�����ָ��~лл:)

-- 

�� ��Դ:���Ͼ���ѧС�ٺ�վ http://bbs.nju.edu.cn[FROM: 221.226.199.254]
-- 
��ע�⣬������Ϊ����ת����Դ���Ļظ�����ת��ԭ��̳��
Technical Details
Message-ID: <dmq53r$lit$17@news.yaako.com>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!fu-berlin.de!news.cn99.com!news.yaako.com!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Thread: 100bb0,bb62f7133f60cb6a,start
X-Google-Attributes: gid100bb0,public
X-Google-Language: Chinese,GB
Path: arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!fu-berlin.de!news.cn99.com!news.yaako.com!not-for-mail
From: sirius007.bbs@bbs.nju.edu.cn-spam.invalid (��)
Newsgroups: cn.bbs.sci.electronics
Subject: ����һ��Verilog����~!!!лл��Ϻ
Date: Fri, 2 Dec 2005 17:04:29 +0800
Organization: �Ͼ���ѧС�ٺ�վ
Lines: 95
Message-ID: <dmq53r$lit$17@news.yaako.com>
NNTP-Posting-Host: 218.94.142.3
Content-Type: text/plain; charset=GB2312
X-Trace: news.yaako.com 1133549499 22109 218.94.142.3 (2 Dec 2005 18:51:39 GMT)
X-Complaints-To: usenet@news.yaako.com
NNTP-Posting-Date: Fri, 2 Dec 2005 18:51:39 +0000 (UTC)
User-Agent: Hamster web->news Gateway
X-Suggestion-To: web2news at gmail dot com