亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? addvb_models_7.v.txt

?? Vlerilog HDL高級數字設計源碼
?? TXT
?? 第 1 頁 / 共 3 頁
字號:

module Binary_Counter_Part_RTL (count, enable, clk, rst);
  parameter		size = 4;
  output 	[size -1: 0]	count;
  input			enable;
  input			clk, rst;
  wire			enable_DP;

  Control_Unit  M0 (enable_DP, enable, clk, rst);
  Datapath_Unit M1 (count, enable_DP, clk, rst);
endmodule

module Control_Unit  (enable_DP, enable, clk, rst);
  output 		enable_DP;
  input		enable;
  input		clk, rst;			// Not needed 

  wire 		enable_DP = enable;	// pass through

endmodule

module Datapath_Unit (count, enable, clk, rst);
  parameter	size = 4;
  output 		[size-1: 0] count;
  input		enable;
  input		clk, rst;
  reg		count;
  wire		[size-1: 0] next_count;

  always @ (posedge clk) 
    if (rst == 1) count <= 0; 
      else if (enable == 1) count <= next_count(count);

  function 	[size-1: 0] 	next_count;
    input 		[size-1: 0] 	count;
    begin
      next_count = count + 1;
    end
  endfunction
endmodule



module Control_Unit_by_3  (enable_DP, enable, clk, rst);
  output 		enable_DP;
  input		enable;
  input		clk, rst;		// Not needed 

  reg 		enable_DP;

  always begin: Cycle_by_3
    @ (posedge clk) enable_DP  <= 0;
    if ((rst == 1) || (enable != 1)) disable Cycle_by_3; else 
      @ (posedge clk) 
         if ((rst == 1) || (enable != 1)) disable Cycle_by_3; else 
          @ (posedge clk) 
            if ((rst == 1) || (enable != 1)) disable Cycle_by_3; 
             else enable_DP <= 1;
  end // Cycle_by_3
endmodule


module RISC_SPM (clk, rst);
  parameter word_size = 8;
  parameter Sel1_size = 3;
  parameter Sel2_size = 2;
  wire [Sel1_size-1: 0] Sel_Bus_1_Mux;
  wire [Sel2_size-1: 0] Sel_Bus_2_Mux;

  input clk, rst;

  // Data Nets
  wire zero;
  wire [word_size-1: 0] instruction, address, Bus_1, mem_word;
   
  // Control Nets
  wire Load_R0, Load_R1, Load_R2, Load_R3, Load_PC, Inc_PC, Load_IR;   
  wire Load_Add_R, Load_Reg_Y, Load_Reg_Z;
  wire write;
 
  Processing_Unit M0_Processor 
    (instruction, zero, address, Bus_1, mem_word, Load_R0, Load_R1,
    Load_R2, Load_R3, Load_PC, Inc_PC, Sel_Bus_1_Mux, Load_IR, 
    Load_Add_R, Load_Reg_Y,
    Load_Reg_Z,  Sel_Bus_2_Mux, clk, rst);

  Control_Unit M1_Controller (Load_R0, Load_R1, Load_R2, Load_R3, Load_PC, Inc_PC, 
    Sel_Bus_1_Mux, Sel_Bus_2_Mux , Load_IR, Load_Add_R, Load_Reg_Y, Load_Reg_Z, 
    write, instruction, zero, clk, rst);

  Memory_Unit M2_SRAM (
    .data_out(mem_word), 
    .data_in(Bus_1), 
    .address(address), 
    .clk(clk),
    .write(write) );
