📄 twos_compl_to_ieee.v
字号:
/* ------------------------------------------------------------// MODULE: Twos_compl_to_IEEE (no clock )// Edition: one// Matlab Code: None// C Code: None// Architecture Diagram: None// Date: 2008/01/30
// Update: 2008/01/30 // ------------------------------------------------------------ */
module Twos_compl_to_IEEE(data_in,data_out);
/* ------------------------------------------------------------// Parameters definition// ------------------------------------------------------------ */
parameter data_lng=32,//data_in length
exp_lng=7,//data_in exponent part length
sgnfc_lng=25;//data_in significant part length
/* ------------------------------------------------------------// I/O declaration// ------------------------------------------------------------ */
input [data_lng-1:0]data_in; //include sgnfc and exp part
output [data_lng-1:0]data_out; // data_out
/* ------------------------------------------------------------// Connection wire declaration// ------------------------------------------------------------ */
wire sign,con_case_ctrl,min_overflow;
wire [sgnfc_lng-1:0]spec_data_sgnfc,con_data_sgnfc;
wire [exp_lng-1:0]con_data_exp,spec_data_exp;
/* ------------------------------------------------------------// Module instance// ------------------------------------------------------------ */
assign sign=data_in[data_lng-1];
assign con_case_ctrl=|data_in[data_lng-2:exp_lng];//check if 1000000...000(-2)
assign con_data_sgnfc=(sign)?~data_in[data_lng-1:sgnfc_lng]+1'b1:data_in[data_lng-1:sgnfc_lng];//conventional case
assign spec_data_sgnfc=data_in[data_lng-1:sgnfc_lng]>>1; //special case -2=>+1
assign con_data_exp=data_in[exp_lng-1:0];
assign spec_data_exp=con_data_exp+1'b1;
assign min_overflow=(&{con_data_exp,sign});
assign data_out[data_lng-1:sgnfc_lng]=(con_case_ctrl)?con_data_sgnfc:((min_overflow)?{sgnfc_lng{1'b0}}:spec_data_sgnfc);
assign data_out[sgnfc_lng-1:0]=(con_case_ctrl)?con_data_exp:spec_data_exp;
endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -