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

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

?? risc.v

?? 嵌入式risc處理器源碼
?? V
字號:
/*********************************************************
 MODULE:		Sub Level RISC uProcessor Block

 FILE NAME:	risc.v
 VERSION:	1.0
 DATE:		May 7th, 2002
 AUTHOR:		Hossein Amidi
 COMPANY:	
 CODE TYPE:	Register Transfer Level

 DESCRIPTION:	This module is the top level RTL code of RISC uProcessor verilog code. 
 
 It will instantiate the following blocks in the ASIC:

 1) Program Counter
 2) Instruction Register
 3) Accumulator
 4) Arithmatic Logic Unit
 5) Multiplexer
 6) Multiplexer
 7) Control Unit

 Hossein Amidi
 (C) April 2002

*********************************************************/

// DEFINES
`timescale 1ns / 10ps
 
// TOP MODULE
module risc(// Inputs
				reset,
				clk0,
				pll_lock,
				interrupt,
				cmdack,
				dcache_datain,
				dcache_hit,
				dcache_miss,
				icache_datain,
				icache_hit,
				icache_miss,
				dma_datain,
				dma_busy,
				timer_host_datain,
				flash_host_datain,
				uart_host_datain,
				mem_datain,
				// Outputs
				paddr,
				cmd,
				dm,
				dcache_request,
				icache_request,
				dma_dataout,
				dcache_dataout,
				icache_dataout,
				timer_host_dataout,
				flash_host_dataout,
				uart_host_dataout,
				mem_dataout,
				mem_req,
				mem_rdwr,
				halted
				);


// Parameter
`include        "parameter.v"


// Inputs
input reset;
input clk0;
input pll_lock;
input [irq_size - 1 : 0]interrupt;
input cmdack;
input [data_size - 1 : 0]dcache_datain;
input dcache_hit;
input dcache_miss;
input [data_size - 1 : 0]icache_datain;
input icache_hit;
input icache_miss;
input [data_size - 1 : 0]dma_datain;
input dma_busy;
input [data_size - 1 : 0]timer_host_datain;
input [data_size - 1 : 0]flash_host_datain;
input [data_size - 1 : 0]uart_host_datain;
input [data_size - 1 : 0]mem_datain;

// Outputs
output [padd_size - 1 : 0]paddr;
output [cmd_size  - 1 : 0]cmd;
output [dqm_size  - 1 : 0]dm;
output dcache_request;
output icache_request;
output [data_size - 1 : 0]dma_dataout;
output [data_size - 1 : 0]dcache_dataout;
output [data_size - 1 : 0]icache_dataout;
output [data_size - 1 : 0]timer_host_dataout;
output halted;
output [data_size - 1 : 0]flash_host_dataout;
output [data_size - 1 : 0]uart_host_dataout;
output [data_size - 1 : 0]mem_dataout;
output mem_req;
output mem_rdwr;

// Signal Declarations
wire reset;
wire clk0;
wire pll_lock;
wire [irq_size - 1 : 0]interrupt;
wire cmdack;
wire [data_size - 1 : 0]dcache_datain; 
wire dcache_hit;
wire dcache_miss;
wire [data_size - 1 : 0]icache_datain; 
wire icache_hit;
wire icache_miss;
wire [data_size - 1 : 0]dma_datain;
wire dma_busy;
wire [data_size - 1 : 0]timer_host_datain;
wire [data_size - 1 : 0]flash_host_datain;
wire [data_size - 1 : 0]uart_host_datain;
wire [data_size - 1 : 0]mem_datain;
wire ready;


wire [padd_size - 1 : 0]paddr;
reg [cmd_size  - 1 : 0]cmd;
reg [dqm_size  - 1 : 0]dm;
wire dcache_request;
wire icache_request;
wire [data_size - 1 : 0]dma_dataout;
wire [data_size - 1 : 0]dcache_dataout;
wire [data_size - 1 : 0]icache_dataout;
wire [data_size - 1 : 0]timer_host_dataout;
wire halted;
wire [data_size - 1 : 0]flash_host_dataout;
wire [data_size - 1 : 0]uart_host_dataout;
wire [data_size - 1 : 0]mem_dataout;
wire mem_req;
wire mem_rdwr;

