Xilinx Virtex-6 FPGA User manual

Type
User manual
Virtex-6LibrariesGuidefor
HDLDesigns
UG623(v14.5)March20,2013
NoticeofDisclaimer
Theinformationdisclosedtoyouhereunder(the"Materials")isprovidedsolelyfortheselectionanduse
ofXilinxproducts.Tothemaximumextentpermittedbyapplicablelaw:(1)Materialsaremadeavailable
"ASIS"andwithallfaults,XilinxherebyDISCLAIMSALLWARRANTIESANDCONDITIONS,EXPRESS,
IMPLIED,ORSTATUTORY,INCLUDINGBUTNOTLIMITEDTOWARRANTIESOFMERCHANTABILITY,
NON-INFRINGEMENT,ORFITNESSFORANYPARTICULARPURPOSE;and(2)Xilinxshallnotbeliable
(whetherincontractortort,includingnegligence,orunderanyothertheoryofliability)foranylossordamage
ofanykindornaturerelatedto,arisingunder,orinconnectionwith,theMaterials(includingyouruseofthe
Materials),includingforanydirect,indirect,special,incidental,orconsequentiallossordamage(includingloss
ofdata,prots,goodwill,oranytypeoflossordamagesufferedasaresultofanyactionbroughtbyathird
party)evenifsuchdamageorlosswasreasonablyforeseeableorXilinxhadbeenadvisedofthepossibilityofthe
same.XilinxassumesnoobligationtocorrectanyerrorscontainedintheMaterialsortonotifyyouofupdatesto
theMaterialsortoproductspecications.Youmaynotreproduce,modify,distribute,orpubliclydisplaythe
Materialswithoutpriorwrittenconsent.CertainproductsaresubjecttothetermsandconditionsoftheLimited
Warrantieswhichcanbeviewedath
ttp://www.xilinx.com/warranty.htm;IPcoresmaybesubjecttowarranty
andsupporttermscontainedinalicenseissuedtoyoubyXilinx.Xilinxproductsarenotdesignedorintendedto
befail-safeorforuseinanyapplicationrequiringfail-safeperformance;youassumesoleriskandliabilityforuse
ofXilinxproductsinCriticalApplications:http://www.xilinx.com/warranty .htm#critapps.
©Copyright2002-2013XilinxInc.Allrightsreserved.Xilinx,theXilinxlogo,Artix,ISE,Kintex,Spartan,Virtex,
Vivado,Zynq,andotherdesignatedbrandsincludedhereinaretrademarksofXilinxintheUnitedStatesand
othercountries.Allothertrademarksarethepropertyoftheirrespectiveowners.
Virtex-6LibrariesGuideforHDLDesigns
2www.xilinx.comUG623(v14.5)March20,2013
Chapter1
Introduction
ThisHDLguideispartoftheISE®documentationcollection.Aseparateversionofthis
guideisavailableifyouprefertoworkwithschematics.
Thisguidecontainsthefollowing:
Introduction.
Descriptionsofeachavailablemacro.
Alistofdesignelementssupportedinthisarchitecture,organizedbyfunctional
categories.
Descriptionsofeachavailableprimitive.
AboutDesignElements
ThisversionoftheLibrariesGuidedescribesthevaliddesignelementsforVirtex®-6
devices,andincludesexamplesofinstantiationcodeforeachelement.Instantiation
templatesarealsosuppliedinaseparateZIPle,whichyoucanndinyourinstallation
directoryunderISE/doc/usenglish/isehelp.
Designelementsaredividedintothreemaincategories:
Macros-TheseelementsareintheUniMacrolibraryintheXilinxtool,andareused
toinstantiateprimitivesthatarecomplextoinstantiatebyjustusingtheprimitives.
Thesynthesistoolswillautomaticallyexpandtheunimacrostotheirunderlying
primitives.
Primitives-XilinxcomponentsthatarenativetotheFPGAyouaretargeting.Ifyou
instantiateaprimitiveinyourdesign,afterthetranslationprocess(ngdbuild)you
willendupwiththeexactsamecomponentinthebackend.Forexample,ifyou
instantiatetheVirtex®-5elementknownasISERDES_NODELAYasauserprimitive,
afteryouruntranslate(ngdbuild)youwillendupwithanISERDES_NODELAY
inthebackendaswell.IfyouwereusingISERDESinaVirtex-5device,thenthis
willautomaticallyretargettoanISERDES_NODELAYforVirtex-5inthebackend.
Hence,thisconceptofa“primitive”differsfromotherusesofthatterminthis
technology.
COREGeneratormaintainssoftwarelibrarieswithhundredsoffunctionaldesign
elements(UniMacrosandprimitives)fordifferentdevicearchitectures.Newfunctional
elementsareassembledwitheachreleaseofdevelopmentsystemsoftware.Inaddition
toacomprehensiveUniedLibrarycontainingalldesignelements,thisguideisonein
aseriesofarchitecture-speciclibraries.
Virtex-6LibrariesGuideforHDLDesigns
UG623(v14.5)March20,2013w
ww.xilinx.com3
Chapter1:Introduction
DesignEntryMethods
Foreachdesignelementinthisguide,Xilinxevaluatesfouroptionsforusingthedesign
element,andrecommendswhatwebelieveisthebestsolutionforyou.Thefouroptions
are:
Instantiation-Thiscomponentcanbeinstantiateddirectlyintothedesign.This
methodisusefulifyouwanttocontroltheexactplacementoftheindividualblocks.
Inference-Thiscomponentcanbeinferredbymostsupportedsynthesistools.You
shouldusethismethodifyouwanttohavecompleteexibilityandportabilityofthe
codetomultiplearchitectures.Inferencealsogivesthetoolstheabilitytooptimize
forperformance,area,orpower,asspeciedbytheusertothesynthesistool.
Coregen&Wizards-ThiscomponentcanbeusedthroughCOREGeneratoror
otherWizards.Youshouldusethismethodifyouwanttobuildlargeblocksofany
FPGAprimitivethatcannotbeinferred.Whenusingthisow,youwillhaveto
re-generateyourcoresforeacharchitecturethatyouaretargeting.
MacroSupport-ThiscomponenthasaUniMacrothatcanbeused.These
componentsareintheUniMacrolibraryintheXilinxtool,andareusedtoinstantiate
primitivesthataretoocomplextoinstantiatebyjustusingtheprimitives.The
synthesistoolswillautomaticallyexpandUniMacrostotheirunderlyingprimitives.
Virtex-6LibrariesGuideforHDLDesigns
4w
ww.xilinx.comUG623(v14.5)March20,2013
Chapter2
AboutUnimacros
ThissectiondescribestheunimacrosthatcanbeusedwithVirtex®-6devices.The
unimacrosareorganizedalphabetically.
Thefollowinginformationisprovidedforeachunimacro,whereapplicable:
Nameofelement
Briefdescription
Schematicsymbol
Logictable(ifany)
Portdescriptions
DesignEntryMethod
Availableattributes
Exampleinstantiationcode
Formoreinformation
Virtex-6LibrariesGuideforHDLDesigns
UG623(v14.5)March20,2013w
ww.xilinx.com5
Chapter2:AboutUnimacros
BRAM_SDP_MACRO
Macro:SimpleDualPortRAM
Introduction
FPGAdevicescontainseveralblockRAMmemoriesthatcanbeconguredasgeneral-purpose36Kbor18Kb
RAM/ROMmemories.TheseblockRAMmemoriesofferfastandexiblestorageoflargeamountsofon-chip
data.Bothreadandwriteoperationsarefullysynchronoustothesuppliedclock(s)ofthecomponent.However,
readandwriteportscanoperatefullyindependentlyandasynchronouslytoeachother,accessingthesame
memoryarray .Byte-enablewriteoperationsarepossible,andanoptionaloutputregistercanbeusedtoreduce
theclock-to-outtimesoftheRAM.
NoteThiselement,mustbeconguredsothatreadandwriteportshavethesamewidth.
PortDescription
NameDirectionWidth(Bits)Function
OutputPorts
DOOutput
SeeCongurationTableDataoutputbusaddressedbyRDADDR.
InputPorts
DIInput
SeeCongurationTableDatainputbusaddressedbyWRADDR.
WRADDR,
RDADDR
Input
SeeCongurationTable
Write/Readaddressinputbuses.
WE
Input
SeeCongurationTableByte-WideWriteenable.
Virtex-6LibrariesGuideforHDLDesigns
6w
ww.xilinx.comUG623(v14.5)March20,2013
Chapter2:AboutUnimacros
NameDirectionWidth(Bits)Function
WREN,
RDEN
Input1
Write/Readenable
SSR
Input1
Outputregisterssynchronousreset.
REGCE
Input1
Outputregisterclockenableinput(validonly
whenDO_REG=1)
WRCLK,
RDCLK
Input1
Write/Readclockinput.
ConfigurationTable
DATA_WIDTHBRAM_SIZEADDRWE
72-37
36Kb
98
36Kb
10 36-19
18Kb
9
4
36Kb
11 18-10
18Kb
10
2
36Kb
12 9-5
18Kb
11
1
36Kb
13 4-3
18Kb
12
1
36Kb
14 2
18Kb
13
1
36Kb
15 1
18Kb
14
1
DesignEntryMethod
Thisunimacrocanbeinstantiatedonly.Itisaparameterizableversionoftheprimitive.ConsulttheConguration
Tableabovetocorrectlycongureittomeetyourdesignneeds.
Instantiation
Yes
Inference
No
COREGenerator™andwizards
No
Macrosupport
Recommended
Virtex-6LibrariesGuideforHDLDesigns
UG623(v14.5)March20,2013w
ww.xilinx.com7
Chapter2:AboutUnimacros
AvailableAttributes
AttributeDataTypeAllowedValuesDefaultDescription
BRAM_SIZEString
"36Kb","18Kb""18Kb"ConguresRAMas"36Kb"or"18Kb"
memory.
DO_REG
Integer0,10
Avalueof1enablestotheoutput
registerstotheRAMenablingquicker
clock-to-outfromtheRAMatthe
expenseofanaddedclockcycleof
readlatency .Avalueof0allowsa
readinoneclockcyclebutwillhave
slowerclocktoouttiming.
INIT
HexadecimalAny72-BitValueAllzerosSpeciestheinitialvalueonthe
outputafterconguration.
READ_WIDTH,
WRITE_WIDTH
Integer1-7236
SpeciesthesizeoftheDIandDO
buses.
Thefollowingcombinationsare
allowed:
READ_WIDTH=
WRITE_WIDTH
Ifasymmetric,READ_WIDTH
andWRITE_WIDTHmustbein
theratioof2,ormustbevalues
allowedbytheunisim(1,2,4,8,
9,16,18,32,36,64,72)
INIT_FILE
StringStringrepresenting
lenameand
location
None
Nameofthelecontaininginitial
values.
SIM_COLLISION_
CHECK
String"ALL",
"WARNING_
ONLY",
"GENERATE_X_
ONLY",
"NONE"
"ALL"
Allowsmodicationofthesimulation
behaviorifamemorycollisionoccurs.
Theoutputisaffectedasfollows:
"ALL"-Warningproduced
andaffectedoutputs/memory
locationgounknown(X).
"WARNING_ONLY"-Warning
producedandaffected
outputs/memoryretainlast
value.
"GENERATE_X_ONLY"-No
warning.However,affected
outputs/memorygounknown
(X).
"NONE"-Nowarningand
affectedoutputs/memoryretain
lastvalue.
NoteSettingthistoavalueother
than"ALL"canallowproblemsin
thedesigngounnoticedduring
simulation.Careshouldbetaken
whenchangingthevalueofthis
attribute.PleaseseetheSynthesis
andSimulationDesignGuideformore
information.
Virtex-6LibrariesGuideforHDLDesigns
8w
ww.xilinx.comUG623(v14.5)March20,2013
Chapter2:AboutUnimacros
AttributeDataTypeAllowedValuesDefaultDescription
SIM_MODEString"SAFE","FAST"."SAFE"
Thisisasimulationonlyattribute.It
willdirectthesimulationmodelto
runinperformance-orientedmode
whensetto"FAST."Pleaseseethe
SynthesisandSimulationDesignGuide
formoreinformation.
SRVAL
HexadecimalAny72-BitValueAllzeroesSpeciestheoutputvalueofonthe
DOportupontheassertionofthe
synchronousreset(RST)signal.
INIT_00to
INIT_7F
HexadecimalAny256-BitValueAllzeroesAllowsspecicationoftheinitial
contentsofthe16Kbor32Kbdata
memoryarray .
INITP_00to
INITP_0F
HexadecimalAny256-BitValueAllzeroesAllowsspecicationoftheinitial
contentsofthe2Kbor4Kbparity
datamemoryarray.
VHDLInstantiationTemplate
Unlesstheyalreadyexist,copythefollowingtwostatementsandpastethembeforetheentitydeclaration.
LibraryUNISIM;
useUNISIM.vcomponents.all;
--BRAM_SDP_MACRO:SimpleDualPortRAM
--Virtex-6
--XilinxHDLLibrariesGuide,version14.5
--Note-ThisUnimacromodelassumestheportdirectionstobe"downto".
--Simulationofthismodelwith"to"intheportdirectionscouldleadtoerroneousresults.
-----------------------------------------------------------------------
--READ_WIDTH|BRAM_SIZE|READDepth|RDADDRWidth|--
--WRITE_WIDTH||WRITEDepth|WRADDRWidth|WEWidth--
--============|===========|=============|==============|============--
--37-72|"36Kb"|512|9-bit|8-bit--
--19-36|"36Kb"|1024|10-bit|4-bit--
--19-36|"18Kb"|512|9-bit|4-bit--
--10-18|"36Kb"|2048|11-bit|2-bit--
--10-18|"18Kb"|1024|10-bit|2-bit--
--5-9|"36Kb"|4096|12-bit|1-bit--
--5-9|"18Kb"|2048|11-bit|1-bit--
--3-4|"36Kb"|8192|13-bit|1-bit--
--3-4|"18Kb"|4096|12-bit|1-bit--
--2|"36Kb"|16384|14-bit|1-bit--
--2|"18Kb"|8192|13-bit|1-bit--
--1|"36Kb"|32768|15-bit|1-bit--
--1|"18Kb"|16384|14-bit|1-bit--
-----------------------------------------------------------------------
BRAM_SDP_MACRO_inst:BRAM_SDP_MACRO
genericmap(
BRAM_SIZE=>"18Kb",--TargetBRAM,"18Kb"or"36Kb"
DEVICE=>"VIRTEX6",--Targetdevice:"VIRTEX5","VIRTEX6","SPARTAN6"
WRITE_WIDTH=>0,--Validvaluesare1-72(37-72onlyvalidwhenBRAM_SIZE="36Kb")
READ_WIDTH=>0,--Validvaluesare1-72(37-72onlyvalidwhenBRAM_SIZE="36Kb")
DO_REG=>0,--Optionaloutputregister(0or1)
INIT_FILE=>"NONE",
SIM_COLLISION_CHECK=>"ALL",--Collisioncheckenable"ALL","WARNING_ONLY",
--"GENERATE_X_ONLY"or"NONE"
SRVAL=>X"000000000000000000",--Set/Resetvalueforportoutput
INIT=>X"000000000000000000",--Initialvaluesonoutputport
--ThefollowingINIT_xxdeclarationsspecifytheinitialcontentsoftheRAM
INIT_00=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_01=>X"0000000000000000000000000000000000000000000000000000000000000000",
Virtex-6LibrariesGuideforHDLDesigns
UG623(v14.5)March20,2013w
ww.xilinx.com9
Chapter2:AboutUnimacros
INIT_02=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_03=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_04=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_05=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_06=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_07=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_08=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_09=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_0A=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_0B=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_0C=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_0D=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_0E=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_0F=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_10=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_11=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_12=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_13=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_14=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_15=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_16=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_17=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_18=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_19=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_1A=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_1B=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_1C=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_1D=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_1E=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_1F=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_20=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_21=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_22=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_23=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_24=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_25=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_26=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_27=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_28=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_29=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_2A=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_2B=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_2C=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_2D=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_2E=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_2F=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_30=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_31=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_32=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_33=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_34=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_35=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_36=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_37=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_38=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_39=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_3A=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_3B=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_3C=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_3D=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_3E=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_3F=>X"0000000000000000000000000000000000000000000000000000000000000000",
--ThenextsetofINIT_xxarevalidwhenconfiguredas36Kb
INIT_40=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_41=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_42=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_43=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_44=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_45=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_46=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_47=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_48=>X"0000000000000000000000000000000000000000000000000000000000000000",
Virtex-6LibrariesGuideforHDLDesigns
10w
ww.xilinx.comUG623(v14.5)March20,2013
Chapter2:AboutUnimacros
INIT_49=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_4A=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_4B=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_4C=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_4D=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_4E=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_4F=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_50=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_51=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_52=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_53=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_54=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_55=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_56=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_57=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_58=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_59=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_5A=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_5B=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_5C=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_5D=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_5E=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_5F=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_60=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_61=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_62=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_63=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_64=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_65=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_66=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_67=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_68=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_69=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_6A=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_6B=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_6C=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_6D=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_6E=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_6F=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_70=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_71=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_72=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_73=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_74=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_75=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_76=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_77=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_78=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_79=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_7A=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_7B=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_7C=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_7D=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_7E=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_7F=>X"0000000000000000000000000000000000000000000000000000000000000000",
--ThenextsetofINITP_xxarefortheparitybits
INITP_00=>X"0000000000000000000000000000000000000000000000000000000000000000",
INITP_01=>X"0000000000000000000000000000000000000000000000000000000000000000",
INITP_02=>X"0000000000000000000000000000000000000000000000000000000000000000",
INITP_03=>X"0000000000000000000000000000000000000000000000000000000000000000",
INITP_04=>X"0000000000000000000000000000000000000000000000000000000000000000",
INITP_05=>X"0000000000000000000000000000000000000000000000000000000000000000",
INITP_06=>X"0000000000000000000000000000000000000000000000000000000000000000",
INITP_07=>X"0000000000000000000000000000000000000000000000000000000000000000",
--ThenextsetofINIT_xxarevalidwhenconfiguredas36Kb
INITP_08=>X"0000000000000000000000000000000000000000000000000000000000000000",
INITP_09=>X"0000000000000000000000000000000000000000000000000000000000000000",
INITP_0A=>X"0000000000000000000000000000000000000000000000000000000000000000",
INITP_0B=>X"0000000000000000000000000000000000000000000000000000000000000000",
INITP_0C=>X"0000000000000000000000000000000000000000000000000000000000000000",
INITP_0D=>X"0000000000000000000000000000000000000000000000000000000000000000",
Virtex-6LibrariesGuideforHDLDesigns
UG623(v14.5)March20,2013w
ww.xilinx.com11
Chapter2:AboutUnimacros
INITP_0E=>X"0000000000000000000000000000000000000000000000000000000000000000",
INITP_0F=>X"0000000000000000000000000000000000000000000000000000000000000000")
portmap(
DO=>DO,--Outputreaddataport,widthdefinedbyREAD_WIDTHparameter
DI=>DI,--Inputwritedataport,widthdefinedbyWRITE_WIDTHparameter
RDADDR=>RDADDR,--Inputreadaddress,widthdefinedbyreadportdepth
RDCLK=>RDCLK,--1-bitinputreadclock
RDEN=>RDEN,--1-bitinputreadportenable
REGCE=>REGCE,--1-bitinputreadoutputregisterenable
RST=>RST,--1-bitinputreset
WE=>WE,--Inputwriteenable,widthdefinedbywriteportdepth
WRADDR=>WRADDR,--Inputwriteaddress,widthdefinedbywriteportdepth
WRCLK=>WRCLK,--1-bitinputwriteclock
WREN=>WREN--1-bitinputwriteportenable
);
--EndofBRAM_SDP_MACRO_instinstantiation
VerilogInstantiationTemplate
//BRAM_SDP_MACRO:SimpleDualPortRAM
//Virtex-6
//XilinxHDLLibrariesGuide,version14.5
///////////////////////////////////////////////////////////////////////
//READ_WIDTH|BRAM_SIZE|READDepth|RDADDRWidth|//
//WRITE_WIDTH||WRITEDepth|WRADDRWidth|WEWidth//
//============|===========|=============|==============|============//
//37-72|"36Kb"|512|9-bit|8-bit//
//19-36|"36Kb"|1024|10-bit|4-bit//
//19-36|"18Kb"|512|9-bit|4-bit//
//10-18|"36Kb"|2048|11-bit|2-bit//
//10-18|"18Kb"|1024|10-bit|2-bit//
//5-9|"36Kb"|4096|12-bit|1-bit//
//5-9|"18Kb"|2048|11-bit|1-bit//
//3-4|"36Kb"|8192|13-bit|1-bit//
//3-4|"18Kb"|4096|12-bit|1-bit//
//2|"36Kb"|16384|14-bit|1-bit//
//2|"18Kb"|8192|13-bit|1-bit//
//1|"36Kb"|32768|15-bit|1-bit//
//1|"18Kb"|16384|14-bit|1-bit//
///////////////////////////////////////////////////////////////////////
BRAM_SDP_MACRO#(
.BRAM_SIZE("18Kb"),//TargetBRAM,"18Kb"or"36Kb"
.DEVICE("VIRTEX6"),//Targetdevice:"VIRTEX5","VIRTEX6","SPARTAN6"
.WRITE_WIDTH(0),//Validvaluesare1-72(37-72onlyvalidwhenBRAM_SIZE="36Kb")
.READ_WIDTH(0),//Validvaluesare1-72(37-72onlyvalidwhenBRAM_SIZE="36Kb")
.DO_REG(0),//Optionaloutputregister(0or1)
.INIT_FILE("NONE"),
.SIM_COLLISION_CHECK("ALL"),//Collisioncheckenable"ALL","WARNING_ONLY",
//"GENERATE_X_ONLY"or"NONE"
.SRVAL(72’h000000000000000000),//Set/Resetvalueforportoutput
.INIT(72’h000000000000000000),//Initialvaluesonoutputport
.WRITE_MODE("WRITE_FIRST"),//Specify"READ_FIRST"forsameclockorsynchronousclocks
//Specify"WRITE_FIRSTforasynchronousclocksonports
.INIT_00(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256’h0000000000000000000000000000000000000000000000000000000000000000),
Virtex-6LibrariesGuideforHDLDesigns
12w
ww.xilinx.comUG623(v14.5)March20,2013
Chapter2:AboutUnimacros
.INIT_10(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_20(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_30(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256’h0000000000000000000000000000000000000000000000000000000000000000),
//ThenextsetofINIT_xxarevalidwhenconfiguredas36Kb
.INIT_40(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_41(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_42(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_43(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_44(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_45(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_46(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_47(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_48(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_49(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_4A(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_4B(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_4C(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_4D(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_4E(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_4F(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_50(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_51(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_52(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_53(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_54(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_55(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_56(256’h0000000000000000000000000000000000000000000000000000000000000000),
Virtex-6LibrariesGuideforHDLDesigns
UG623(v14.5)March20,2013w
ww.xilinx.com13
Chapter2:AboutUnimacros
.INIT_57(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_58(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_59(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_5A(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_5B(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_5C(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_5D(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_5E(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_5F(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_60(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_61(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_62(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_63(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_64(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_65(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_66(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_67(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_68(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_69(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_6A(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_6B(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_6C(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_6D(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_6E(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_6F(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_70(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_71(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_72(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_73(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_74(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_75(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_76(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_77(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_78(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_79(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_7A(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_7B(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_7C(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_7D(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_7E(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_7F(256’h0000000000000000000000000000000000000000000000000000000000000000),
//ThenextsetofINITP_xxarefortheparitybits
.INITP_00(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_02(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_04(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_06(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256’h0000000000000000000000000000000000000000000000000000000000000000),
//ThenextsetofINITP_xxarevalidwhenconfiguredas36Kb
.INITP_08(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_09(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_0A(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_0B(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_0C(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_0D(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_0E(256’h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_0F(256’h0000000000000000000000000000000000000000000000000000000000000000)
)BRAM_SDP_MACRO_inst(
.DO(DO),//Outputreaddataport,widthdefinedbyREAD_WIDTHparameter
.DI(DI),//Inputwritedataport,widthdefinedbyWRITE_WIDTHparameter
.RDADDR(RDADDR),//Inputreadaddress,widthdefinedbyreadportdepth
.RDCLK(RDCLK),//1-bitinputreadclock
.RDEN(RDEN),//1-bitinputreadportenable
.REGCE(REGCE),//1-bitinputreadoutputregisterenable
.RST(RST),//1-bitinputreset
.WE(WE),//Inputwriteenable,widthdefinedbywriteportdepth
.WRADDR(WRADDR),//Inputwriteaddress,widthdefinedbywriteportdepth
.WRCLK(WRCLK),//1-bitinputwriteclock
.WREN(WREN)//1-bitinputwriteportenable
Virtex-6LibrariesGuideforHDLDesigns
14w
ww.xilinx.comUG623(v14.5)March20,2013
Chapter2:AboutUnimacros
);
//EndofBRAM_SDP_MACRO_instinstantiation
ForMoreInformation
SeetheVirtex-6FPGAUserDocumentation(UserGuidesandDataSheets).
Virtex-6LibrariesGuideforHDLDesigns
UG623(v14.5)March20,2013w
ww.xilinx.com15
Chapter2:AboutUnimacros
BRAM_SINGLE_MACRO
Macro:SinglePortRAM
Introduction
FPGAdevicescontainseveralblockRAMmemoriesthatcanbeconguredasgeneral-purpose36Kbor18Kb
RAM/ROMmemories.Thesesingle-port,blockRAMmemoriesofferfastandexiblestorageoflargeamounts
ofon-chipdata.Byte-enablewriteoperationsarepossible,andanoptionaloutputregistercanbeusedto
reducetheclock-to-outtimesoftheRAM.
PortDescription
NameDirectionWidthFunction
OutputPorts
DOOutput
SeeCongurationTable
below.
DataoutputbusaddressedbyADDR.
InputPorts
DIInput
SeeCongurationTable
below.
DatainputbusaddressedbyADDR.
ADDR
Input
SeeCongurationTable
below.
Addressinputbus.
WE
Input
SeeCongurationTable
below.
Byte-WideWriteenable.
ENInput1
Write/Readenables.
RST
Input1
Outputregisterssynchronousreset.
REGCE
Input1
Outputregisterclockenableinput(validonlywhen
DO_REG=1)
CLK
Input1
Clockinput.
Virtex-6LibrariesGuideforHDLDesigns
16w
ww.xilinx.comUG623(v14.5)March20,2013
Chapter2:AboutUnimacros
ConfigurationTable
WRITE_WIDTHREAD_WIDTHBRAM_SIZEADDRWE
37-729
36-1910
18-1011
9-512
4-313
214
37-72
1
36Kb
15
8
36-1910
18-1011
9-512
4-313
214
36-19
1
36Kb
15
4
36-1911
18-1011
9-512
4-313
214
18-10
1
36Kb
15
2
36-1912
18-1012
9-512
4-313
214
9-5
1
36Kb
15
1
36-1913
18-1013
9-513
4-313
214
4-3
1
36Kb
15
1
36-1914
18-1014
9-514
4-314
214
2
1
36Kb
15
1
Virtex-6LibrariesGuideforHDLDesigns
UG623(v14.5)March20,2013w
ww.xilinx.com17
Chapter2:AboutUnimacros
WRITE_WIDTHREAD_WIDTHBRAM_SIZEADDRWE
36-1915
18-1015
9-515
3-415
215
1
1
36Kb
15
1
18-1010
9-511
4-312
213
18-10
1
18Kb
14
2
18-1011
9-511
4-312
213
9-5
1
18Kb
14
1
18-1012
9-512
4-312
213
4-3
1
18Kb
14
1
18-1013
9-513
4-313
213
2
1
18Kb
14
1
18-1014
9-514
4-314
214
1
1
18Kb
14
1
Virtex-6LibrariesGuideforHDLDesigns
18w
ww.xilinx.comUG623(v14.5)March20,2013
Chapter2:AboutUnimacros
DesignEntryMethod
Thisunimacrocanbeinstantiatedonly.Itisaparameterizableversionoftheprimitive.Consulttheabove
CongurationTableincorrectlyconguringthiselementtomeetyourdesignneeds.
Instantiation
Yes
Inference
No
COREGenerator™andwizards
No
Macrosupport
Recommended
AvailableAttributes
AttributeDataTypeAllowedValuesDefaultDescription
BRAM_SIZEString
"36Kb","18Kb""18Kb"ConguresRAMas36Kbor18Kbmemory.
DO_REG
Integer0,10
Avalueof1enablestotheoutputregisters
totheRAMenablingquickerclock-to-out
fromtheRAMattheexpenseofanadded
clockcycleofreadlatency.Avalueof0
allowsareadinoneclockcyclebutwillhave
slowerclocktoouttiming.
READ_WIDTH,
WRITE_WIDTH
Integer1-361
SpeciesthesizeoftheDIandDObuses.
Thefollowingcombinationsareallowed:
READ_WIDTH=WRITE_WIDTH
Ifasymmetric,READ_WIDTHand
WRITE_WIDTHmustbeintheratio
of2,ormustbevaluesallowedbythe
unisim(1,2,4,8,9,16,18,32,36,64,72)
INIT_FILE
StringString
representingle
nameandlocation
NONE
Nameofthelecontaininginitialvalues.
WRITE_MODE
String"READ_FIRST",
"WRITE_FIRST",
"NO_CHANGE"
"WRITE_FIRST"
Specieswritemodetothememory
INIT
HexadecimalAny72-BitValueAllzerosSpeciestheinitialvalueontheoutputafter
conguration.
SRVAL
HexadecimalAny72-BitValueAllzeroesSpeciestheoutputvalueofontheDOport
upontheassertionofthesynchronousreset
(RST)signal.
SIM_MODEString"SAFE","FAST""SAFE"
Thisisasimulationonlyattribute.It
willdirectthesimulationmodeltorun
inperformance-orientedmodewhen
setto"FAST."PleaseseetheSynthesis
andSimulationDesignGuideformore
information.
INIT_00to
INIT_FF
HexadecimalAny256-BitValueAllzeroesAllowsspecicationoftheinitialcontentsof
the16Kbor32Kbdatamemoryarray.
INITP_00to
INITP_0F
HexadecimalAny256-BitValueAllzeroesAllowsspecicationoftheinitialcontentsof
the2Kbor4Kbparitydatamemoryarray .
VHDLInstantiationTemplate
Unlesstheyalreadyexist,copythefollowingtwostatementsandpastethembeforetheentitydeclaration.
Virtex-6LibrariesGuideforHDLDesigns
UG623(v14.5)March20,2013w
ww.xilinx.com19
Chapter2:AboutUnimacros
LibraryUNISIM;
useUNISIM.vcomponents.all;
--BRAM_SINGLE_MACRO:SinglePortRAM
--Virtex-6
--XilinxHDLLibrariesGuide,version14.5
--Note-ThisUnimacromodelassumestheportdirectionstobe"downto".
--Simulationofthismodelwith"to"intheportdirectionscouldleadtoerroneousresults.
---------------------------------------------------------------------
--READ_WIDTH|BRAM_SIZE|READDepth|ADDRWidth|--
--WRITE_WIDTH||WRITEDepth||WEWidth--
--============|===========|=============|============|============--
--37-72|"36Kb"|512|9-bit|8-bit--
--19-36|"36Kb"|1024|10-bit|4-bit--
--19-36|"18Kb"|512|9-bit|4-bit--
--10-18|"36Kb"|2048|11-bit|2-bit--
--10-18|"18Kb"|1024|10-bit|2-bit--
--5-9|"36Kb"|4096|12-bit|1-bit--
--5-9|"18Kb"|2048|11-bit|1-bit--
--3-4|"36Kb"|8192|13-bit|1-bit--
--3-4|"18Kb"|4096|12-bit|1-bit--
--2|"36Kb"|16384|14-bit|1-bit--
--2|"18Kb"|8192|13-bit|1-bit--
--1|"36Kb"|32768|15-bit|1-bit--
--1|"18Kb"|16384|14-bit|1-bit--
---------------------------------------------------------------------
BRAM_SINGLE_MACRO_inst:BRAM_SINGLE_MACRO
genericmap(
BRAM_SIZE=>"18Kb",--TargetBRAM,"18Kb"or"36Kb"
DEVICE=>"VIRTEX6",--TargetDevice:"VIRTEX5","VIRTEX6","SPARTAN6"
DO_REG=>0,--Optionaloutputregister(0or1)
INIT=>X"000000000",--Initialvaluesonoutputport
INIT_FILE=>"NONE",
WRITE_WIDTH=>0,--Validvaluesare1-72(37-72onlyvalidwhenBRAM_SIZE="36Kb")
READ_WIDTH=>0,--Validvaluesare1-72(37-72onlyvalidwhenBRAM_SIZE="36Kb")
SRVAL=>X"000000000",--Set/Resetvalueforportoutput
WRITE_MODE=>"WRITE_FIRST",--"WRITE_FIRST","READ_FIRST"or"NO_CHANGE"
--ThefollowingINIT_xxdeclarationsspecifytheinitialcontentsoftheRAM
INIT_00=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_01=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_02=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_03=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_04=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_05=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_06=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_07=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_08=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_09=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_0A=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_0B=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_0C=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_0D=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_0E=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_0F=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_10=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_11=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_12=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_13=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_14=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_15=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_16=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_17=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_18=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_19=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_1A=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_1B=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_1C=>X"0000000000000000000000000000000000000000000000000000000000000000",
INIT_1D=>X"0000000000000000000000000000000000000000000000000000000000000000",
Virtex-6LibrariesGuideforHDLDesigns
20w
ww.xilinx.comUG623(v14.5)March20,2013
  • Page 1 1
  • Page 2 2
  • Page 3 3
  • Page 4 4
  • Page 5 5
  • Page 6 6
  • Page 7 7
  • Page 8 8
  • Page 9 9
  • Page 10 10
  • Page 11 11
  • Page 12 12
  • Page 13 13
  • Page 14 14
  • Page 15 15
  • Page 16 16
  • Page 17 17
  • Page 18 18
  • Page 19 19
  • Page 20 20
  • Page 21 21
  • Page 22 22
  • Page 23 23
  • Page 24 24
  • Page 25 25
  • Page 26 26
  • Page 27 27
  • Page 28 28
  • Page 29 29
  • Page 30 30
  • Page 31 31
  • Page 32 32
  • Page 33 33
  • Page 34 34
  • Page 35 35
  • Page 36 36
  • Page 37 37
  • Page 38 38
  • Page 39 39
  • Page 40 40
  • Page 41 41
  • Page 42 42
  • Page 43 43
  • Page 44 44
  • Page 45 45
  • Page 46 46
  • Page 47 47
  • Page 48 48
  • Page 49 49
  • Page 50 50
  • Page 51 51
  • Page 52 52
  • Page 53 53
  • Page 54 54
  • Page 55 55
  • Page 56 56
  • Page 57 57
  • Page 58 58
  • Page 59 59
  • Page 60 60
  • Page 61 61
  • Page 62 62
  • Page 63 63
  • Page 64 64
  • Page 65 65
  • Page 66 66
  • Page 67 67
  • Page 68 68
  • Page 69 69
  • Page 70 70
  • Page 71 71
  • Page 72 72
  • Page 73 73
  • Page 74 74
  • Page 75 75
  • Page 76 76
  • Page 77 77
  • Page 78 78
  • Page 79 79
  • Page 80 80
  • Page 81 81
  • Page 82 82
  • Page 83 83
  • Page 84 84
  • Page 85 85
  • Page 86 86
  • Page 87 87
  • Page 88 88
  • Page 89 89
  • Page 90 90
  • Page 91 91
  • Page 92 92
  • Page 93 93
  • Page 94 94
  • Page 95 95
  • Page 96 96
  • Page 97 97
  • Page 98 98
  • Page 99 99
  • Page 100 100
  • Page 101 101
  • Page 102 102
  • Page 103 103
  • Page 104 104
  • Page 105 105
  • Page 106 106
  • Page 107 107
  • Page 108 108
  • Page 109 109
  • Page 110 110
  • Page 111 111
  • Page 112 112
  • Page 113 113
  • Page 114 114
  • Page 115 115
  • Page 116 116
  • Page 117 117
  • Page 118 118
  • Page 119 119
  • Page 120 120
  • Page 121 121
  • Page 122 122
  • Page 123 123
  • Page 124 124
  • Page 125 125
  • Page 126 126
  • Page 127 127
  • Page 128 128
  • Page 129 129
  • Page 130 130
  • Page 131 131
  • Page 132 132
  • Page 133 133
  • Page 134 134
  • Page 135 135
  • Page 136 136
  • Page 137 137
  • Page 138 138
  • Page 139 139
  • Page 140 140
  • Page 141 141
  • Page 142 142
  • Page 143 143
  • Page 144 144
  • Page 145 145
  • Page 146 146
  • Page 147 147
  • Page 148 148
  • Page 149 149
  • Page 150 150
  • Page 151 151
  • Page 152 152
  • Page 153 153
  • Page 154 154
  • Page 155 155
  • Page 156 156
  • Page 157 157
  • Page 158 158
  • Page 159 159
  • Page 160 160
  • Page 161 161
  • Page 162 162
  • Page 163 163
  • Page 164 164
  • Page 165 165
  • Page 166 166
  • Page 167 167
  • Page 168 168
  • Page 169 169
  • Page 170 170
  • Page 171 171
  • Page 172 172
  • Page 173 173
  • Page 174 174
  • Page 175 175
  • Page 176 176
  • Page 177 177
  • Page 178 178
  • Page 179 179
  • Page 180 180
  • Page 181 181
  • Page 182 182
  • Page 183 183
  • Page 184 184
  • Page 185 185
  • Page 186 186
  • Page 187 187
  • Page 188 188
  • Page 189 189
  • Page 190 190
  • Page 191 191
  • Page 192 192
  • Page 193 193
  • Page 194 194
  • Page 195 195
  • Page 196 196
  • Page 197 197
  • Page 198 198
  • Page 199 199
  • Page 200 200
  • Page 201 201
  • Page 202 202
  • Page 203 203
  • Page 204 204
  • Page 205 205
  • Page 206 206
  • Page 207 207
  • Page 208 208
  • Page 209 209
  • Page 210 210
  • Page 211 211
  • Page 212 212
  • Page 213 213
  • Page 214 214
  • Page 215 215
  • Page 216 216
  • Page 217 217
  • Page 218 218
  • Page 219 219
  • Page 220 220
  • Page 221 221
  • Page 222 222
  • Page 223 223
  • Page 224 224
  • Page 225 225
  • Page 226 226
  • Page 227 227
  • Page 228 228
  • Page 229 229
  • Page 230 230
  • Page 231 231
  • Page 232 232
  • Page 233 233
  • Page 234 234
  • Page 235 235
  • Page 236 236
  • Page 237 237
  • Page 238 238
  • Page 239 239
  • Page 240 240
  • Page 241 241
  • Page 242 242
  • Page 243 243
  • Page 244 244
  • Page 245 245
  • Page 246 246
  • Page 247 247
  • Page 248 248
  • Page 249 249
  • Page 250 250
  • Page 251 251
  • Page 252 252
  • Page 253 253
  • Page 254 254
  • Page 255 255
  • Page 256 256
  • Page 257 257
  • Page 258 258
  • Page 259 259
  • Page 260 260
  • Page 261 261
  • Page 262 262
  • Page 263 263
  • Page 264 264
  • Page 265 265
  • Page 266 266
  • Page 267 267
  • Page 268 268
  • Page 269 269
  • Page 270 270
  • Page 271 271
  • Page 272 272
  • Page 273 273
  • Page 274 274
  • Page 275 275
  • Page 276 276
  • Page 277 277
  • Page 278 278
  • Page 279 279
  • Page 280 280
  • Page 281 281
  • Page 282 282
  • Page 283 283
  • Page 284 284
  • Page 285 285
  • Page 286 286
  • Page 287 287
  • Page 288 288
  • Page 289 289
  • Page 290 290
  • Page 291 291
  • Page 292 292
  • Page 293 293
  • Page 294 294
  • Page 295 295
  • Page 296 296
  • Page 297 297
  • Page 298 298
  • Page 299 299
  • Page 300 300
  • Page 301 301
  • Page 302 302
  • Page 303 303
  • Page 304 304
  • Page 305 305
  • Page 306 306
  • Page 307 307
  • Page 308 308
  • Page 309 309
  • Page 310 310
  • Page 311 311
  • Page 312 312
  • Page 313 313
  • Page 314 314
  • Page 315 315
  • Page 316 316
  • Page 317 317
  • Page 318 318
  • Page 319 319
  • Page 320 320
  • Page 321 321
  • Page 322 322
  • Page 323 323
  • Page 324 324
  • Page 325 325
  • Page 326 326
  • Page 327 327
  • Page 328 328
  • Page 329 329
  • Page 330 330
  • Page 331 331
  • Page 332 332
  • Page 333 333
  • Page 334 334
  • Page 335 335
  • Page 336 336
  • Page 337 337
  • Page 338 338
  • Page 339 339
  • Page 340 340
  • Page 341 341
  • Page 342 342
  • Page 343 343
  • Page 344 344
  • Page 345 345
  • Page 346 346
  • Page 347 347
  • Page 348 348
  • Page 349 349
  • Page 350 350
  • Page 351 351
  • Page 352 352
  • Page 353 353
  • Page 354 354
  • Page 355 355
  • Page 356 356
  • Page 357 357
  • Page 358 358
  • Page 359 359
  • Page 360 360
  • Page 361 361
  • Page 362 362
  • Page 363 363
  • Page 364 364
  • Page 365 365
  • Page 366 366
  • Page 367 367
  • Page 368 368
  • Page 369 369
  • Page 370 370
  • Page 371 371
  • Page 372 372
  • Page 373 373
  • Page 374 374
  • Page 375 375
  • Page 376 376
  • Page 377 377
  • Page 378 378
  • Page 379 379
  • Page 380 380
  • Page 381 381

Xilinx Virtex-6 FPGA User manual

Type
User manual

Ask a question and I''ll find the answer in the document

Finding information in a document is now easier with AI