endmodule


      
module Processing_Unit (instruction, Zflag, address, Bus_1, mem_word, Load_R0, Load_R1, Load_R2, 
  Load_R3, Load_PC, Inc_PC, Sel_Bus_1_Mux, Load_IR, Load_Add_R, Load_Reg_Y, Load_Reg_Z, 
  Sel_Bus_2_Mux, clk, rst);

  parameter word_size = 8;
  parameter op_size = 4;
  parameter Sel1_size = 3;
  parameter Sel2_size = 2;

  output [word_size-1: 0] 	instruction, address, Bus_1;
  output 			Zflag;

  input [word_size-1: 0]  	mem_word;
  input 			Load_R0, Load_R1, Load_R2, Load_R3, Load_PC, Inc_PC;
  input [Sel1_size-1: 0] 	Sel_Bus_1_Mux;
  input [Sel2_size-1: 0] 	Sel_Bus_2_Mux;
  input 			Load_IR, Load_Add_R, Load_Reg_Y, Load_Reg_Z;
  input 			clk, rst;

  wire			Load_R0, Load_R1, Load_R2, Load_R3;
  wire [word_size-1: 0] 	Bus_2;
  wire [word_size-1: 0] 	R0_out, R1_out, R2_out, R3_out;
  wire [word_size-1: 0] 	PC_count, Y_value, alu_out;
  wire 			alu_zero_flag;
  wire [op_size-1 : 0] 	opcode = instruction [word_size-1: word_size-op_size];

  Register_Unit 		R0 	(R0_out, Bus_2, Load_R0, clk, rst);
  Register_Unit 		R1 	(R1_out, Bus_2, Load_R1, clk, rst);
  Register_Unit 		R2 	(R2_out, Bus_2, Load_R2, clk, rst);
  Register_Unit 		R3 	(R3_out, Bus_2, Load_R3, clk, rst);
  Register_Unit 		Reg_Y 	(Y_value, Bus_2, Load_Reg_Y, clk, rst);
  D_flop 			Reg_Z 	(Zflag, alu_zero_flag, Load_Reg_Z, clk, rst);
  Address_Register 	Add_R	(address, Bus_2, Load_Add_R, clk, rst);
  Instruction_Register	IR	(instruction, Bus_2, Load_IR, clk, rst);
  Program_Counter 	PC	(PC_count, Bus_2, Load_PC, Inc_PC, clk, rst);
  Multiplexer_5ch 		Mux_1 	(Bus_1, R0_out, R1_out, R2_out, R3_out, PC_count, Sel_Bus_1_Mux);
  Multiplexer_3ch 		Mux_2	(Bus_2, alu_out, Bus_1, mem_word, Sel_Bus_2_Mux);
  Alu_RISC 		ALU	(alu_zero_flag, alu_out, Y_value, Bus_1, opcode);
endmodule 

module Register_Unit (data_out, data_in, load, clk, rst);
  parameter 		word_size = 8;
  output [word_size-1: 0] 	data_out;
  input 	[word_size-1: 0] 	data_in;
  input 			load;
  input 			clk, rst;
  reg 	[word_size-1: 0]	data_out;

  always @ (posedge clk or negedge rst)
    if (rst == 0) data_out <= 0; else if (load) data_out <= data_in;
endmodule

module D_flop (data_out, data_in, load, clk, rst);
  output 		data_out;
  input 		data_in;
  input 		load;
  input 		clk, rst;
  reg 		data_out;

  always @ (posedge clk or negedge rst)
    if (rst == 0) data_out <= 0; else if (load == 1)data_out <= data_in;
endmodule

 module Address_Register (data_out, data_in, load, clk, rst);
  parameter word_size = 8;
  output [word_size-1: 0] 	data_out;
  input 	[word_size-1: 0] 	data_in;
  input 			load, clk, rst;
  reg 	[word_size-1: 0]	data_out;
  always @ (posedge clk or negedge rst)
    if (rst == 0) data_out <= 0; else if (load) data_out <= data_in;
endmodule

module Instruction_Register (data_out, data_in, load, clk, rst);
  parameter word_size = 8;
  output [word_size-1: 0] 	data_out;
  input 	[word_size-1: 0] 	data_in;
  input 			load;
  input 			clk, rst;
  reg 	[word_size-1: 0]	data_out;
  always @ (posedge clk or negedge rst)
    if (rst == 0) data_out <= 0; else if (load) data_out <= data_in; 
endmodule

module Program_Counter (count, data_in, Load_PC, Inc_PC, clk, rst);
  parameter word_size = 8;
  output [word_size-1: 0] 	count;
  input 	[word_size-1: 0] 	data_in;
  input 			Load_PC, Inc_PC;
  input 			clk, rst;
  reg 	[word_size-1: 0]	count;
  always @ (posedge clk or negedge rst)
    if (rst == 0) count <= 0; else if (Load_PC) count <= data_in; else if  (Inc_PC) count <= count +1;