reg [data_size - 1 : 0]rdma_datain;
reg rdcache_miss;
reg rdcache_hit;
reg [data_size - 1 : 0]rdcache_datain; 
reg ricache_miss;
reg ricache_hit;
reg [data_size - 1 : 0]ricache_datain; 
reg [irq_size - 1 : 0]rinterrupt;


// Assignment statments


// Signal Declerations
wire [AddrWidth - 1 : 0] instraddress;
wire [DataWidth - 1 : 0] aludataout;
wire pcinen;
wire [AddrWidth - 1 : 0] operandaddress;
wire [OpcodeWidth - 1 : 0] opcode;
wire [DataWidth - 1 : 0] datain;
wire irinen;
wire [DataWidth - 1 : 0] accdataout;
wire accneg;
wire acczero;
wire accinen;
wire [StateSize - 1 : 0] currentstate;
wire [DataWidth - 1 : 0] mux16out;
wire [AddrWidth - 1 : 0] address;
wire addresssel;
wire alusrcbsel;
wire walusrcbsel;
wire accouten;

wire memreq;
wire rdwrbar;

reg Rd_req;
reg Wr_req;
wire [DataWidth - 1 : 0] dataout;
wire Halted;
//wire [DataWidth - 1 : 0] datain;


// Assignments
assign halted = Halted;
assign ready = cmdack;
assign paddr = address;
assign datain = dcache_hit ? datain : 32'bz;
assign mem_dataout = accouten? accdataout: 32'bz;
assign Halted = (opcode == 7) ? 1'b1 : 1'b0;

assign walusrcbsel = alusrcbsel;

assign dcache_request = Rd_req | Wr_req;
assign icache_request = Rd_req | Wr_req;


assign mem_req = memreq;
assign mem_rdwr = rdwrbar;

assign dma_dataout = mem_dataout;
assign flash_host_dataout = mem_dataout;
assign dcache_dataout = mem_dataout;
assign icache_dataout = mem_dataout;
assign timer_host_dataout = mem_dataout;
assign uart_host_dataout = mem_dataout;

always @(rdwrbar or memreq)
begin
	if((memreq == 1'b1) && (rdwrbar == 1'b1))
	begin
		Rd_req = 1'b1;
		Wr_req = 1'b0;
	end
	else
	if((memreq == 1'b1) && (rdwrbar == 1'b0))
	begin
		Rd_req = 1'b0;
		Wr_req = 1'b1;
	end
	else
	begin
		Rd_req = 1'b0;
		Wr_req = 1'b0;
	end
end


always @(memreq or Wr_req or Rd_req)
begin
	case({memreq, Wr_req, Rd_req})

		3'b100:	cmd <= 3'b000;	// NOP
		3'b101:	cmd <= 3'b001;	// ReadA
		3'b110:	cmd <= 3'b010;	// WriteA
		3'b111:	cmd <= 3'b011;	// Refresh
		3'b000:	cmd <= 3'b100;	// Preacharge
		3'b001:	cmd <= 3'b101;	// Load Mode Register
		3'b010:	cmd <= 3'b110;	// Load Timing Register
		3'b011:	cmd <= 3'b111;	// Load Refresh Counter
	endcase

end

