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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? or1200_mem2reg.v

?? 一個(gè)開放的risc
?? V
字號(hào):
//////////////////////////////////////////////////////////////////////////                                                              ////////  OR1200's mem2reg alignment                                  ////////                                                              ////////  This file is part of the OpenRISC 1200 project              ////////  http://www.opencores.org/cores/or1k/                        ////////                                                              ////////  Description                                                 ////////  Two versions of Memory to register data alignment.          ////////                                                              ////////  To Do:                                                      ////////   - make it smaller and faster                               ////////                                                              ////////  Author(s):                                                  ////////      - Damjan Lampret, lampret@opencores.org                 ////////                                                              //////////////////////////////////////////////////////////////////////////////                                                              //////// Copyright (C) 2000 Authors and OPENCORES.ORG                 ////////                                                              //////// This source file may be used and distributed without         //////// restriction provided that this copyright statement is not    //////// removed from the file and that any derivative work contains  //////// the original copyright notice and the associated disclaimer. ////////                                                              //////// This source file is free software; you can redistribute it   //////// and/or modify it under the terms of the GNU Lesser General   //////// Public License as published by the Free Software Foundation; //////// either version 2.1 of the License, or (at your option) any   //////// later version.                                               ////////                                                              //////// This source is distributed in the hope that it will be       //////// useful, but WITHOUT ANY WARRANTY; without even the implied   //////// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      //////// PURPOSE.  See the GNU Lesser General Public License for more //////// details.                                                     ////////                                                              //////// You should have received a copy of the GNU Lesser General    //////// Public License along with this source; if not, download it   //////// from http://www.opencores.org/lgpl.shtml                     ////////                                                              ////////////////////////////////////////////////////////////////////////////// CVS Revision History//// $Log: or1200_mem2reg.v,v $// Revision 1.5  2002/09/03 22:28:21  lampret// As per Taylor Su suggestion all case blocks are full case by default and optionally (OR1200_CASE_DEFAULT) can be disabled to increase clock frequncy.//// Revision 1.4  2002/03/29 15:16:56  lampret// Some of the warnings fixed.//// Revision 1.3  2002/03/28 19:14:10  lampret// Changed define name from OR1200_MEM2REG_FAST to OR1200_IMPL_MEM2REG2//// Revision 1.2  2002/01/14 06:18:22  lampret// Fixed mem2reg bug in FAST implementation. Updated debug unit to work with new genpc/if.//// Revision 1.1  2002/01/03 08:16:15  lampret// New prefixes for RTL files, prefixed module names. Updated cache controllers and MMUs.//// Revision 1.9  2001/10/21 17:57:16  lampret// Removed params from generic_XX.v. Added translate_off/on in sprs.v and id.v. Removed spr_addr from dc.v and ic.v. Fixed CR+LF.//// Revision 1.8  2001/10/19 23:28:46  lampret// Fixed some synthesis warnings. Configured with caches and MMUs.//// Revision 1.7  2001/10/14 13:12:09  lampret// MP3 version.//// Revision 1.1.1.1  2001/10/06 10:18:36  igorm// no message//// Revision 1.2  2001/08/09 13:39:33  lampret// Major clean-up.//// Revision 1.1  2001/07/20 00:46:03  lampret// Development version of RTL. Libraries are missing.////// synopsys translate_off`include "timescale.v"// synopsys translate_on`include "or1200_defines.v"module or1200_mem2reg(addr, lsu_op, memdata, regdata);parameter width = `OR1200_OPERAND_WIDTH;//// I/O//input	[1:0]			addr;input	[`OR1200_LSUOP_WIDTH-1:0]	lsu_op;input	[width-1:0]		memdata;output	[width-1:0]		regdata;//// In the past faster implementation of mem2reg (today probably slower)//`ifdef OR1200_IMPL_MEM2REG2`define OR1200_M2R_BYTE0 4'b0000`define OR1200_M2R_BYTE1 4'b0001`define OR1200_M2R_BYTE2 4'b0010`define OR1200_M2R_BYTE3 4'b0011`define OR1200_M2R_EXTB0 4'b0100`define OR1200_M2R_EXTB1 4'b0101`define OR1200_M2R_EXTB2 4'b0110`define OR1200_M2R_EXTB3 4'b0111`define OR1200_M2R_ZERO  4'b0000reg	[7:0]			regdata_hh;reg	[7:0]			regdata_hl;reg	[7:0]			regdata_lh;reg	[7:0]			regdata_ll;reg	[width-1:0]		aligned;reg	[3:0]			sel_byte0, sel_byte1,				sel_byte2, sel_byte3;assign regdata = {regdata_hh, regdata_hl, regdata_lh, regdata_ll};//// Byte select 0//always @(addr or lsu_op) begin	casex({lsu_op[2:0], addr})	// synopsys parallel_case		{3'b01x, 2'b00}:			// lbz/lbs 0			sel_byte0 = `OR1200_M2R_BYTE3;	// take byte 3		{3'b01x, 2'b01},			// lbz/lbs 1		{3'b10x, 2'b00}:			// lhz/lhs 0			sel_byte0 = `OR1200_M2R_BYTE2;	// take byte 2		{3'b01x, 2'b10}:			// lbz/lbs 2			sel_byte0 = `OR1200_M2R_BYTE1;	// take byte 1		default:				// all other cases			sel_byte0 = `OR1200_M2R_BYTE0;	// take byte 0	endcaseend//// Byte select 1//always @(addr or lsu_op) begin	casex({lsu_op[2:0], addr})	// synopsys parallel_case		{3'b010, 2'bxx}:			// lbz			sel_byte1 = `OR1200_M2R_ZERO;	// zero extend		{3'b011, 2'b00}:			// lbs 0			sel_byte1 = `OR1200_M2R_EXTB3;	// sign extend from byte 3		{3'b011, 2'b01}:			// lbs 1			sel_byte1 = `OR1200_M2R_EXTB2;	// sign extend from byte 2		{3'b011, 2'b10}:			// lbs 2			sel_byte1 = `OR1200_M2R_EXTB1;	// sign extend from byte 1		{3'b011, 2'b11}:			// lbs 3			sel_byte1 = `OR1200_M2R_EXTB0;	// sign extend from byte 0		{3'b10x, 2'b00}:			// lhz/lhs 0			sel_byte1 = `OR1200_M2R_BYTE3;	// take byte 3		default:				// all other cases			sel_byte1 = `OR1200_M2R_BYTE1;	// take byte 1	endcaseend//// Byte select 2//always @(addr or lsu_op) begin	casex({lsu_op[2:0], addr})	// synopsys parallel_case		{3'b010, 2'bxx},			// lbz		{3'b100, 2'bxx}:			// lhz			sel_byte2 = `OR1200_M2R_ZERO;	// zero extend		{3'b011, 2'b00},			// lbs 0		{3'b101, 2'b00}:			// lhs 0			sel_byte2 = `OR1200_M2R_EXTB3;	// sign extend from byte 3		{3'b011, 2'b01}:			// lbs 1			sel_byte2 = `OR1200_M2R_EXTB2;	// sign extend from byte 2		{3'b011, 2'b10},			// lbs 2		{3'b101, 2'b10}:			// lhs 0			sel_byte2 = `OR1200_M2R_EXTB1;	// sign extend from byte 1		{3'b011, 2'b11}:			// lbs 3			sel_byte2 = `OR1200_M2R_EXTB0;	// sign extend from byte 0		default:				// all other cases			sel_byte2 = `OR1200_M2R_BYTE2;	// take byte 2	endcaseend//// Byte select 3//always @(addr or lsu_op) begin	casex({lsu_op[2:0], addr}) // synopsys parallel_case		{3'b010, 2'bxx},			// lbz		{3'b100, 2'bxx}:			// lhz			sel_byte3 = `OR1200_M2R_ZERO;	// zero extend		{3'b011, 2'b00},			// lbs 0		{3'b101, 2'b00}:			// lhs 0			sel_byte3 = `OR1200_M2R_EXTB3;	// sign extend from byte 3		{3'b011, 2'b01}:			// lbs 1			sel_byte3 = `OR1200_M2R_EXTB2;	// sign extend from byte 2		{3'b011, 2'b10},			// lbs 2		{3'b101, 2'b10}:			// lhs 0			sel_byte3 = `OR1200_M2R_EXTB1;	// sign extend from byte 1		{3'b011, 2'b11}:			// lbs 3			sel_byte3 = `OR1200_M2R_EXTB0;	// sign extend from byte 0		default:				// all other cases			sel_byte3 = `OR1200_M2R_BYTE3;	// take byte 3	endcaseend//// Byte 0//always @(sel_byte0 or memdata) begin`ifdef OR1200_ADDITIONAL_SYNOPSYS_DIRECTIVES`ifdef OR1200_CASE_DEFAULT	case(sel_byte0) // synopsys parallel_case infer_mux`else	case(sel_byte0) // synopsys full_case parallel_case infer_mux`endif`else`ifdef OR1200_CASE_DEFAULT	case(sel_byte0) // synopsys parallel_case`else	case(sel_byte0) // synopsys full_case parallel_case`endif`endif		`OR1200_M2R_BYTE0: begin				regdata_ll = memdata[7:0];			end		`OR1200_M2R_BYTE1: begin				regdata_ll = memdata[15:8];			end		`OR1200_M2R_BYTE2: begin				regdata_ll = memdata[23:16];			end`ifdef OR1200_CASE_DEFAULT		default: begin`else		`OR1200_M2R_BYTE3: begin`endif				regdata_ll = memdata[31:24];			end	endcaseend//// Byte 1//always @(sel_byte1 or memdata) begin`ifdef OR1200_ADDITIONAL_SYNOPSYS_DIRECTIVES`ifdef OR1200_CASE_DEFAULT	case(sel_byte1) // synopsys parallel_case infer_mux`else	case(sel_byte1) // synopsys full_case parallel_case infer_mux`endif`else`ifdef OR1200_CASE_DEFAULT	case(sel_byte1) // synopsys parallel_case`else	case(sel_byte1) // synopsys full_case parallel_case`endif`endif		`OR1200_M2R_ZERO: begin				regdata_lh = 8'h00;			end		`OR1200_M2R_BYTE1: begin				regdata_lh = memdata[15:8];			end		`OR1200_M2R_BYTE3: begin				regdata_lh = memdata[31:24];			end		`OR1200_M2R_EXTB0: begin				regdata_lh = {8{memdata[7]}};			end		`OR1200_M2R_EXTB1: begin				regdata_lh = {8{memdata[15]}};			end		`OR1200_M2R_EXTB2: begin				regdata_lh = {8{memdata[23]}};			end`ifdef OR1200_CASE_DEFAULT		default: begin`else		`OR1200_M2R_EXTB3: begin`endif				regdata_lh = {8{memdata[31]}};			end	endcaseend//// Byte 2//always @(sel_byte2 or memdata) begin`ifdef OR1200_ADDITIONAL_SYNOPSYS_DIRECTIVES`ifdef OR1200_CASE_DEFAULT	case(sel_byte2) // synopsys parallel_case infer_mux`else	case(sel_byte2) // synopsys full_case parallel_case infer_mux`endif`else`ifdef OR1200_CASE_DEFAULT	case(sel_byte2) // synopsys parallel_case`else	case(sel_byte2) // synopsys full_case parallel_case`endif`endif		`OR1200_M2R_ZERO: begin				regdata_hl = 8'h00;			end		`OR1200_M2R_BYTE2: begin				regdata_hl = memdata[23:16];			end		`OR1200_M2R_EXTB0: begin				regdata_hl = {8{memdata[7]}};			end		`OR1200_M2R_EXTB1: begin				regdata_hl = {8{memdata[15]}};			end		`OR1200_M2R_EXTB2: begin				regdata_hl = {8{memdata[23]}};			end`ifdef OR1200_CASE_DEFAULT		default: begin`else		`OR1200_M2R_EXTB3: begin`endif				regdata_hl = {8{memdata[31]}};			end	endcaseend//// Byte 3//always @(sel_byte3 or memdata) begin`ifdef OR1200_ADDITIONAL_SYNOPSYS_DIRECTIVES`ifdef OR1200_CASE_DEFAULT	case(sel_byte3) // synopsys parallel_case infer_mux`else	case(sel_byte3) // synopsys full_case parallel_case infer_mux`endif`else`ifdef OR1200_CASE_DEFAULT	case(sel_byte3) // synopsys parallel_case`else	case(sel_byte3) // synopsys full_case parallel_case`endif`endif		`OR1200_M2R_ZERO: begin				regdata_hh = 8'h00;			end		`OR1200_M2R_BYTE3: begin				regdata_hh = memdata[31:24];			end		`OR1200_M2R_EXTB0: begin				regdata_hh = {8{memdata[7]}};			end		`OR1200_M2R_EXTB1: begin				regdata_hh = {8{memdata[15]}};			end		`OR1200_M2R_EXTB2: begin				regdata_hh = {8{memdata[23]}};			end`ifdef OR1200_CASE_DEFAULT		`OR1200_M2R_EXTB3: begin`else		`OR1200_M2R_EXTB3: begin`endif				regdata_hh = {8{memdata[31]}};			end	endcaseend`else//// Straightforward implementation of mem2reg//reg	[width-1:0]		regdata;reg	[width-1:0]		aligned;//// Alignment//always @(addr or memdata) begin`ifdef OR1200_ADDITIONAL_SYNOPSYS_DIRECTIVES	case(addr) // synopsys parallel_case infer_mux`else	case(addr) // synopsys parallel_case`endif		2'b00:			aligned = memdata;		2'b01:			aligned = {memdata[23:0], 8'b0};		2'b10:			aligned = {memdata[15:0], 16'b0};		2'b11:			aligned = {memdata[7:0], 24'b0};	endcaseend//// Bytes//always @(lsu_op or aligned) begin`ifdef OR1200_ADDITIONAL_SYNOPSYS_DIRECTIVES	case(lsu_op) // synopsys parallel_case infer_mux`else	case(lsu_op) // synopsys parallel_case`endif		`OR1200_LSUOP_LBZ: begin				regdata[7:0] = aligned[31:24];				regdata[31:8] = 24'b0;			end		`OR1200_LSUOP_LBS: begin				regdata[7:0] = aligned[31:24];				regdata[31:8] = {24{aligned[31]}};			end		`OR1200_LSUOP_LHZ: begin				regdata[15:0] = aligned[31:16];				regdata[31:16] = 16'b0;			end		`OR1200_LSUOP_LHS: begin				regdata[15:0] = aligned[31:16];				regdata[31:16] = {16{aligned[31]}};			end		default:				regdata = aligned;	endcaseend`endifendmodule

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩电影在线免费观看| 久久精品国产免费| 欧美r级在线观看| 97精品视频在线观看自产线路二| 日韩福利视频网| 亚洲美女区一区| 久久精品日产第一区二区三区高清版 | 亚洲国产精品久久人人爱蜜臀| 久久久三级国产网站| 在线不卡中文字幕| 日本电影欧美片| 成人精品国产一区二区4080| 久久黄色级2电影| 亚洲成年人影院| 亚洲精品视频一区| 欧美激情艳妇裸体舞| 日韩你懂的电影在线观看| 欧美日韩一级片网站| 一道本成人在线| www.日本不卡| 岛国精品在线播放| 国产99久久久精品| 国产一区二区免费视频| 精品一区二区免费在线观看| 日韩和欧美的一区| 午夜精品视频一区| 亚洲一区二区三区四区在线免费观看| 国产精品国产三级国产a | av在线播放成人| 高清成人免费视频| 国产成人在线观看| 国产高清在线精品| 国产91丝袜在线观看| 国产福利精品一区二区| 国产综合久久久久影院| 九九视频精品免费| 老鸭窝一区二区久久精品| 久久99精品久久久| 看电影不卡的网站| 精品写真视频在线观看| 麻豆成人av在线| 精品亚洲欧美一区| 国内不卡的二区三区中文字幕| 国产在线不卡一区| 国产成+人+日韩+欧美+亚洲| 成人黄色小视频| 91视频免费播放| 欧美专区亚洲专区| 欧美精品久久99久久在免费线 | k8久久久一区二区三区| 色综合久久久久综合体| 欧美日韩亚洲国产综合| 91麻豆精品国产91久久久资源速度 | 日韩一区二区精品| 精品成人一区二区三区四区| 久久精品一区四区| 综合久久国产九一剧情麻豆| 一区二区三区精品| 免费成人av在线| 国产精品一色哟哟哟| 91视频观看视频| 欧美高清hd18日本| 久久亚洲综合av| 国产精品久久久久影视| 亚洲国产日韩a在线播放性色| 蜜臀av一区二区| 成人美女视频在线观看18| 91黄色免费版| 日韩欧美一二区| 国产精品美女久久久久久久久久久 | 蜜桃视频一区二区三区在线观看| 激情综合一区二区三区| 成人av电影免费观看| 欧美午夜精品电影| 欧美三级电影在线观看| 精品国产乱码久久久久久老虎| 中文字幕av一区二区三区| 亚洲欧美一区二区三区孕妇| 美女久久久精品| 97久久久精品综合88久久| 91精品国产综合久久久蜜臀粉嫩| www国产精品av| 亚洲一区二区三区在线看| 精品一区二区免费视频| 日本久久电影网| 2017欧美狠狠色| 亚洲永久免费av| 国产美女在线观看一区| 在线观看亚洲一区| 精品成人免费观看| 亚洲一区二区三区四区在线观看| 激情综合色播激情啊| 欧洲一区二区三区在线| 国产欧美精品一区二区三区四区| 亚洲6080在线| 91视频你懂的| 欧美国产精品专区| 蜜臀av性久久久久av蜜臀妖精| 成人av在线观| 久久亚洲捆绑美女| 日韩电影在线一区| 在线观看日韩电影| 综合自拍亚洲综合图不卡区| 黑人巨大精品欧美一区| 9191久久久久久久久久久| 亚洲欧美一区二区不卡| 国产专区综合网| 91精品国产综合久久香蕉的特点| 亚洲精品成人少妇| 成人av电影在线网| 国产拍欧美日韩视频二区| 麻豆国产91在线播放| 欧美精品丝袜中出| 亚洲午夜激情av| 色噜噜狠狠成人中文综合| 国产精品入口麻豆九色| 蜜桃久久久久久久| 91精品免费观看| 亚洲高清免费在线| 在线观看免费视频综合| 亚洲欧美视频在线观看视频| 成人av影视在线观看| 中文字幕精品一区| 成人免费av在线| 欧美激情一区二区在线| 国产精品一区二区黑丝| 国产午夜三级一区二区三| 国产一区福利在线| 久久奇米777| 国产精一品亚洲二区在线视频| 精品久久久久久最新网址| 乱一区二区av| 欧美精品一区视频| 国产精品一二三四五| 国产欧美综合色| 国产.精品.日韩.另类.中文.在线.播放| 久久色在线视频| 国产精品性做久久久久久| 国产欧美精品日韩区二区麻豆天美| 国产尤物一区二区在线| 国产片一区二区三区| 成人国产视频在线观看| 综合久久综合久久| 色就色 综合激情| 亚洲123区在线观看| 91精品国产全国免费观看| 久久99在线观看| 久久久久久久久久久99999| 国产高清在线精品| 日韩一区在线看| 欧美性一区二区| 麻豆传媒一区二区三区| 国产亚洲精品中文字幕| 成人avav影音| 亚洲午夜精品在线| 日韩精品一区二区三区老鸭窝 | 欧美三级在线视频| 麻豆极品一区二区三区| 国产欧美精品一区二区三区四区| 不卡视频在线看| 亚洲综合另类小说| 欧美成va人片在线观看| 成人免费av资源| 香蕉加勒比综合久久| 精品国产伦一区二区三区观看方式 | 日本不卡高清视频| 久久久久久久久蜜桃| 成人av综合一区| 亚洲成av人片www| 久久久久久久久蜜桃| 色婷婷综合视频在线观看| 午夜一区二区三区视频| 久久久久久99久久久精品网站| 99久久精品免费看国产免费软件| 亚洲国产成人高清精品| 精品欧美一区二区在线观看| gogogo免费视频观看亚洲一| 午夜一区二区三区视频| 久久久久久影视| 在线免费av一区| 国产乱理伦片在线观看夜一区| 亚洲乱码中文字幕综合| 精品剧情v国产在线观看在线| 99久久久久久99| 日韩精品久久久久久| 国产精品成人免费精品自在线观看 | 99久久婷婷国产综合精品电影 | 欧美视频在线一区二区三区 | 免费成人你懂的| 亚洲美女免费视频| 欧美mv日韩mv亚洲| 在线日韩一区二区| 国产超碰在线一区| 美女在线视频一区| 一区二区国产视频| 日本一二三不卡| 日韩视频在线永久播放| 91在线国产福利| 国产成人aaa| 久久av老司机精品网站导航|