知识点(数的操作)

alt

1、有符号数的比较

module signed_compare#(
	parameter DATAWIDTH = 'd8
)
(
		input [DATAWIDTH-1:0] data_a,
  		input [DATAWIDTH-1:0] data_b,
  		output[DATAWIDTH-1:0] data_out

);

function [DATAWIDTH-1:0]max_data;
input [DATAWIDTH-1:0]campare_a;
input [DATAWIDTH-1:0]campare_b;
reg campare_flag;//max_a flag = 1,max_b flag = 0;
begin
	if(campare_a[DATAWIDTH-1]!=campare_b[DATAWIDTH-1])
      begin
      campare_flag = (campare_a[DATAWIDTH-1]>campare_b[DATAWIDTH-1])?1'b0:1'b1;
      end
    else begin
      campare_flag = campare_a?(-campare_a[DATAWIDTH-1:0]<-campare_b[DATAWIDTH-1:0]):(campare_a[DATAWITH-1:0]>campare[DATAWIDTH-1:0]);
      end
assign max_data = campare_flag?campare_a:campare_b;

endfunction
assign data_out = max_data(data_a,data_b);

2、有符号数求绝对值

module abs_data#(
parameter DATAWIDTH = 'd8
)
(
	input [DATAWIDTH-1:0]data,
  	output [DATAWIDTH-1:0]data_abs

);
function [DATAWIDTH-1:0] abs;
input [DATAWIDTH-1:0] data_temp;
assign abs = (data_temp[DATAWIDTH-1])?(-data_temp):(data_temp);

endfunction

assign data_abs=abs(data);

3、有符号加法

module signed_add#(
parameter DATAWIDTH = 'd8
)
(
	input [DATAWIDTH-1:0]data_a,
  	input [DATAWIDTH-1:0]data_b,
  	output [DATAWIDTH-1:0] sum
);

assign sum = {data_a[DATAWIDTH-1],data_a}+{data_b[DATAWIDTH-1],data_b};
全部评论

相关推荐

//鲨鱼辣椒:这我活集贸啊,跳了 ━━━━━┒ ┓┏┓┏┓ I ┛┗┛┗┛┃\🤡/ ┓┏┓┏┓┃ / ┛┗┛┗┛┃ノ) ┓┏┓┏┓┃ ┛┗┛┗┛┃ ┓┏┓┏┓┃ ┛┗┛┗┛┃ ┓┏┓┏┓┃ ┃┃┃┃┃┃ ┻┻┻┻┻┻🌳🌳🌳🌳🌳🌳
投递小米集团等公司10个岗位
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务