Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

dsd1-10 / dsd-07=Verilog / Verilog-dsd19

.doc
Скачиваний:
98
Добавлен:
05.06.2015
Размер:
26.11 Кб
Скачать

// Verilog HDL for "DAC", "digital" "functional"

`timescale 1ns/10ps

module digital(CLK, Data, nEN, D, nEN_int) ;

input CLK, Data, nEN;

output [5:0] D;

output nEN_int;

reg [5:0] D, intern;

reg [2:0] counter;

reg nEN_int;

wire ready, next;

assign ready = (counter == 3'd6)?1: 0;

assign next = (counter == 3'd5)?1: 0;

always @(negedge CLK)

if(nEN_int) counter = 3'd0; else

if(ready) counter = 3'd0; else

counter = counter + 3'd1;

always @(posedge CLK)

if(next) D = intern;

always @(negedge CLK) nEN_int = nEN;

always @(posedge CLK)

if(next) intern = intern; else

intern = {intern[4],intern[3],intern[2],intern[1],Data,intern[0]};

endmodule

// Verilog HDL for "DAC", "digital" "verilog"

`timescale 1ns/10ps

// Generated by ac_shell v5.13-s022 on Fri Feb 25 10:04:34 MSK 2005.

// Restrictions concerning the use of Ambit BuildGates are covered in the

// license agreement. Distribution to third party EDA vendors is

// strictly prohibited.

module digital(CLK, Data, nEN, D, nEN_int);

input CLK;

input Data;

input nEN;

output [0:5] D;

output nEN_int;

wire [0:2] counter;

wire [0:5] intern;

NAND2X1 i_0(.A(counter[1]), .B(counter[0]), .Y(n_8));

MX2X1 i_1(.A(counter[0]), .B(n_18), .S0(counter[1]), .Y(n_9));

DFFX1 nEN_int_reg(.CK(n_114), .D(nEN), .Q(nEN_int), .QN(nEN_int_reg_inv)

);

SDFFSRX1 counter_reg_2(.CK(n_114), .D(1'b0), .Q(counter[2]), .QN(counter_reg_2_inv

), .RN(1'b1), .SE(n_8), .SI(n_16), .SN(1'b1));

SDFFSRX1 counter_reg_1(.CK(n_114), .D(n_17), .Q(counter[1]), .RN(1'b1),

.SE(counter[1]), .SI(\counter_1[0] ), .SN(1'b1));

SDFFSRX1 counter_reg_0(.CK(n_114), .D(1'b0), .Q(counter[0]), .QN(counter_reg_0_inv

), .RN(1'b1), .SE(n_9), .SI(nEN_int_reg_inv), .SN(1'b1));

SDFFSRX1 intern_reg_5(.CK(CLK), .D(intern[4]), .Q(intern[5]), .RN(1'b1),

.SE(n_10), .SI(intern[5]), .SN(1'b1));

SDFFSRX1 intern_reg_4(.CK(CLK), .D(intern[3]), .Q(intern[4]), .RN(1'b1),

.SE(n_10), .SI(intern[4]), .SN(1'b1));

SDFFSRX1 intern_reg_3(.CK(CLK), .D(intern[2]), .Q(intern[3]), .RN(1'b1),

.SE(n_10), .SI(intern[3]), .SN(1'b1));

SDFFSRX1 intern_reg_2(.CK(CLK), .D(intern[1]), .Q(intern[2]), .RN(1'b1),

.SE(n_10), .SI(intern[2]), .SN(1'b1));

AND2X1 i_2(.A(counter_reg_2_inv), .B(nEN_int_reg_inv), .Y(n_16));

SDFFSRX1 intern_reg_1(.CK(CLK), .D(intern[0]), .Q(intern[1]), .RN(1'b1),

.SE(n_10), .SI(intern[1]), .SN(1'b1));

AND2X1 i_5(.A(nEN_int_reg_inv), .B(counter[2]), .Y(n_17));

SDFFSRX1 intern_reg_0(.CK(CLK), .D(Data), .Q(intern[0]), .RN(1'b1), .SE(n_10

), .SI(intern[0]), .SN(1'b1));

AND2X1 i_9(.A(counter_reg_0_inv), .B(counter[2]), .Y(n_18));

SDFFSRX1 D_reg_5(.CK(CLK), .D(D[5]), .Q(D[5]), .RN(1'b1), .SE(n_10), .SI

(intern[5]), .SN(1'b1));

SDFFSRX1 D_reg_4(.CK(CLK), .D(D[4]), .Q(D[4]), .RN(1'b1), .SE(n_10), .SI

(intern[4]), .SN(1'b1));

AOI21X1 i_111(.A0(counter[0]), .A1(counter[1]), .B0(n_100), .Y(\counter_1[0]

));

SDFFSRX1 D_reg_3(.CK(CLK), .D(D[3]), .Q(D[3]), .RN(1'b1), .SE(n_10), .SI

(intern[3]), .SN(1'b1));

SDFFSRX1 D_reg_2(.CK(CLK), .D(D[2]), .Q(D[2]), .RN(1'b1), .SE(n_10), .SI

(intern[2]), .SN(1'b1));

NOR3X1 i_917(.A(counter[1]), .B(counter_reg_2_inv), .C(counter_reg_0_inv

), .Y(n_10));

SDFFSRX1 D_reg_1(.CK(CLK), .D(D[1]), .Q(D[1]), .RN(1'b1), .SE(n_10), .SI

(intern[1]), .SN(1'b1));

SDFFSRX1 D_reg_0(.CK(CLK), .D(D[0]), .Q(D[0]), .RN(1'b1), .SE(n_10), .SI

(intern[0]), .SN(1'b1));

INVX1 i_142(.A(n_16), .Y(n_100));

INVX1 i_143(.A(CLK), .Y(n_114));

endmodule

Соседние файлы в папке dsd-07=Verilog