OpenCores
URL https://opencores.org/ocsvn/zx_ula/zx_ula/trunk

Subversion Repositories zx_ula

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /zx_ula/branches/xilinx/ulaplus_replacement-upgrade_for_sp16-48k/rtl_ulaplus
    from Rev 26 to Rev 29
    Reverse comparison

Rev 26 → Rev 29

/ipcore_dir/master_ula_clock.xaw
1,3 → 1,3
XILINX-XDB 0.1 STUB 0.1 ASCII
XILINX-XDM V1.6e
$9;x5>6339$;8<5>4:31*14<9=20=;)gC1:36>7_928=7?>!0121?7333:$9<<5;2:735>103HXHDZGU169BVR\XGGFRSNO\C@FJJBYDDB;37L\XZ^MMH\YDDBCESHV[ESLBH43<I[]QSB@CY^AOOLHX^HF^I<l4ASUY[JHKQVNHAR]XIUAKMKAXKEA:<6O]W[]LJI_XLMXTO=??;@PT^ZIIDPUOH_QL1038EWQ]WFDGURJKR^AOO40<I[]QSB@CY^FGVZ@KAYLGC]?:;@PT^ZIIDPUMNRKWTDPMEI753HX\VRAALX]JJVRXF\Gn7L\XZ^MMH\YWEJN:96O]W[]LJI_XZLYNXRB@GHA2<>GU_SUDBAWPV@NJ@ZBA[VGDHHo4ARQLGZQN\Al0MZTPCMIAQCR^XL;::6OXZ^AOOGSA\PZN=R@@EEKW56=F_SUH@FQ@UURVPZR^XLi0MZTPFMMTP\VB02K\VR^NRUf8ER\X[PD_DYA@L59AKQN33K_MKlo4C;^_@jereld-oad!QfpqoiozVyci|fgth_Ilu'lfi~ah`{or^lt`hdg{oxPwvPumc_fwgikaoxPugcioz_qigwd|yT~h~cabgnakr*}ymymikPfnp\wu71%=2`Pzc_tnbtistT`zhckPdhp_*Ykf{}oySxbn_bnlgn(i~>0OAE?8:AOO5YE]Oo0OAE?_CWECZOI[]20OAE?_NWW2>EKC82;:6MCK3531>EKC;R37NBD2Y3;40=DDB3;96MCKET`?FJLL_UOE[GKE49@HN@E02IGGKLPIO78GIMAP11H@FHW192:?FJLNQUIYKh4CMIE\ZDRNNUBB^Zl;BNHB]YCA_COIh5LLJD[[HSK\@ZGU45LLJD[[JSS=2IGGD@>1:AOOLHXL@\BHHQMY^0a?FJLAGUBNXHH119@HNOIW@H^JJQFNRVe?FJLAGUBNXHH_NWW<>EKC@DTECm4CMIJJZVBZ@EOi6MCKHL\WWEX\PZN=?5LLJMVPZVOIZOT_EGITb9@HNYAMLNIMNE6;BMNILRSMM=0O_KNTDF5?AEJWZZi7IMB_RR\MKUSl2NN_FKX_@FIQVR6:2NM_RH]EPWFJF_XEFNNm6JCL^CM@Z@_9;1O@AQIRDSVAKE^WDEOI85KSRGM50=C]]STOTMCE^ALVWCD\@EE;6JPV@NVA==BP]OYBLBn;GC@PJT^WCL>7KOCSD;8BGYTG\XHIn5IEDFAEFMXJ\L27KGA_TLJPV><NF__S^Z]a:DLQQYRF@^Xm6H@UU]UEISB92C>7DLZFF:8MKRBZGKG=<5EIUVFVZOIX\^TXT^Jc:HJPQCUWYA9\Fm4JHVWAWYQIE_N:6B@AEGG2>JHKBOO?6B@W29NL_1<EV\J@XK8;OGWSJTL<2DDBH?4O99LBABUKYOi7]FNSD]PLL@S12ZBBEO\BTQb?UOIAZMEHHJ7;QKMSLBS@11[^DC[YQG24>VUGYU[ECG\ABVJR@3<XZIGG;5_SEMMA1=W[LD37]]FNBFFG6=U[]h0_DIJXUGQJDJ13ZCEKAKl;RVBVQSWW^KBX;5\T@VVW44<[PY_I@Q\YOAKVJHH]Z90XB^;;UPVA==R[LUIYKI6;TQF[GSAOZ?0ZDKX1c9[ERYQM[YBCC?k;YKOMK^*PMH+<#?/SUWA$5(6(HYHED=4XRV5?]beW@n:<6Vkm^ObnjtQm{ybcc??;Yfn[Hoig{\n~~g`n49X4?6Z=2Q;6:S;;`pt~6=ckd=0zh|flnea?scu{`ee,< ?f:z`7v778l'>z|??0|BCt61<HIr997H54;3xW13=0=03;7?<3176`?40llnpb5>51:l;5?0<,>l1;i5rS569<1<??3;8?=;:d;0;5<6<[<o149477;307532l383>8>4S569<1<??3;8?=;:d;0;6cg<l1>1<7?51zQ71?>321=1=>=?54f962bbl2|_;o4?:082>=}T<<038768:010403c2;=oii5m7683>5<321q/i76:;%03>=0<,;;1455+2384a>"0k390n9950;30>5<7s-<i6984$g81b>"683=87)?=:348 45=:?1/=94=a:&21?413-;=6;84$05936=#91097)?6:768 4g==81/=o4=3:&77?0<,::1;6*<7;;8 6>=l2.8n7;>;%63>==#<80?j6*;2;47?!2?2><0(9k52:&7=?073->i6;>4$5f93==#=90>7);=:4c8 02=>81/9;491:&63?2<,<h1985+638a?!00291/;94:1:&4=?1f3-;:6n5+1g87e>"2l3;0(8m5a:k0e?6=,?k14?5+6b84<>=n;80;6)8n:908 3e=?110e:?50;&5e?>53-<26:64;h4e>5<#>h03>6*99;5;?>o083:1(;o5839'2<<0021b:i4?:%4b>=4<,?31;554i5a94?"1i3297)86:6:8?j41290/:l472:&5g?1?3-;o6?:4$0g916=<g;o1<7*9a;:1?>i5i3:1(;o58398k7d=83.=m76=;:m1b?6=,?k14?54o3a94?"1i32976a=d;29 3g=0;10c>=50;&5e?>53-<h6:64$0f961=<g:>1<7*9a;:1?>i0=3:1(;o5829'2=<0021d9k4?:%4b>=4<3f<n6=4+6`8;6>=zj:n1<7<50;2x 3d==01b954?:%4b>=4<,?i1;554o7794?"1i3297)8l:6:8?xd503:1>7>50z&5f?433`?36=4+6`8;6>"1k3=376a95;29 3g=0;1/:n488:9~f60=8381<7>t$7`961=n=10;6)8n:908 3e=?110c;;50;&5e?>53-<h6:64;|q0g?6=:r7?;7=n;<1g>33<,8i1?h5rs2094?4|5==1?<5229851>"6k3827p}=7;296~;3?38=70<7:4:8yv522909w0:8:218960==11v>h50;3x96b==11/;?4:8:p7<<728q6?;495:&46?023ty8i7>50z&46?023ty957>50z&46?023twe>:4?:0y~j7>=83;pqc<6:182xh5i3:1=vsa2c83>4}zf;i1<7?t}o0g>5<6std9i7>51z~yxFGKr9<6;m737577xFGJr:vLM^t}AB
$9;x5>6339$;9<5>4:3-=72<9;$?>6?;8:35#mE70980=U?427914+678;199?5=80976>37?2KYOEYFZ058EWQ]WFDGURMNSBCGMKAXKEA:46O]W[]LJI_XKEABBRKWTDPMEI723HX\VRAALX]@HNOIW_KGYH?m;@PT^ZIIDPUOO@Q\WHV@LLH@WJF@==5NRVX\KKJ^WMNYSN>>0:CQS_YHFESTHI\PC032?DTPRVEE@TQKDS]@HN713HX\VRAALX]G@WYAD@ZM@B^>5:CQS_YHFESTJOQJXUGQJDJ6:2KY[WQ@NM[\MKUSWG_Fi6O]W[]LJI_XXDIO=85NRVX\KKJ^W[OXIYQCOFK@5==FZ^PTCCBV_WCOMAYCNZUFCIKn;@QPKFYPA]Bm7LYU_BNHFP@SQYO:=;5NW[]@HNDRN]S[I<QAODFJP45<I^PTOAEPOTVSQQYSQYOh7LYU_GNLSQ_WM11J[WQ_ASVg?DQ]WZSEXEZ@OM68FJRO<2H^JJon;B8_XAid}doex~.nne"PaqrnfnyW~bj}ifwiXHot(mehy`katnq_kucikfxnQtw_tnbXgtffjbnQvflhl{XpjfxexSkl`afi`hs%|zl~ljj_gmq[vv6>$>3gQ|{l^woeujr{Uc{ob|j_ekqX+Zjiz~n~R{ca^aokfm)ph}?7NBD099@HN6XJ\Ln7NBD0^@VBBYNFZ^37NBD0^MVP3=DDB;3<;5LLJ0440=DDB8S46MCK3Z2<53<KEA2<85LLJFUg>EKCM\THDXFDD78GIMAJ11H@FHM_HL6?FJLNQ20OAEIX0:3=>EKCORTNXHi;BNHB]YE]OMTEC][c:AOOC^XL@\BHHk4CMIE\ZKRD]C[@T74CMIE\ZIR\<1H@FGA109@HNOIWMC]EIKPBX]1f>EKC@DTEO[IG028GIMNFVCIYKIPIOQWb>EKC@DTEO[IG^MVP==DDBCESD@l;BNHMKYWM[CDHh5LLJKM[VTDW]S[I<<4CMILQQYW@HYNS^FFFUa8GIMXNLOONLMD9:ALIHOS\LN<7N\JAUGG2>BDEVY[n6JLM^QS[LHT\m1OI^EJW^CGNPUS9;1OJ^QIRDSVAKE^WDEOIl5KLM]BJAYAP880HABPFSGRQ@HDQVGDHH;4DRQFJ43<L\^RSNWLLD]@KWTBK]CDB:5K_WCOQ@><MQ^N^COCa:DBGQIUQV@M96HNLRG:?CDX[F_YOHm4FDGGFDELWK_M56HFN^WMMQU?3OE^XR][R`9EKPRX]GC__l5IOTV\RDJRM81B96GMUGE;?LHSM[DJ@<?4JHVWAWYNFY__SYW_Eb9IMQRBZVZ@>]El;KKWP@TX^HF^I;5CO@FF@3=KGJANH>5COV18IM\03DU]MA[J7:LFPRIUC=1ECCK>;N:8KCBCZJZNn6^GARG\WMOA\01[ECFNSCWPe>VNF@YLBIKK8:RJJROC\A20\_GBTXRF55=WZFZT\D@FS@AWMSC23YYH@F84PRFLJ@2<XZOE46^\IOAGAF5<ZZ^i7^GHEYVFVKGK>2YBBJBJc:QWEWRRXV]JEY84SUCWQV753ZSXXHCPSXL@LWIIG\Y87YA_4:VQQ@><]ZOTNXHH9:WPAZDRNNY>7[GJW0`8\DQX^LXXEB@>d:ZJHLH_%QNI,= > RVVF%6)9)KXODG<;YQW2>^cjVCo==5Wdl]Neoiu^lxxeb`>0:ZgiZKnffx]i}foo78_5<7U<1P<79R4:cqs5<ljg<7{k}immdf>pbzzcdb-?!0g9{g6u689o&9{>01CDu5>3IJs>84I:782V2221>14:4>32261a<5?moowc6?:09m<4<13-=m6:j4}R67>=2=0>0:?>>:5e81<4?73Z?n65:586827662=m094?;?;R67>=2=0>0:?>>:5e81<7`f3Z?n65:586827662=o0:hll7;R67>=2=0>0:?>>:5g82`de13m2?6=4>:0yP00<?<32<6<=<047g>71cmm1}X:l50;395?>|[=?149477;307532l38<hhj4b6594?6=<32p(h475:&14?>13-8:6564$3093`=#?j0?7o:8:1827?6=8r.=n7:9;%d96c=#990<?6*>2;05?!742;<0(<:52`9'50<5>2.::789;%34>25<,821>6*>9;47?!7f2<;0(<l5229'06<03-9;655+368b?!5?2<1/?o4:1:&74??<,=;18k5+43850>"303==7):j:39'0<<182.?n78?;%6g>2><,<:1:6*:2;7b?!332?;0(885609'12<e3-?i68;4$709g>"1?3:0(::5509'3<<0i2.:=7j4$0d90d=#=m0:7);l:29j7d<72-<j65<4$7a93==<a:;1<7*9a;:1?!0d2>207d9>:18'2d<?:2.=5797;:k5b?6=,?k14?5+6884<>=n?90;6)8n:908 3?=?110e;j50;&5e?>53-<26:64;h6`>5<#>h03>6*99;5;?>i5>3:1(;o5839'2f<002.:h7<;;%3f>05<3f8n6=4+6`8;6>=h:h0;6)8n:908?j4e290/:l472:9l6c<72-<j65<4;n0`>5<#>h03>65`2e83>!0f21807b=<:18'2d<?:2.=o797;%3g>72<3f9?6=4+6`8;6>=h?<0;6)8n:918 3>=?110c8h50;&5e?>532e=i7>5$7c9<7=<uk9o6=4=:183!0e2<30e8650;&5e?>53-<h6:64;n46>5<#>h03>6*9c;5;?>{e:10;6?4?:1y'2g<5<2c>47>5$7c9<7=#>j0<465`6483>!0f2180(;m57998yg5129096=4?{%4a>72<a<21<7*9a;:1?!0d2>207b8::18'2d<?:2.=o797;:p7f<72;q68:4<a:?0`?023-;h6>k4}r11>5<5s4><6>?4=3:920=#9j0956s|2683>7}:<>09:63=8;7;?xu4=3:1>v3;7;10?8512<20q~=i:18285c2<20(:<5599~w6?=83;p1>85649'37<1=2wx?h4?:1y'37<1=2wx>44?:1y'37<1=2wvb?750;3xyk4f290:wp`=b;295~{i:j0;6<urn3f94?7|ug8n6=4>{|l1b?6=9rwe?=4?:0y~yx{GHJq85798162f`xFGJr:vLM^t}AB
/ula.v
23,12 → 23,15
`define cycleend(a,b) ((a)==(b+1))
 
module ula(
input clk14, // 14MHz master clock
input clk28, // 28MHz master clock
input reset_n, // to reset the ULA to normal color mode.
// CPU interfacing
input [15:0] a, // Address bus from CPU (not all lines are used)
input [7:0] din, // Input data bus from CPU
output [7:0] dout, // Output data bus to CPU
input a15, // Address bus from CPU (not all lines are used)
input a14,
input a7,
input a6,
input a2,
inout [7:0] d, // Data bus from/to CPU
input mreq_n, // MREQ from CPU
input ioreq_n, // IORQ+A0 from main board
input iorq_n, // IORQ from CPU
37,12 → 40,10
output clkcpu, // CLK to CPU
output msk_int_n, // Vertical retrace interrupt, to CPU
// VRAM interfacing
output [13:0] va, // Address bus to VRAM (16K)
input [7:0] vramdout,// Data from VRAM to ULA/CPU
output [7:0] vramdin,// Data from CPU to VRAM
output vramoe, //
output vramcs, // Control signals for VRAM
output vramwe, //
output [6:0] va, // Address bus to VRAM (16K)
output ras_n, //
output cas_n, // Control signals for VRAM
output dramwe_n, //
// ULA I/O
input ear, //
output mic, // I/O ports
64,13 → 65,22
reg ULAPlusConfig = 0; // bit 0 of reg.64
reg [7:0] ULAPlusAddrReg = 0; // ULA+ register address, BF3Bh port.
assign ulaplus_enabled = ULAPlusConfig;
wire addrportsel = !iorq_n && a[0] && !a[2] && (a[7:6]==2'b00) && (a[15:14]==2'b10); // port BF3Bh
wire dataportsel = !iorq_n && a[0] && !a[2] && (a[7:6]==2'b00) && (a[15:14]==2'b11); // port FF3Bh
wire a0 = (!ioreq_n && !iorq_n)? 0 : 1; // Regenerate a valid (for IORQ access) a0 signal
wire addrportsel = !iorq_n && a0 && !a2 && !a7 && !a6 && a15 && !a14; // port BF3Bh
wire dataportsel = !iorq_n && a0 && !a2 && !a7 && !a6 && a15 && a14; // port FF3Bh
wire cpu_writes_palette = dataportsel && !wr_n && (ULAPlusAddrReg[7:6]==2'b00); //=1 if CPU wants to write a palette entry to RAM
reg [5:0] paletteaddr; // address bus of palette RAM
wire [7:0] palettedout; // data out port of palette RAM
reg palettewe; // WE signal of palette RAM (palette RAM is always selected and output enabled)
 
// Clocks
reg [1:0] clk28div = 0;
always @(posedge clk28) // 28MHz for RAS/CAS generation
clk28div <= clk28div + 1;
wire clk7 = clk28div[1]; // For pixel operations
wire clk14 = clk28div[0]; // For palette operations
// Palette RAM instantiation
ram64bytes palette (
.clk(clk14), // only for write operations. Read operations are asynchronous
.a(paletteaddr),
79,11 → 89,6
.we(palettewe) // RAM is written if WE is enabled at the rising edge of clk
);
 
// Pixel clock
reg clk7 = 0;
always @(posedge clk14)
clk7 <= !clk7;
// Horizontal counter
reg [8:0] hc = 0;
always @(posedge clk7) begin
253,23 → 258,19
end
//CSync generation
assign csync = HSync_n & VSync_n;
assign csync = HSync_n & VSync_n;
// VRAM address and control line generation
// VRAM address and control line generation (TO-DO)
reg [13:0] rVA = 0;
reg rVCS = 0;
reg rVOE = 0;
reg rVWE = 0;
assign va = rVA;
assign vramcs = rVCS;
assign vramoe = rVOE;
assign vramwe = rVWE;
// Latches to hold delayed versions of V and H counters
reg [8:0] v = 0;
reg [8:0] c = 0;
// Address and control line multiplexor ULA/CPU
always @(negedge clk7) begin
if (Border_n && (hc[3:0]==4'b0111 || hc[3:0]==4'b1011)) begin // cycles 7 and 11: load V and C from VC and HC
if (Border_n && (hc[3:0]==7 || hc[3:0]==11)) begin // cycles 7 and 11: load V and C from VC and HC
c <= hc;
v <= vc;
end
276,7 → 277,7
end
// Address and control line multiplexor ULA/CPU
always @(*) begin
if (Border_n && (hc[3:0]==4'b1000 || hc[3:0]==4'b1001 || hc[3:0]==4'b1100 || hc[3:0]==4'b1101)) begin // cycles 8 and 12: present attribute address to VRAM
if (Border_n && (hc[3:0]==8 || hc[3:0]==9 || hc[3:0]==12 || hc[3:0]==13)) begin // cycles 8 and 12: present attribute address to VRAM
rVA = (TimexHiColorMode)? {1'b1,v[7:6],v[2:0],v[5:3],c[7:3]} : // (cycles 9 and 13 load attr byte).
{4'b0110,v[7:3],c[7:3]}; // Attribute address depends upon the mode selected
rVCS = 1;
283,13 → 284,13
rVOE = !hc[0];
rVWE = 0;
end
else if (Border_n && (hc[3:0]==4'b1010 || hc[3:0]==4'b1011 || hc[3:0]==4'b1110 || hc[3:0]==4'b1111)) begin // cycles 10 and 14: present display address to VRAM
else if (Border_n && (hc[3:0]==10 || hc[3:0]==11 || hc[3:0]==14 || hc[3:0]==15)) begin // cycles 10 and 14: present display address to VRAM
rVA = {1'b0,v[7:6],v[2:0],v[5:3],c[7:3]}; // (cycles 11 and 15 load display byte)
rVCS = 1;
rVOE = !hc[0];
rVWE = 0;
end
else if (Border_n && hc[3:0]==4'b0000) begin
else if (Border_n && hc[3:0]==0) begin
rVA = a[13:0];
rVCS = 0;
rVOE = 0;
296,13 → 297,20
rVWE = 0;
end
else begin // when VRAM is not in use by ULA, give it to CPU
rVA = a[13:0];
rVCS = !a[15] & a[14] & !mreq_n;
rVOE = !rd_n;
rVWE = !wr_n;
 
end
end
 
// RAS/CAS/DRAMWE generation
reg rRAS_n = 1;
reg rCAS_n = 1;
reg rDRAMWE_n = 1;
wire [5:0] RCycle = {hc[3:0],clk28div};
always @(posedge clk28) begin
 
// ULA+ : palette RAM address and control bus multiplexing
always @(*) begin
if (Border_n && (hc[3:0]==10 || hc[3:0]==14)) begin // present address of paper to palette RAM
/iseconfig/ulaplus_replacement.projectmgr
1,4 → 1,4
<?xml version="1.0" encoding="utf-8"?>
<?xml version='1.0' encoding='utf-8'?>
<!--This is an ISE project configuration file.-->
<!--It holds project specific layout data for the projectmgr plugin.-->
<!--Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved.-->
14,13 → 14,13
<ClosedNode>/ulaplus_tld C:|Documents and Settings|rodriguj|Mis documentos|opencores|zx_ula|branches|xilinx|ulaplus_replacement-upgrade_for_sp16-48k|rtl_ulaplus|ulaplus_tld.v/video_final_stage - rgbdtoa</ClosedNode>
</ClosedNodes>
<SelectedItems>
<SelectedItem>the_ula - ula (C:/Documents and Settings/rodriguj/Mis documentos/opencores/zx_ula/branches/xilinx/ulaplus_replacement-upgrade_for_sp16-48k/rtl_ulaplus/ula.v)</SelectedItem>
<SelectedItem>clock28mhz - master_ula_clock (C:/Documents and Settings/rodriguj/Mis documentos/opencores/zx_ula/branches/xilinx/ulaplus_replacement-upgrade_for_sp16-48k/rtl_ulaplus/ipcore_dir/master_ula_clock.xaw)</SelectedItem>
</SelectedItems>
<ScrollbarPosition orientation="vertical" >0</ScrollbarPosition>
<ScrollbarPosition orientation="horizontal" >0</ScrollbarPosition>
<ViewHeaderState orientation="horizontal" >000000ff0000000000000001000000010000000000000000000000000000000002020000000100000001000000640000015f000000020000000000000000000000000000000064ffffffff0000008100000000000000020000015f0000000100000000000000000000000100000000</ViewHeaderState>
<UserChangedColumnWidths orientation="horizontal" >false</UserChangedColumnWidths>
<CurrentItem>the_ula - ula (C:/Documents and Settings/rodriguj/Mis documentos/opencores/zx_ula/branches/xilinx/ulaplus_replacement-upgrade_for_sp16-48k/rtl_ulaplus/ula.v)</CurrentItem>
<CurrentItem>clock28mhz - master_ula_clock (C:/Documents and Settings/rodriguj/Mis documentos/opencores/zx_ula/branches/xilinx/ulaplus_replacement-upgrade_for_sp16-48k/rtl_ulaplus/ipcore_dir/master_ula_clock.xaw)</CurrentItem>
</ItemView>
<ItemView engineview="SynthesisOnly" sourcetype="" guiview="Process" >
<ClosedNodes>
28,13 → 28,13
<ClosedNode>Design Utilities</ClosedNode>
</ClosedNodes>
<SelectedItems>
<SelectedItem></SelectedItem>
<SelectedItem/>
</SelectedItems>
<ScrollbarPosition orientation="vertical" >0</ScrollbarPosition>
<ScrollbarPosition orientation="horizontal" >0</ScrollbarPosition>
<ViewHeaderState orientation="horizontal" >000000ff000000000000000100000001000000000000000000000000000000000000000000000000f6000000010000000100000000000000000000000064ffffffff000000810000000000000001000000f60000000100000000</ViewHeaderState>
<UserChangedColumnWidths orientation="horizontal" >false</UserChangedColumnWidths>
<CurrentItem></CurrentItem>
<CurrentItem/>
</ItemView>
<ItemView guiview="File" >
<ClosedNodes>
65,13 → 65,13
<ClosedNode>User Constraints</ClosedNode>
</ClosedNodes>
<SelectedItems>
<SelectedItem></SelectedItem>
<SelectedItem/>
</SelectedItems>
<ScrollbarPosition orientation="vertical" >0</ScrollbarPosition>
<ScrollbarPosition orientation="horizontal" >0</ScrollbarPosition>
<ViewHeaderState orientation="horizontal" >000000ff000000000000000100000001000000000000000000000000000000000000000000000000f6000000010000000100000000000000000000000064ffffffff000000810000000000000001000000f60000000100000000</ViewHeaderState>
<UserChangedColumnWidths orientation="horizontal" >false</UserChangedColumnWidths>
<CurrentItem></CurrentItem>
<CurrentItem/>
</ItemView>
<ItemView engineview="SynthesisOnly" sourcetype="DESUT_VERILOG" guiview="Process" >
<ClosedNodes>
95,10 → 95,12
<ClosedNodes>
<ClosedNodesVersion>1</ClosedNodesVersion>
</ClosedNodes>
<SelectedItems/>
<SelectedItems>
<SelectedItem></SelectedItem>
</SelectedItems>
<ScrollbarPosition orientation="vertical" >0</ScrollbarPosition>
<ScrollbarPosition orientation="horizontal" >0</ScrollbarPosition>
<ViewHeaderState orientation="horizontal" ></ViewHeaderState>
<ViewHeaderState orientation="horizontal" >000000ff000000000000000100000001000000000000000000000000000000000000000000000000f6000000010000000100000000000000000000000064ffffffff000000810000000000000001000000f60000000100000000</ViewHeaderState>
<UserChangedColumnWidths orientation="horizontal" >false</UserChangedColumnWidths>
<CurrentItem></CurrentItem>
</ItemView>
/ulaplus_tld.v
59,10 → 59,10
output csync
);
 
wire clk14;
master_ula_clock clock14mhz (
wire clk28;
master_ula_clock clock28mhz (
.CLKIN_IN(clk50),
.CLKFX_OUT(clk14),
.CLKFX_OUT(clk28),
.CLKIN_IBUFG_OUT(),
.CLK0_OUT()
);
75,7 → 75,7
wire [7:0] rgbulaplus;
ula the_ula (
.clk14(clk14),
.clk28(clk28),
.reset_n(reset_n),
.a15(a15),
.a14(a14),
82,8 → 82,7
.a7(a7),
.a6(a6),
.a2(a2),
.din(uladin),
.dout(uladout),
.d(d),
.mreq_n(mreq_n),
.ioreq_n(ioreq_n),
.iorq_n(iorq_n),
91,7 → 90,10
.wr_n(wr_n),
.clkcpu(cpuclk_n),
.int_n(int_n),
.va(va),
.va(va),
.ras_n(ras_n),
.cas_n(cas_n),
.dramwe_n(dramwe_n),
.ear(ear),
.mic(mic),
.spk(spk),
124,7 → 126,7
// Audio mixer
/////////////////////////////////////
mixer audio_mix (
.clkdac(clk14),
.clkdac(clk28),
.reset_n(reset_n),
.ear(ear),
.mic(mic),

powered by: WebSVN 2.1.0

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