OpenCores
URL https://opencores.org/ocsvn/a-z80/a-z80/trunk

Subversion Repositories a-z80

[/] [a-z80/] [trunk/] [cpu/] [bus/] [address_latch.v] - Blame information for rev 3

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 3 gdevic
// Copyright (C) 1991-2013 Altera Corporation
2
// Your use of Altera Corporation's design tools, logic functions 
3
// and other software and tools, and its AMPP partner logic 
4
// functions, and any output files from any of the foregoing 
5
// (including device programming or simulation files), and any 
6
// associated documentation or information are expressly subject 
7
// to the terms and conditions of the Altera Program License 
8
// Subscription Agreement, Altera MegaCore Function License 
9
// Agreement, or other applicable license agreement, including, 
10
// without limitation, that your use is for the sole purpose of 
11
// programming logic devices manufactured by Altera and sold by 
12
// Altera or its authorized distributors.  Please refer to the 
13
// applicable agreement for further details.
14
 
15
// PROGRAM              "Quartus II 64-Bit"
16
// VERSION              "Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition"
17
// CREATED              "Sat Nov 08 12:52:27 2014"
18
 
19
module address_latch(
20
        ctl_inc_cy,
21
        ctl_inc_dec,
22
        ctl_inc_zero,
23
        ctl_al_we,
24
        ctl_inc_limit6,
25
        ctl_bus_inc_oe,
26
        clk,
27
        ctl_apin_mux,
28
        ctl_apin_mux2,
29
        address_is_1,
30
        abus,
31
        address
32
);
33
 
34
 
35
input wire      ctl_inc_cy;
36
input wire      ctl_inc_dec;
37
input wire      ctl_inc_zero;
38
input wire      ctl_al_we;
39
input wire      ctl_inc_limit6;
40
input wire      ctl_bus_inc_oe;
41
input wire      clk;
42
input wire      ctl_apin_mux;
43
input wire      ctl_apin_mux2;
44
output wire     address_is_1;
45
inout wire      [15:0] abus;
46
output wire     [15:0] address;
47
 
48
reg     [15:0] Q;
49
wire    SYNTHESIZED_WIRE_0;
50
wire    SYNTHESIZED_WIRE_1;
51
wire    SYNTHESIZED_WIRE_2;
52
wire    [15:0] SYNTHESIZED_WIRE_3;
53
wire    [15:0] SYNTHESIZED_WIRE_8;
54
wire    SYNTHESIZED_WIRE_5;
55
wire    [15:0] SYNTHESIZED_WIRE_6;
56
 
57
 
58
 
59
 
60
 
61
always@(posedge clk)
62
begin
63
if (ctl_al_we)
64
        begin
65
        Q[15:0] <= abus[15:0];
66
        end
67
end
68
 
69
assign  SYNTHESIZED_WIRE_2 =  ~ctl_inc_zero;
70
 
71
assign  address_is_1 = ~(SYNTHESIZED_WIRE_0 | SYNTHESIZED_WIRE_1);
72
 
73
assign  SYNTHESIZED_WIRE_8 = {SYNTHESIZED_WIRE_2,SYNTHESIZED_WIRE_2,SYNTHESIZED_WIRE_2,SYNTHESIZED_WIRE_2,SYNTHESIZED_WIRE_2,SYNTHESIZED_WIRE_2,SYNTHESIZED_WIRE_2,SYNTHESIZED_WIRE_2,SYNTHESIZED_WIRE_2,SYNTHESIZED_WIRE_2,SYNTHESIZED_WIRE_2,SYNTHESIZED_WIRE_2,SYNTHESIZED_WIRE_2,SYNTHESIZED_WIRE_2,SYNTHESIZED_WIRE_2,SYNTHESIZED_WIRE_2} & SYNTHESIZED_WIRE_3;
74
 
75
assign  abus[15] = ctl_bus_inc_oe ? SYNTHESIZED_WIRE_8[15] : 1'bz;
76
assign  abus[14] = ctl_bus_inc_oe ? SYNTHESIZED_WIRE_8[14] : 1'bz;
77
assign  abus[13] = ctl_bus_inc_oe ? SYNTHESIZED_WIRE_8[13] : 1'bz;
78
assign  abus[12] = ctl_bus_inc_oe ? SYNTHESIZED_WIRE_8[12] : 1'bz;
79
assign  abus[11] = ctl_bus_inc_oe ? SYNTHESIZED_WIRE_8[11] : 1'bz;
80
assign  abus[10] = ctl_bus_inc_oe ? SYNTHESIZED_WIRE_8[10] : 1'bz;
81
assign  abus[9] = ctl_bus_inc_oe ? SYNTHESIZED_WIRE_8[9] : 1'bz;
82
assign  abus[8] = ctl_bus_inc_oe ? SYNTHESIZED_WIRE_8[8] : 1'bz;
83
assign  abus[7] = ctl_bus_inc_oe ? SYNTHESIZED_WIRE_8[7] : 1'bz;
84
assign  abus[6] = ctl_bus_inc_oe ? SYNTHESIZED_WIRE_8[6] : 1'bz;
85
assign  abus[5] = ctl_bus_inc_oe ? SYNTHESIZED_WIRE_8[5] : 1'bz;
86
assign  abus[4] = ctl_bus_inc_oe ? SYNTHESIZED_WIRE_8[4] : 1'bz;
87
assign  abus[3] = ctl_bus_inc_oe ? SYNTHESIZED_WIRE_8[3] : 1'bz;
88
assign  abus[2] = ctl_bus_inc_oe ? SYNTHESIZED_WIRE_8[2] : 1'bz;
89
assign  abus[1] = ctl_bus_inc_oe ? SYNTHESIZED_WIRE_8[1] : 1'bz;
90
assign  abus[0] = ctl_bus_inc_oe ? SYNTHESIZED_WIRE_8[0] : 1'bz;
91
 
92
assign  SYNTHESIZED_WIRE_0 = Q[7] | Q[5] | Q[6] | Q[4] | Q[2] | Q[3] | Q[1] | SYNTHESIZED_WIRE_5;
93
 
94
assign  SYNTHESIZED_WIRE_1 = Q[15] | Q[13] | Q[14] | Q[12] | Q[10] | Q[11] | Q[9] | Q[8];
95
 
96
 
97
address_mux     b2v_inst7(
98
        .select(ctl_apin_mux2),
99
        .in0(SYNTHESIZED_WIRE_6),
100
        .in1(Q),
101
        .out(address));
102
 
103
 
104
inc_dec b2v_inst_inc_dec(
105
        .limit6(ctl_inc_limit6),
106
        .decrement(ctl_inc_dec),
107
        .carry_in(ctl_inc_cy),
108
        .d(Q),
109
        .address(SYNTHESIZED_WIRE_3));
110
 
111
 
112
address_mux     b2v_mux(
113
        .select(ctl_apin_mux),
114
        .in0(abus),
115
        .in1(SYNTHESIZED_WIRE_8),
116
        .out(SYNTHESIZED_WIRE_6));
117
 
118
assign  SYNTHESIZED_WIRE_5 =  ~Q[0];
119
 
120
 
121
endmodule

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.