endmodule

module Multiplexer_5ch (mux_out, data_a, data_b, data_c, data_d, data_e, sel);
  parameter word_size = 8;
  output [word_size-1: 0] 	mux_out;
  input 	[word_size-1: 0] 	data_a, data_b, data_c, data_d, data_e;
  input 	[2: 0] sel;
 
  assign  mux_out = (sel == 0) 	? data_a: (sel == 1) 
        ? data_b : (sel == 2) 
        ? data_c: (sel == 3) 
        ? data_d : (sel == 4) 
        ? data_e : 'bx;
endmodule

module Multiplexer_3ch (mux_out, data_a, data_b, data_c, sel);
  parameter 	word_size = 8;
  output 		[word_size-1: 0]	 mux_out;
  input 		[word_size-1: 0] 	data_a, data_b, data_c;
  input 		[1: 0] sel;

  assign  mux_out = (sel == 0) ? data_a: (sel == 1) ? data_b : (sel == 2) ? data_c: 'bx;
endmodule
 


/*ALU Instruction		Action
ADD			Adds the datapaths to form data_1 + data_2.
SUB			Subtracts the datapaths to form data_1 - data_2.
AND			Takes the bitwise-and of the datapaths, data_1 & data_2.
NOT			Takes the bitwise Boolean complement of data_1.
*/
// Note: the carries are ignored in this model.
 
module Alu_RISC (alu_zero_flag, alu_out, data_1, data_2, sel);
  parameter word_size = 8;
  parameter op_size = 4;
  // Opcodes
  parameter NOP 	= 4'b0000;
  parameter ADD 	= 4'b0001;
  parameter SUB 	= 4'b0010;
  parameter AND 	= 4'b0011;
  parameter NOT 	= 4'b0100;
  parameter RD  		= 4'b0101;
  parameter WR		= 4'b0110;
  parameter BR		= 4'b0111;
  parameter BRZ 		= 4'b1000;

  output 			alu_zero_flag;
  output [word_size-1: 0] 	alu_out;
  input 	[word_size-1: 0] 	data_1, data_2;
  input 	[op_size-1: 0] 	sel;
  reg 	[word_size-1: 0]	alu_out;

  assign  alu_zero_flag = ~|alu_out;
  always @ (sel or data_1 or data_2)  
     case  (sel)
      NOP:	alu_out = 0;
      ADD:	alu_out = data_1 + data_2;  // Reg_Y + Bus_1
      SUB:	alu_out = data_2 - data_1;
      AND:	alu_out = data_1 & data_2;
      NOT:	alu_out = ~ data_2;	 // Gets data from Bus_1
      default: 	alu_out = 0;
    endcase 
endmodule


