⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adc_bcd27seg_dec.v

📁 it is a verilog code written for MAX1886 ADC interin modelsim simulator and it will synthesize in x
💻 V
字号:
//*****************************************************************************************//
//    Project      : FPGA based Digital Design using Verilog HDL
//    File         : adc_top.v
//    Author       : Irfan Faisal Mir & Nauman Mir
//    Company      : Chip Designing Course
//    Start Date   : 
//    Last Updated : 
//    Version      : 0.1
//    Abstract     : This module implements...........
// 
//    Modification History:
//==========================================================================================
//    Date                       By                    Version            Change Description
//==========================================================================================
//                               Irfan & Nauman        0.1                Original Version
//
//******************************************************************************************//

// BCD to Seven Segment Decoder
module adc_bcd27seg_dec(// Input
                        clk,
                        rst_n,
                        data_in,
                        data_rdy,
                        // Output
                        data_out
                       );
//====== Port Declaration ========//
input         clk ;
input         rst_n ;
input [7:0]   data_in ;
input         data_rdy ;

output [14:0] data_out ;

wire [14:0] data_out ;
reg [6:0]   data_out1 ;
reg [7:0]   data_out2 ;


assign data_out = {data_out2, data_out1} ;

always @(posedge clk or negedge rst_n)
begin
   if(~rst_n) begin
      data_out1 <= #1 7'd0 ;
   end
   else begin
      case({data_rdy, data_in[3:0]})
         5'b1_0000 : data_out1 <= #1 7'b0111111 ;   // Format: 7'Bgfedcba
         5'b1_0001 : data_out1 <= #1 7'b0000110 ;   // Format: 7'Bgfedcba
         5'b1_0010 : data_out1 <= #1 7'b1011011 ;   // Format: 7'Bgfedcba
         5'b1_0011 : data_out1 <= #1 7'b1001111 ;   // Format: 7'Bgfedcba
         5'b1_0100 : data_out1 <= #1 7'b1100110 ;   // Format: 7'Bgfedcba
         5'b1_0101 : data_out1 <= #1 7'b1101101 ;   // Format: 7'Bgfedcba
         5'b1_0110 : data_out1 <= #1 7'b1111100 ;   // Format: 7'Bgfedcba
         5'b1_0111 : data_out1 <= #1 7'b0000111 ;   // Format: 7'Bgfedcba
         5'b1_1000 : data_out1 <= #1 7'b1111111 ;   // Format: 7'Bgfedcba
         5'b1_1001 : data_out1 <= #1 7'b1100111 ;   // Format: 7'Bgfedcba
         default : data_out1 <= #1 7'b1000000 ;   // Format: 7'Bgfedcba
      endcase
   end
end

always @(posedge clk or negedge rst_n)
begin
   if(~rst_n) begin
      data_out2 <= #1 8'd0 ;
   end
   else begin
      case({data_rdy, data_in[7:4]})
         5'b1_0000 : data_out2 <= #1 8'b1_0111111 ;   // Format: 8'B dot_gfedcba
         5'b1_0001 : data_out2 <= #1 8'b1_0000110 ;   // Format: 8'B dot_gfedcba
         5'b1_0010 : data_out2 <= #1 8'b1_1011011 ;   // Format: 8'B dot_gfedcba
         5'b1_0011 : data_out2 <= #1 8'b1_1001111 ;   // Format: 8'B dot_gfedcba
         5'b1_0100 : data_out2 <= #1 8'b1_1100110 ;   // Format: 8'B dot_gfedcba
         5'b1_0101 : data_out2 <= #1 8'b1_1101101 ;   // Format: 8'B dot_gfedcba
         5'b1_0110 : data_out2 <= #1 8'b1_1111100 ;   // Format: 8'B dot_gfedcba
         5'b1_0111 : data_out2 <= #1 8'b1_0000111 ;   // Format: 8'B dot_gfedcba
         5'b1_1000 : data_out2 <= #1 8'b1_1111111 ;   // Format: 8'B dot_gfedcba
         5'b1_1001 : data_out2 <= #1 8'b1_1100111 ;   // Format: 8'B dot_gfedcba
         default : data_out2 <= #1 8'b0_1000000 ;   // Format: 8'B dot_gfedcba
      endcase
   end
end

endmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -