1、control.v
module control(
input clk ,
input rst_n ,
input sign_in ,
input [23:0] t_data ,
input t_data_vld ,
output sign_out ,
output wire [23:0] t_out
);
//定义信号存储数据的每一位
wire [3:0] temp_r0;//最高位
wire [3:0] temp_r1;
wire [3:0] temp_r2;
wire [3:0] temp_r3;
wire [3:0] temp_r4;
wire [3:0] temp_r5;//最低位
//暂存传进来的温度数据
reg [23:0] t_data_r;
//t_data_r
always @(posedge clk or negedge rst_n)begin
if(!rst_n)begin
t_data_r <= 24'd0;
end
else if(t_data_vld)begin
t_data_r <= t_data;
end
end
//输出符号赋值
assign sign_out = sign_in;
//提取出数据的每一位
assign temp_r0 = t_data_r/1000_00;
assign temp_r1 = (t_data_r%1000_00)/1000_0;
assign temp_r2 = (t_data_r%1000_0)/1000;
assign temp_r3 = (t_data_r%1000)/100;
assign temp_r4 = (t_data_r%100)/10;
assign temp_r5 = t_data_r%10;
//输出24位宽的数据赋值
assign t_out = {temp_r0,temp_r1,temp_r2,temp_r3,temp_r4,temp_r5};
endmodule