Search

Sunday, 20 July 2014

8 bit Resolution Digital to Analog Convertor

//////////////////////////////////////////////////////////////////////////
// Module No.:        002
// Module Name:     DAC_8bit
// Engineer:              Jayant Sharma
// Create Date:        20:58:48 09/30/2013
// Description:          Digital to Analog convertor
// Tool Version:        Xilinx ISE 14.7
//////////////////////////////////////////////////////////////////////////

module DAC_8bit  #(
                                   parameter [7:0] RES = 8'h07
                               )(
                                   input [RES:0] dac_in,
                                   input clk,
                                   input reset,
                                   output reg dac_out
                             );
             
            reg [RES+2:0] d_adder;
            reg [RES+2:0] s_adder;
            reg [RES+2:0] s_latch;
            reg [RES+2:0] d_casc;
            reg [RES:0] v_in;
            reg [RES:0] counter;
         
            always@(s_latch)
                d_casc <= { s_latch[RES+2], s_latch[RES+2] } << (RES+1);
             
            always@(v_in or d_casc)
                d_adder <= v_in + d_casc;
             
            always@(d_adder or s_latch)
                s_adder <= d_adder + s_latch;
                     
            always@( posedge clk or posedge reset)
            begin
                if(reset)    begin
                    s_latch <= 10'b01_0000_0000;
                    dac_out <= 1'b0;
                    counter <= 8'b0;
                    v_in <= 0;
                end
                else         begin
                    v_in <= v_in + 1;
                    s_latch <= s_adder;
                    dac_out <= s_latch[RES+2];
                end             
            end

endmodule

 //************************ UCF (SPARTAN 3E) ********************************

NET "clk" IOSTANDARD = LVCMOS25;
NET "reset" IOSTANDARD = LVCMOS25;
NET "dac_out" IOSTANDARD = LVTTL;

# PlanAhead Generated physical constraints

NET "clk" LOC = C9;
NET "dac_out" LOC = A4;
NET "reset" LOC = L13;

No comments:

Post a Comment