题解 | #移位运算与乘法#

移位运算与乘法

https://www.nowcoder.com/practice/1dd22852bcac42ce8f781737f84a3272

`timescale 1ns/1ns

module multi_sel(
  input [7:0]d ,
  input clk,
  input rst,
  output input_grant,
  output [10:0]out
  );
  //*************code***********//
  reg [10:0]out_reg = 11'd0;
  reg input_grant_reg = 1'd0;
  reg [7:0] din = 8'd0;
  reg [3:0]status = 4'd0;

  parameter Status_be = 4'd1; 
  parameter Status_x1 = 4'd2; 
  parameter Status_x3 = 4'd3; 
  parameter Status_x7 = 4'd4; 
  parameter Status_x8 = 4'd5; 
  parameter Status_end = 4'd6; 
  parameter Status_wait = 4'd7; 
  
  assign  out = out_reg;
  assign  input_grant = input_grant_reg;

  always @(posedge clk)
  begin
      if(rst==1'd0)
      begin
          status <= 4'd0;
          input_grant_reg <= 1'd0;
          out_reg <= 11'd0;
      end
  end
  
  always @(posedge rst)
  begin
      status <= Status_x1;
  end
 
  always @(posedge clk)
  begin
      case(status)  
      Status_x1: begin
          din <= d;
          out_reg <= d;
          input_grant_reg <= 1'd1;
          status <= Status_x3;
      end
      Status_x3: begin
          out_reg <= (din<<2) - din ;
          input_grant_reg <= 1'd0;
          status <= Status_x7;
      end    
      Status_x7: begin
          out_reg <= (din<<3) - din ;
          status <= Status_x8;
      end   
      Status_x8: begin
          out_reg <= din<<3;
          status <= Status_x1;
      end
      default:
      begin
        status <= Status_x1;        
      end
      endcase
  end
  
  //*************code***********//
  endmodule

全部评论
要不说的好好读题呢!
点赞 回复 分享
发布于 2023-04-10 16:50 天津

相关推荐

ProMonkey2024:5个oc?厉害! 但是有一个小问题:谁问你了?😡我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了(别的帖子偷来的,现学现卖😋)
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务