刚开始没看见在sel==0 的时候,输入是有效的,所以这是时候需要缓存一下。题干描述不清楚`timescale 1ns/1nsmodule data_cal(input clk,input rst,input [15:0]d,input [1:0]sel,output  [4:0]out,output  validout);//**code//parameter IDLE = 0;parameter add1 = 1;parameter add2 = 2;parameter add3 = 3;reg [4:0] out;reg validout;reg [15:0] data_lock;//输入是时序逻辑always@(posedge clk or negedge rst) begin    if (!rst) begin    data_lock <= 0;     out <= 5'b0;    validout <= 1'b0;    end     else if(!sel)    data_lock <= d; end// 输出是组合逻辑always @(*) begin           case (sel)            IDLE : begin                out <= 5'b0;                validout <= 1'b0;            end             add1 : begin                 out <= {1'b0,data_lock[3:0]}+{1'b0,data_lock[7:4]};                validout <= 1'b1;            end            add2 : begin                out <= {1'b0,data_lock[3:0]}+{1'b0,data_lock[11:8]};                validout <= 1'b1;            end            add3 : begin                out <= {1'b0,data_lock[3:0]}+{1'b0,data_lock[15:12]};                validout <= 1'b1;            end            default : begin                  out <=5'bx;                validout <= 1'bx;            end                    endcase                    end                //**code//endmodule
点赞 0
评论 0
全部评论

相关推荐

群星之怒:不是哥们,你就不好奇瘫痪三十年的老植物人是啥样的吗?
点赞 评论 收藏
分享
风的叶脉:不知道但我想要鞭打你( '-' )ノ)`-' ) 加油
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务