module Control_Unit (
  Load_R0, Load_R1, 
  Load_R2, Load_R3, 
  Load_PC, Inc_PC, 
  Sel_Bus_1_Mux, Sel_Bus_2_Mux,
  Load_IR, Load_Add_R, Load_Reg_Y, Load_Reg_Z, 
  write, instruction, zero, clk, rst);
 
  parameter word_size = 8, op_size = 4, state_size = 4;
  parameter src_size = 2, dest_size = 2, Sel1_size = 3, Sel2_size = 2;
  // State Codes
  parameter S_idle = 0, S_fet1 = 1, S_fet2 = 2, S_dec = 3;
  parameter  S_ex1 = 4, S_rd1 = 5, S_rd2 = 6;  
  parameter S_wr1 = 7, S_wr2 = 8, S_br1 = 9, S_br2 = 10, S_halt = 11;  
  // Opcodes
  parameter NOP = 0, ADD = 1, SUB = 2, AND = 3, NOT = 4;
  parameter RD  = 5, WR =  6,  BR =  7, BRZ = 8;  
  // Source and Destination Codes  
  parameter R0 = 0, R1 = 1, R2 = 2, R3 = 3;  

  output Load_R0, Load_R1, Load_R2, Load_R3;
  output Load_PC, Inc_PC;
  output [Sel1_size-1: 0] Sel_Bus_1_Mux;
  output Load_IR, Load_Add_R;
  output Load_Reg_Y, Load_Reg_Z;
  output [Sel2_size-1: 0] Sel_Bus_2_Mux;
  output write;
  input [word_size-1: 0] instruction;
  input zero;
  input clk, rst;
 
  reg [state_size-1: 0] state, next_state;
  reg Load_R0, Load_R1, Load_R2, Load_R3, Load_PC, Inc_PC;
  reg Load_IR, Load_Add_R, Load_Reg_Y;
  reg Sel_ALU, Sel_Bus_1, Sel_Mem;
  reg Sel_R0, Sel_R1, Sel_R2, Sel_R3, Sel_PC;
  reg Load_Reg_Z, write;
  reg err_flag;

  wire [op_size-1: 0] opcode = instruction [word_size-1: word_size - op_size];
  wire [src_size-1: 0] src = instruction [src_size + dest_size -1: dest_size];
  wire [dest_size-1: 0] dest = instruction [dest_size -1: 0];
 
  // Mux selectors
  assign  Sel_Bus_1_Mux[Sel1_size-1: 0] = Sel_R0 ? 0:
				 Sel_R1 ? 1:
				 Sel_R2 ? 2:
				 Sel_R3 ? 3:
				 Sel_PC ? 4: 3'bx;  // 3-bits, sized number

  assign  Sel_Bus_2_Mux[Sel2_size-1: 0] = Sel_ALU ? 0:
				 Sel_Bus_1 ? 1:
				 Sel_Mem ? 2: 2'bx;

  always @ (posedge clk or negedge rst) begin: State_transitions

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产综合色产在线精品| 亚洲超碰精品一区二区| 久久久亚洲高清| 欧美成人猛片aaaaaaa| 91精品国产入口| 久久久久久久国产精品影院| 亚洲精品一区二区三区精华液| 4438成人网| 国产精品视频一区二区三区不卡| 精品日韩成人av| 国产精品久久久久久亚洲伦| 成人免费小视频| 亚洲一区成人在线| 国内外精品视频| 96av麻豆蜜桃一区二区| 91精品国产麻豆国产自产在线 | 欧美tk—视频vk| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 粉嫩绯色av一区二区在线观看 | 国产亚洲午夜高清国产拍精品| 国产视频一区在线播放| 亚洲制服丝袜av| 一区二区三区日韩在线观看| 亚洲欧美另类久久久精品| 日韩欧美国产精品一区| 亚洲日本中文字幕区| 日本成人在线电影网| 丁香婷婷深情五月亚洲| 欧美区视频在线观看| 国产日韩欧美高清在线| 午夜精品视频一区| 国产jizzjizz一区二区| 91精品免费在线| 国产精品成人免费| 国产成人8x视频一区二区| 欧美精品在线观看播放| 欧美国产禁国产网站cc| 九九**精品视频免费播放| 91麻豆精品国产91久久久久久| 国产精品素人一区二区| 久久福利视频一区二区| 777午夜精品视频在线播放| 亚洲国产综合在线| 欧美亚洲一区二区在线观看| 亚洲黄网站在线观看| 99精品欧美一区二区三区小说| 久久久久久久久久久久久夜| 国产在线一区二区综合免费视频| 欧美日韩在线播放一区| 青青国产91久久久久久| 欧美成人激情免费网| 韩日欧美一区二区三区| 国产亚洲欧洲997久久综合| 国产一区二区三区美女| 国产精品二区一区二区aⅴ污介绍| 成人免费视频app| 亚洲免费看黄网站| 欧美日韩视频专区在线播放| 日韩专区欧美专区| 精品国产乱码久久久久久免费| 高清国产午夜精品久久久久久| 国产精品护士白丝一区av| 欧美日韩www| 成人综合在线观看| 男人的天堂久久精品| 日韩一区二区免费电影| 激情综合五月婷婷| 国产精品电影一区二区三区| 欧美亚洲国产bt| 精品一区二区三区在线观看| 国产精品久久久一本精品| 欧美久久免费观看| 91老司机福利 在线| 精品一区免费av| 午夜av一区二区| 亚洲日穴在线视频| 国产欧美1区2区3区| 日韩美女一区二区三区四区| 欧洲视频一区二区| 色综合一区二区| 91在线视频18| www.欧美亚洲| 成人国产精品免费| 国产成人亚洲综合a∨猫咪| 久久99热99| 国产一区二区在线视频| 国产麻豆成人传媒免费观看| 国模冰冰炮一区二区| 日本中文字幕一区二区视频 | 裸体健美xxxx欧美裸体表演| 亚洲图片欧美视频| 免费视频一区二区| 美女一区二区视频| 国产成人av资源| 成人国产精品视频| 欧美性一二三区| 日韩一区二区精品葵司在线| 欧美刺激脚交jootjob| 欧美一级片免费看| 久久精品综合网| 亚洲精品中文在线| 久久se精品一区二区| 国产成人免费9x9x人网站视频| 99天天综合性| 91精品欧美一区二区三区综合在| 精品国产免费视频| 亚洲天堂网中文字| 激情六月婷婷综合| 色一情一伦一子一伦一区| 日韩一级欧美一级| 亚洲视频在线观看三级| 免费人成精品欧美精品| 不卡电影一区二区三区| 69av一区二区三区| 椎名由奈av一区二区三区| 亚洲福利一二三区| 国产一区二区0| 欧美日韩国产成人在线免费| 久久久久久久久蜜桃| 日本午夜一本久久久综合| 色诱视频网站一区| 国产精品高潮呻吟| 成人精品gif动图一区| 欧美成人午夜电影| 男人操女人的视频在线观看欧美| 91麻豆swag| 亚洲天堂中文字幕| 99re66热这里只有精品3直播 | 亚洲电影你懂得| 91蜜桃免费观看视频| 国产精品久久影院| 成人性生交大片免费看中文| 国产亚洲欧美激情| 国产成人在线色| 国产精品色婷婷| 91一区二区在线| 日韩一区在线看| 在线精品视频小说1| 亚洲小说春色综合另类电影| 欧美视频一区二区在线观看| 亚洲国产人成综合网站| 欧美精品久久天天躁| 精品一区二区三区蜜桃| 国产午夜精品理论片a级大结局| 国产91色综合久久免费分享| 亚洲国产成人午夜在线一区| 成人做爰69片免费看网站| 最好看的中文字幕久久| 91麻豆精品国产91久久久久久久久| 日韩激情中文字幕| 国产精品视频九色porn| 欧美精品一二三区| 高清av一区二区| 日韩成人一区二区三区在线观看| 精品日韩一区二区| 欧美午夜免费电影| 成人手机电影网| 日韩成人dvd| 亚洲国产一区二区视频| 欧美精品一区男女天堂| 91黄色在线观看| 成人免费观看av| 久久er99精品| 日韩激情中文字幕| 亚洲一区在线播放| 国产精品嫩草久久久久| 日韩一本二本av| 欧美日韩大陆在线| 欧美日韩一区二区三区视频| fc2成人免费人成在线观看播放| 久久99精品久久只有精品| 人人爽香蕉精品| 麻豆国产精品一区二区三区| 伊人夜夜躁av伊人久久| 亚洲猫色日本管| 有坂深雪av一区二区精品| 国产精品美女久久久久久久| 久久久一区二区三区| 亚洲国产成人私人影院tom| 久久久久久亚洲综合| 欧美激情一区不卡| 欧美激情一区二区三区四区| 国产人妖乱国产精品人妖| 中文成人综合网| 亚洲综合色区另类av| 日韩高清在线观看| 国产乱子伦一区二区三区国色天香| 国产综合色在线| 色综合一个色综合亚洲| 欧美视频你懂的| 久久影院午夜片一区| 国产欧美一区二区三区沐欲| 国产精品久久网站| 亚洲观看高清完整版在线观看| 欧美一级淫片007| www.欧美亚洲| 不卡电影一区二区三区| 国产成人精品亚洲午夜麻豆| 91国产成人在线| 日韩午夜激情视频|