always @(posedge reset or posedge clk0)
begin
	if (reset == 1'b1)
	begin
		dm <= 4'h0;
	end
	else
	begin
		dm <= {1'b1,rinterrupt};
	end
end


always @(posedge reset or posedge clk0)
begin
	if(reset == 1'b1)
	begin
		rdma_datain <= 32'h0;
		rdcache_miss <= 1'b0;
		rdcache_hit <= 1'b0;
		rdcache_datain <= 32'h0;
		ricache_miss <= 1'b0;
		ricache_hit <= 1'b0;
		ricache_datain <= 32'h0;
		rinterrupt <= 3'b0;
	end
	else
	begin
		rdma_datain <= dma_datain;
		rdcache_miss <= dcache_miss;
		rdcache_hit <= dcache_hit & rdcache_hit;
		rdcache_datain <= dcache_datain;
		ricache_miss <= icache_miss;
		ricache_hit <= icache_hit & ricache_hit;
		ricache_datain <= icache_datain;
		rinterrupt <= interrupt;
	end
end





/***************************** Instantiation **************************/

// RISC CPU's Program Counter Instantiation
PC ProgramCounter (	// INPUT
							.clock(clk0),
							.reset(reset),
							.PCInEn(pcinen),
							.PCDataIn(aludataout[23:0]),
							// OUTPUT
							.PCDataOut(instraddress)
							);


// RISC CPU's Instruction Register Instantiation
IR InstructionRegister (	// Input
									.clock(clk0),
									.reset(reset),
									.IRInEn(irinen),
									.IRDataIn(mem_datain),
									// Output
									.OperandOut(operandaddress),
									.OpCodeOut(opcode)
									);


// RISC CPU's Accumulator Instantiation
ACC Accumulator (	// Input
						.clock(clk0),
						.reset(reset),
						.ACCInEn(accinen),
						.ACCDataIn(aludataout),
						// Output
						.ACCNeg(accneg),
						.ACCZero(acczero),
						.ACCDataOut(accdataout)
					);

	

// RISC CPU's Arithmatic Logic Unit Instantiation
ALU ALU 			(	// Input
						.ALUSrcA(accdataout),
						.ALUSrcB(mux16out),
						.OpCode(opcode),
						.CurrentState(currentstate),
						// Output
						.ALUDataOut(aludataout)
					);


MUX12 Mux12 		(	// Input
							.A_in(operandaddress),
							.B_in(instraddress),
							.A_Select(addresssel),
							// Output
							.Out(address)
						);


MUX16 Mux16 		(	// Input
							.A_in(address),
							.B_in(mem_datain),
							.A_Select(walusrcbsel),
							// Output
							.Out(mux16out)
						);



// RISC CPU's Control Unit Instantiation
CNTRL ControlUnit (	// Input
							.clock(clk0),
							.reset(reset),
							.OpCode(opcode),
							.ACCNeg(accneg),
							.ACCZero(acczero),
							.Grant(pll_lock),
							// Output
							.NextState(currentstate),
							.PCInEn(pcinen),
							.IRInEn(irinen),
							.ACCInEn(accinen),
							.ACCOutEn(accouten),
							.MemReq(memreq),
							.RdWrBar(rdwrbar),
							.AddressSel(addresssel),
							.ALUSrcBSel(alusrcbsel)
							);

endmodule

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩中文精品| 国产成人免费xxxxxxxx| 亚洲欧美日韩久久精品| 中文字幕av资源一区| 久久精品视频免费| 欧美激情一区二区三区蜜桃视频 | 91香蕉国产在线观看软件| 国产精品资源在线看| 国产成人免费av在线| 不卡的av在线| 色综合色狠狠综合色| 91成人看片片| 欧美精品久久久久久久多人混战| 欧美人与z0zoxxxx视频| 日韩欧美一级精品久久| 久久精品一区蜜桃臀影院| 国产精品九色蝌蚪自拍| 亚洲自拍偷拍综合| 免费在线一区观看| 国产高清精品在线| 91网站视频在线观看| 欧美日韩国产美女| 另类小说欧美激情| 美女视频免费一区| 成人一区二区三区在线观看| 97se亚洲国产综合自在线观| 欧美最猛黑人xxxxx猛交| 91精品国产91久久久久久最新毛片| 日韩免费福利电影在线观看| 国产日韩欧美在线一区| 亚洲永久精品国产| 国内精品久久久久影院色| www.欧美色图| 日韩视频在线永久播放| 18成人在线观看| 久久精品国产99国产| 成人av在线观| 欧美成人video| 亚洲欧美日韩一区二区三区在线观看| 日韩黄色在线观看| 99精品在线观看视频| 日韩一本二本av| 一区二区三区久久| 国产91富婆露脸刺激对白| 欧美三级视频在线观看| 国产精品久99| 国产一区二区视频在线播放| 欧美又粗又大又爽| 国产三级三级三级精品8ⅰ区| 日韩极品在线观看| 一本色道久久综合亚洲精品按摩| 欧美xxxxx牲另类人与| 一区二区激情小说| 不卡av在线免费观看| 精品国产乱码91久久久久久网站| 亚洲高清免费观看 | 美女一区二区视频| 一本色道久久综合精品竹菊| 2021中文字幕一区亚洲| 午夜久久久影院| 欧美午夜影院一区| 亚洲精品日日夜夜| 99精品视频在线观看免费| 国产日韩精品一区二区三区| 韩国一区二区在线观看| 日韩一区二区免费电影| 日韩不卡免费视频| 欧美高清你懂得| 视频一区中文字幕国产| 色久优优欧美色久优优| 亚洲欧美一区二区久久 | 欧美福利一区二区| 午夜精品在线看| 欧美精品久久一区| 日韩av在线发布| 日韩一二三区视频| 国模少妇一区二区三区| 精品少妇一区二区三区在线视频| 青椒成人免费视频| 日韩一级二级三级| 精品在线你懂的| 国产欧美一区二区精品忘忧草| 国产精品亚洲а∨天堂免在线| 精品奇米国产一区二区三区| 精品亚洲porn| 欧美激情一区二区三区全黄| 成人黄页在线观看| 一区二区三区中文在线| 欧美天堂亚洲电影院在线播放| 亚洲国产精品一区二区www| 欧美精品九九99久久| 美女脱光内衣内裤视频久久影院| 久久久久久久综合| 91在线视频官网| 无码av免费一区二区三区试看| 制服.丝袜.亚洲.中文.综合| 国产精品99久久久久久宅男| 亚洲视频图片小说| 欧美一区二区三区在线观看视频| 精品夜夜嗨av一区二区三区| 国产精品天美传媒沈樵| 欧美专区在线观看一区| 经典三级视频一区| 亚洲裸体xxx| 日韩欧美不卡一区| 成人app网站| 日韩成人av影视| 亚洲天堂网中文字| 日韩欧美国产系列| 色哟哟精品一区| 精品一区二区日韩| 亚洲一区二区四区蜜桃| 久久夜色精品国产噜噜av | 亚洲夂夂婷婷色拍ww47| 久久综合九色综合欧美就去吻| 91欧美一区二区| 国产一区二区三区免费播放 | 日韩免费高清av| 色综合网色综合| 国产精品自拍av| 日本不卡一二三| 亚洲一区在线观看视频| 国产色综合一区| 日韩一区二区在线观看视频播放| 99免费精品在线观看| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲一区在线视频| 成人欧美一区二区三区1314| 日韩女优电影在线观看| 欧美撒尿777hd撒尿| av一区二区三区| 国产精品18久久久久久久久| 久久精品久久久精品美女| 亚洲国产另类精品专区| 亚洲精品欧美综合四区| 中文字幕精品一区二区三区精品 | 亚洲国产成人在线| 欧美一区二区三区四区视频| 在线欧美小视频| 色老头久久综合| 色综合天天性综合| 成人开心网精品视频| 国产精品69久久久久水密桃| 国内精品嫩模私拍在线| 蜜桃av一区二区三区电影| 日日夜夜免费精品视频| 丝袜美腿亚洲综合| 性做久久久久久| 日本欧美一区二区三区乱码 | 国产专区综合网| 国产精品一区二区久久精品爱涩| 美女免费视频一区| 精品一区二区三区久久| 国产精品66部| 粉嫩一区二区三区在线看| 成人一区二区三区中文字幕| bt欧美亚洲午夜电影天堂| www.亚洲免费av| 色婷婷综合五月| 欧美日韩电影一区| 欧美一区二区三区在线电影| 精品国产一区二区精华| 久久精品亚洲精品国产欧美| 国产视频一区在线观看| 亚洲天天做日日做天天谢日日欢| 亚洲黄色小视频| 日韩电影免费在线观看网站| 久久97超碰国产精品超碰| 爽爽淫人综合网网站| 欧美经典一区二区| 精品动漫一区二区三区在线观看| 五月天一区二区| 国产精品一区久久久久| 99久久99久久免费精品蜜臀| 岛国精品在线观看| 92国产精品观看| 欧美一区二区视频免费观看| 亚洲精品一区二区三区99| 国产精品丝袜久久久久久app| 亚洲精品一二三四区| 青娱乐精品在线视频| 国产成人免费视频网站高清观看视频| 色综合视频一区二区三区高清| 3atv在线一区二区三区| 久久久蜜臀国产一区二区| 一区二区三区四区亚洲| 美女一区二区久久| 91天堂素人约啪| 日韩欧美国产综合| 亚洲欧美日本在线| 国产精品亚洲专一区二区三区| 日韩网站在线看片你懂的| 国产精品系列在线| 日韩国产一区二| 91亚洲国产成人精品一区二区三| 日韩欧美精品在线视频| 亚洲自拍偷拍综合| 成人av在线一区二区三区| 欧美一区日韩一区| 亚洲色图清纯唯美|