Skip to content
Snippets Groups Projects
Commit 5da47d1f authored by Job van Wee's avatar Job van Wee
Browse files

Save

parent 5ac50092
No related branches found
No related tags found
1 merge request!253Resolve L2SDP-677
Pipeline #29812 passed
Showing
with 4569 additions and 61 deletions
hdl_lib_name = lofar2_unb2c_ddrctrl hdl_lib_name = lofar2_unb2c_ddrctrl
hdl_library_clause_name = lofar2_unb2c_ddrctrl_lib hdl_library_clause_name = lofar2_unb2c_ddrctrl_lib
hdl_lib_uses_synth = common technology mm unb2c_board hdl_lib_uses_synth = common technology mm unb2c_board ddrctrl diag dp
hdl_lib_uses_sim = hdl_lib_uses_sim =
hdl_lib_technology = ip_arria10_e2sg hdl_lib_technology = ip_arria10_e2sg
......
File deleted
:0100000000FF
:0100010001FD
:0100020002FB
:0100030002FA
:0100040003F8
:0100050004F6
:0100060005F4
:0100070005F3
:0100080006F1
:0100090007EF
:01000A0008ED
:01000B0009EB
:01000C0009EA
:01000D000AE8
:01000E000BE6
:01000F000CE4
:010010000CE3
:010011000DE1
:010012000EDF
:010013000FDD
:0100140010DB
:0100150010DA
:0100160011D8
:0100170012D6
:0100180013D4
:0100190013D3
:01001A0014D1
:01001B0015CF
:01001C0016CD
:01001D0016CC
:01001E0017CA
:01001F0018C8
:0100200019C6
:010021001AC4
:010022001AC3
:010023001BC1
:010024001CBF
:010025001DBD
:010026001DBC
:010027001EBA
:010028001FB8
:0100290020B6
:01002A0020B5
:01002B0021B3
:01002C0022B1
:01002D0023AF
:01002E0023AE
:01002F0024AC
:0100300025AA
:0100310026A8
:0100320026A7
:0100330027A5
:0100340028A3
:0100350029A1
:0100360029A0
:010037002A9E
:010038002B9C
:010039002C9A
:01003A002C99
:01003B002D97
:01003C002E95
:01003D002E94
:01003E002F92
:01003F003090
:01004000318E
:01004100318D
:01004200328B
:010043003389
:010044003388
:010045003486
:010046003584
:010047003682
:010048003681
:01004900377F
:01004A00387D
:01004B00387C
:01004C00397A
:01004D003A78
:01004E003A77
:01004F003B75
:010050003C73
:010051003D71
:010052003D70
:010053003E6E
:010054003F6C
:010055003F6B
:010056004069
:010057004167
:010058004166
:010059004264
:01005A004362
:01005B004361
:01005C00445F
:01005D00455D
:01005E00455C
:01005F00465A
:010060004758
:010061004757
:010062004855
:010063004854
:010064004952
:010065004A50
:010066004A4F
:010067004B4D
:010068004C4B
:010069004C4A
:01006A004D48
:01006B004E46
:01006C004E45
:01006D004F43
:01006E004F42
:01006F005040
:01007000513E
:01007100513D
:01007200523B
:01007300523A
:010074005338
:010075005436
:010076005435
:010077005533
:010078005532
:010079005630
:01007A00562F
:01007B00572D
:01007C00582B
:01007D00582A
:01007E005928
:01007F005927
:010080005A25
:010081005A24
:010082005B22
:010083005B21
:010084005C1F
:010085005D1D
:010086005D1C
:010087005E1A
:010088005E19
:010089005F17
:01008A005F16
:01008B006014
:01008C006013
:01008D006111
:01008E006110
:01008F00620E
:01009000620D
:01009100630B
:01009200630A
:010093006408
:010094006407
:010095006505
:010096006504
:010097006602
:010098006601
:010099006600
:01009A0067FE
:01009B0067FD
:01009C0068FB
:01009D0068FA
:01009E0069F8
:01009F0069F7
:0100A0006AF5
:0100A1006AF4
:0100A2006AF3
:0100A3006BF1
:0100A4006BF0
:0100A5006CEE
:0100A6006CED
:0100A7006DEB
:0100A8006DEA
:0100A9006DE9
:0100AA006EE7
:0100AB006EE6
:0100AC006FE4
:0100AD006FE3
:0100AE006FE2
:0100AF0070E0
:0100B00070DF
:0100B10070DE
:0100B20071DC
:0100B30071DB
:0100B40071DA
:0100B50072D8
:0100B60072D7
:0100B70072D6
:0100B80073D4
:0100B90073D3
:0100BA0073D2
:0100BB0074D0
:0100BC0074CF
:0100BD0074CE
:0100BE0075CC
:0100BF0075CB
:0100C00075CA
:0100C10076C8
:0100C20076C7
:0100C30076C6
:0100C40076C5
:0100C50077C3
:0100C60077C2
:0100C70077C1
:0100C80078BF
:0100C90078BE
:0100CA0078BD
:0100CB0078BC
:0100CC0079BA
:0100CD0079B9
:0100CE0079B8
:0100CF0079B7
:0100D0007AB5
:0100D1007AB4
:0100D2007AB3
:0100D3007AB2
:0100D4007AB1
:0100D5007BAF
:0100D6007BAE
:0100D7007BAD
:0100D8007BAC
:0100D9007BAB
:0100DA007CA9
:0100DB007CA8
:0100DC007CA7
:0100DD007CA6
:0100DE007CA5
:0100DF007CA4
:0100E0007DA2
:0100E1007DA1
:0100E2007DA0
:0100E3007D9F
:0100E4007D9E
:0100E5007D9D
:0100E6007D9C
:0100E7007E9A
:0100E8007E99
:0100E9007E98
:0100EA007E97
:0100EB007E96
:0100EC007E95
:0100ED007E94
:0100EE007E93
:0100EF007E92
:0100F0007E91
:0100F1007E90
:0100F2007F8E
:0100F3007F8D
:0100F4007F8C
:0100F5007F8B
:0100F6007F8A
:0100F7007F89
:0100F8007F88
:0100F9007F87
:0100FA007F86
:0100FB007F85
:0100FC007F84
:0100FD007F83
:0100FE007F82
:0100FF007F81
:010100007F7F
:010101007F7E
:010102007F7D
:010103007F7C
:010104007F7B
:010105007F7A
:010106007F79
:010107007F78
:010108007F77
:010109007F76
:01010A007F75
:01010B007F74
:01010C007F73
:01010D007F72
:01010E007F71
:01010F007E71
:010110007E70
:010111007E6F
:010112007E6E
:010113007E6D
:010114007E6C
:010115007E6B
:010116007E6A
:010117007E69
:010118007E68
:010119007E67
:01011A007D67
:01011B007D66
:01011C007D65
:01011D007D64
:01011E007D63
:01011F007D62
:010120007D61
:010121007C61
:010122007C60
:010123007C5F
:010124007C5E
:010125007C5D
:010126007C5C
:010127007B5C
:010128007B5B
:010129007B5A
:01012A007B59
:01012B007B58
:01012C007A58
:01012D007A57
:01012E007A56
:01012F007A55
:010130007A54
:010131007954
:010132007953
:010133007952
:010134007951
:010135007851
:010136007850
:01013700784F
:01013800784E
:01013900774E
:01013A00774D
:01013B00774C
:01013C00764C
:01013D00764B
:01013E00764A
:01013F007649
:010140007549
:010141007548
:010142007547
:010143007447
:010144007446
:010145007445
:010146007345
:010147007344
:010148007343
:010149007243
:01014A007242
:01014B007241
:01014C007141
:01014D007140
:01014E00713F
:01014F00703F
:01015000703E
:01015100703D
:010152006F3D
:010153006F3C
:010154006F3B
:010155006E3B
:010156006E3A
:010157006D3A
:010158006D39
:010159006D38
:01015A006C38
:01015B006C37
:01015C006B37
:01015D006B36
:01015E006A36
:01015F006A35
:010160006A34
:010161006934
:010162006933
:010163006833
:010164006832
:010165006732
:010166006731
:010167006631
:010168006630
:01016900662F
:01016A00652F
:01016B00652E
:01016C00642E
:01016D00642D
:01016E00632D
:01016F00632C
:01017000622C
:01017100622B
:01017200612B
:01017300612A
:01017400602A
:010175006029
:010176005F29
:010177005F28
:010178005E28
:010179005E27
:01017A005D27
:01017B005D26
:01017C005C26
:01017D005B26
:01017E005B25
:01017F005A25
:010180005A24
:010181005924
:010182005923
:010183005823
:010184005822
:010185005722
:010186005622
:010187005621
:010188005521
:010189005520
:01018A005420
:01018B00541F
:01018C00531F
:01018D00521F
:01018E00521E
:01018F00511E
:01019000511D
:01019100501D
:010192004F1D
:010193004F1C
:010194004E1C
:010195004E1B
:010196004D1B
:010197004C1B
:010198004C1A
:010199004B1A
:01019A004A1A
:01019B004A19
:01019C004919
:01019D004819
:01019E004818
:01019F004718
:0101A0004717
:0101A1004617
:0101A2004517
:0101A3004516
:0101A4004416
:0101A5004316
:0101A6004315
:0101A7004215
:0101A8004115
:0101A9004114
:0101AA004014
:0101AB003F14
:0101AC003F13
:0101AD003E13
:0101AE003D13
:0101AF003D12
:0101B0003C12
:0101B1003B12
:0101B2003A12
:0101B3003A11
:0101B4003911
:0101B5003811
:0101B6003810
:0101B7003710
:0101B8003610
:0101B900360F
:0101BA00350F
:0101BB00340F
:0101BC00330F
:0101BD00330E
:0101BE00320E
:0101BF00310E
:0101C000310D
:0101C100300D
:0101C2002F0D
:0101C3002E0D
:0101C4002E0C
:0101C5002D0C
:0101C6002C0C
:0101C7002C0B
:0101C8002B0B
:0101C9002A0B
:0101CA00290B
:0101CB00290A
:0101CC00280A
:0101CD00270A
:0101CE00260A
:0101CF002609
:0101D0002509
:0101D1002409
:0101D2002309
:0101D3002308
:0101D4002208
:0101D5002108
:0101D6002008
:0101D7002007
:0101D8001F07
:0101D9001E07
:0101DA001D07
:0101DB001D06
:0101DC001C06
:0101DD001B06
:0101DE001A06
:0101DF001A05
:0101E0001905
:0101E1001805
:0101E2001705
:0101E3001605
:0101E4001604
:0101E5001504
:0101E6001404
:0101E7001304
:0101E8001303
:0101E9001203
:0101EA001103
:0101EB001003
:0101EC001002
:0101ED000F02
:0101EE000E02
:0101EF000D02
:0101F0000C02
:0101F1000C01
:0101F2000B01
:0101F3000A01
:0101F4000901
:0101F5000900
:0101F6000800
:0101F7000700
:0101F8000600
:0101F9000500
:0101FA0005FF
:0101FB0004FF
:0101FC0003FF
:0101FD0002FF
:0101FE0002FE
:0101FF0001FE
:0102000000FD
:01020100FFFD
:01020200FEFD
:01020300FEFC
:01020400FDFC
:01020500FCFC
:01020600FBFC
:01020700FBFB
:01020800FAFB
:01020900F9FB
:01020A00F8FB
:01020B00F7FB
:01020C00F7FA
:01020D00F6FA
:01020E00F5FA
:01020F00F4FA
:01021000F4F9
:01021100F3F9
:01021200F2F9
:01021300F1F9
:01021400F0F9
:01021500F0F8
:01021600EFF8
:01021700EEF8
:01021800EDF8
:01021900EDF7
:01021A00ECF7
:01021B00EBF7
:01021C00EAF7
:01021D00EAF6
:01021E00E9F6
:01021F00E8F6
:01022000E7F6
:01022100E6F6
:01022200E6F5
:01022300E5F5
:01022400E4F5
:01022500E3F5
:01022600E3F4
:01022700E2F4
:01022800E1F4
:01022900E0F4
:01022A00E0F3
:01022B00DFF3
:01022C00DEF3
:01022D00DDF3
:01022E00DDF2
:01022F00DCF2
:01023000DBF2
:01023100DAF2
:01023200DAF1
:01023300D9F1
:01023400D8F1
:01023500D7F1
:01023600D7F0
:01023700D6F0
:01023800D5F0
:01023900D4F0
:01023A00D4EF
:01023B00D3EF
:01023C00D2EF
:01023D00D2EE
:01023E00D1EE
:01023F00D0EE
:01024000CFEE
:01024100CFED
:01024200CEED
:01024300CDED
:01024400CDEC
:01024500CCEC
:01024600CBEC
:01024700CAEC
:01024800CAEB
:01024900C9EB
:01024A00C8EB
:01024B00C8EA
:01024C00C7EA
:01024D00C6EA
:01024E00C6E9
:01024F00C5E9
:01025000C4E9
:01025100C3E9
:01025200C3E8
:01025300C2E8
:01025400C1E8
:01025500C1E7
:01025600C0E7
:01025700BFE7
:01025800BFE6
:01025900BEE6
:01025A00BDE6
:01025B00BDE5
:01025C00BCE5
:01025D00BBE5
:01025E00BBE4
:01025F00BAE4
:01026000B9E4
:01026100B9E3
:01026200B8E3
:01026300B8E2
:01026400B7E2
:01026500B6E2
:01026600B6E1
:01026700B5E1
:01026800B4E1
:01026900B4E0
:01026A00B3E0
:01026B00B2E0
:01026C00B2DF
:01026D00B1DF
:01026E00B1DE
:01026F00B0DE
:01027000AFDE
:01027100AFDD
:01027200AEDD
:01027300AEDC
:01027400ADDC
:01027500ACDC
:01027600ACDB
:01027700ABDB
:01027800ABDA
:01027900AADA
:01027A00AAD9
:01027B00A9D9
:01027C00A8D9
:01027D00A8D8
:01027E00A7D8
:01027F00A7D7
:01028000A6D7
:01028100A6D6
:01028200A5D6
:01028300A5D5
:01028400A4D5
:01028500A3D5
:01028600A3D4
:01028700A2D4
:01028800A2D3
:01028900A1D3
:01028A00A1D2
:01028B00A0D2
:01028C00A0D1
:01028D009FD1
:01028E009FD0
:01028F009ED0
:010290009ECF
:010291009DCF
:010292009DCE
:010293009CCE
:010294009CCD
:010295009BCD
:010296009BCC
:010297009ACC
:010298009ACB
:010299009ACA
:01029A0099CA
:01029B0099C9
:01029C0098C9
:01029D0098C8
:01029E0097C8
:01029F0097C7
:0102A00096C7
:0102A10096C6
:0102A20096C5
:0102A30095C5
:0102A40095C4
:0102A50094C4
:0102A60094C3
:0102A70093C3
:0102A80093C2
:0102A90093C1
:0102AA0092C1
:0102AB0092C0
:0102AC0091C0
:0102AD0091BF
:0102AE0091BE
:0102AF0090BE
:0102B00090BD
:0102B10090BC
:0102B2008FBC
:0102B3008FBB
:0102B4008FBA
:0102B5008EBA
:0102B6008EB9
:0102B7008EB8
:0102B8008DB8
:0102B9008DB7
:0102BA008DB6
:0102BB008CB6
:0102BC008CB5
:0102BD008CB4
:0102BE008BB4
:0102BF008BB3
:0102C0008BB2
:0102C1008AB2
:0102C2008AB1
:0102C3008AB0
:0102C4008AAF
:0102C50089AF
:0102C60089AE
:0102C70089AD
:0102C80088AD
:0102C90088AC
:0102CA0088AB
:0102CB0088AA
:0102CC0087AA
:0102CD0087A9
:0102CE0087A8
:0102CF0087A7
:0102D00086A7
:0102D10086A6
:0102D20086A5
:0102D30086A4
:0102D40086A3
:0102D50085A3
:0102D60085A2
:0102D70085A1
:0102D80085A0
:0102D900859F
:0102DA00849F
:0102DB00849E
:0102DC00849D
:0102DD00849C
:0102DE00849B
:0102DF00849A
:0102E000839A
:0102E1008399
:0102E2008398
:0102E3008397
:0102E4008396
:0102E5008395
:0102E6008394
:0102E7008294
:0102E8008293
:0102E9008292
:0102EA008291
:0102EB008290
:0102EC00828F
:0102ED00828E
:0102EE00828D
:0102EF00828C
:0102F000828B
:0102F100828A
:0102F200818A
:0102F3008189
:0102F4008188
:0102F5008187
:0102F6008186
:0102F7008185
:0102F8008184
:0102F9008183
:0102FA008182
:0102FB008181
:0102FC008180
:0102FD00817F
:0102FE00817E
:0102FF00817D
:01030000817B
:01030100817A
:010302008179
:010303008178
:010304008177
:010305008176
:010306008175
:010307008174
:010308008173
:010309008172
:01030A008171
:01030B008170
:01030C00816F
:01030D00816E
:01030E00816D
:01030F00826B
:01031000826A
:010311008269
:010312008268
:010313008267
:010314008266
:010315008265
:010316008264
:010317008263
:010318008262
:010319008261
:01031A00835F
:01031B00835E
:01031C00835D
:01031D00835C
:01031E00835B
:01031F00835A
:010320008359
:010321008457
:010322008456
:010323008455
:010324008454
:010325008453
:010326008452
:010327008550
:01032800854F
:01032900854E
:01032A00854D
:01032B00854C
:01032C00864A
:01032D008649
:01032E008648
:01032F008647
:010330008646
:010331008744
:010332008743
:010333008742
:010334008741
:01033500883F
:01033600883E
:01033700883D
:01033800883C
:01033900893A
:01033A008939
:01033B008938
:01033C008A36
:01033D008A35
:01033E008A34
:01033F008A33
:010340008B31
:010341008B30
:010342008B2F
:010343008C2D
:010344008C2C
:010345008C2B
:010346008D29
:010347008D28
:010348008D27
:010349008E25
:01034A008E24
:01034B008E23
:01034C008F21
:01034D008F20
:01034E008F1F
:01034F00901D
:01035000901C
:01035100901B
:010352009119
:010353009118
:010354009117
:010355009215
:010356009214
:010357009312
:010358009311
:010359009310
:01035A00940E
:01035B00940D
:01035C00950B
:01035D00950A
:01035E009608
:01035F009607
:010360009606
:010361009704
:010362009703
:010363009801
:010364009800
:0103650099FE
:0103660099FD
:010367009AFB
:010368009AFA
:010369009AF9
:01036A009BF7
:01036B009BF6
:01036C009CF4
:01036D009CF3
:01036E009DF1
:01036F009DF0
:010370009EEE
:010371009EED
:010372009FEB
:010373009FEA
:01037400A0E8
:01037500A0E7
:01037600A1E5
:01037700A1E4
:01037800A2E2
:01037900A2E1
:01037A00A3DF
:01037B00A3DE
:01037C00A4DC
:01037D00A5DA
:01037E00A5D9
:01037F00A6D7
:01038000A6D6
:01038100A7D4
:01038200A7D3
:01038300A8D1
:01038400A8D0
:01038500A9CE
:01038600AACC
:01038700AACB
:01038800ABC9
:01038900ABC8
:01038A00ACC6
:01038B00ACC5
:01038C00ADC3
:01038D00AEC1
:01038E00AEC0
:01038F00AFBE
:01039000AFBD
:01039100B0BB
:01039200B1B9
:01039300B1B8
:01039400B2B6
:01039500B2B5
:01039600B3B3
:01039700B4B1
:01039800B4B0
:01039900B5AE
:01039A00B6AC
:01039B00B6AB
:01039C00B7A9
:01039D00B8A7
:01039E00B8A6
:01039F00B9A4
:0103A000B9A3
:0103A100BAA1
:0103A200BB9F
:0103A300BB9E
:0103A400BC9C
:0103A500BD9A
:0103A600BD99
:0103A700BE97
:0103A800BF95
:0103A900BF94
:0103AA00C092
:0103AB00C190
:0103AC00C18F
:0103AD00C28D
:0103AE00C38B
:0103AF00C38A
:0103B000C488
:0103B100C586
:0103B200C684
:0103B300C683
:0103B400C781
:0103B500C87F
:0103B600C87E
:0103B700C97C
:0103B800CA7A
:0103B900CA79
:0103BA00CB77
:0103BB00CC75
:0103BC00CD73
:0103BD00CD72
:0103BE00CE70
:0103BF00CF6E
:0103C000CF6D
:0103C100D06B
:0103C200D169
:0103C300D267
:0103C400D266
:0103C500D364
:0103C600D462
:0103C700D461
:0103C800D55F
:0103C900D65D
:0103CA00D75B
:0103CB00D75A
:0103CC00D858
:0103CD00D956
:0103CE00DA54
:0103CF00DA53
:0103D000DB51
:0103D100DC4F
:0103D200DD4D
:0103D300DD4C
:0103D400DE4A
:0103D500DF48
:0103D600E046
:0103D700E045
:0103D800E143
:0103D900E241
:0103DA00E33F
:0103DB00E33E
:0103DC00E43C
:0103DD00E53A
:0103DE00E638
:0103DF00E637
:0103E000E735
:0103E100E833
:0103E200E931
:0103E300EA2F
:0103E400EA2E
:0103E500EB2C
:0103E600EC2A
:0103E700ED28
:0103E800ED27
:0103E900EE25
:0103EA00EF23
:0103EB00F021
:0103EC00F020
:0103ED00F11E
:0103EE00F21C
:0103EF00F31A
:0103F000F418
:0103F100F417
:0103F200F515
:0103F300F613
:0103F400F711
:0103F500F710
:0103F600F80E
:0103F700F90C
:0103F800FA0A
:0103F900FB08
:0103FA00FB07
:0103FB00FC05
:0103FC00FD03
:0103FD00FE01
:0103FE00FE00
:0103FF00FFFE
:00000001FF
...@@ -20,17 +20,18 @@ ...@@ -20,17 +20,18 @@
-- --
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
LIBRARY IEEE, common_lib, unb2c_board_lib, technology_lib; LIBRARY IEEE, common_lib, unb2c_board_lib, technology_lib, diag_lib, dp_lib, ddrctrl_lib;
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.NUMERIC_STD.ALL; USE IEEE.NUMERIC_STD.ALL;
USE common_lib.common_pkg.ALL; USE common_lib.common_pkg.ALL;
USE common_lib.common_mem_pkg.ALL; USE common_lib.common_mem_pkg.ALL;
USE technology_lib.technology_pkg.ALL; USE technology_lib.technology_pkg.ALL;
USE unb2c_board_lib.unb2c_board_pkg.ALL; USE unb2c_board_lib.unb2c_board_pkg.ALL;
USE dp_lib.dp_stream_pkg.ALL;
ENTITY unb2c_minimal IS ENTITY lofar2_unb2c_ddrctrl IS
GENERIC ( GENERIC (
g_design_name : STRING := "unb2c_minimal"; g_design_name : STRING := "lofar2_unb2c_ddrctrl";
g_design_note : STRING := "UNUSED"; g_design_note : STRING := "UNUSED";
g_technology : NATURAL := c_tech_arria10_e2sg; g_technology : NATURAL := c_tech_arria10_e2sg;
g_sim : BOOLEAN := FALSE; --Overridden by TB g_sim : BOOLEAN := FALSE; --Overridden by TB
...@@ -62,15 +63,38 @@ ENTITY unb2c_minimal IS ...@@ -62,15 +63,38 @@ ENTITY unb2c_minimal IS
QSFP_LED : OUT STD_LOGIC_VECTOR(c_unb2c_board_tr_qsfp_nof_leds-1 DOWNTO 0) QSFP_LED : OUT STD_LOGIC_VECTOR(c_unb2c_board_tr_qsfp_nof_leds-1 DOWNTO 0)
); );
END unb2c_minimal; END lofar2_unb2c_ddrctrl;
ARCHITECTURE str OF unb2c_minimal IS ARCHITECTURE str OF lofar2_unb2c_ddrctrl IS
-- Firmware version x.y -- Firmware version x.y
-- If x >= 2, rom_info starts on 0x10000 and max size = 0x8192 words -- If x >= 2, rom_info starts on 0x10000 and max size = 0x8192 words
CONSTANT c_fw_version : t_unb2c_board_fw_version := (2, 0); CONSTANT c_fw_version : t_unb2c_board_fw_version := (2, 0);
CONSTANT c_mm_clk_freq : NATURAL := c_unb2c_board_mm_clk_freq_125M; CONSTANT c_mm_clk_freq : NATURAL := c_unb2c_board_mm_clk_freq_125M;
CONSTANT c_bs_block_size : NATURAL := 1024;
CONSTANT c_bs_bsn_w : NATURAL := 64;
CONSTANT c_nof_streams : NATURAL := 12;
CONSTANT c_data_w : NATURAL := 14;
-- wg_wideband_arr
CONSTANT c_wg_buf_directory : STRING := "data/";
CONSTANT c_wg_buf_dat_w : NATURAL := 18; --default value of WG that fits 14 bits of ADC data
CONSTANT c_wg_buf_addr_w : NATURAL := 10; --default value of WG for 1024 samples
CONSTANT c_bsn_nof_clk_per_sync : NATURAL := sel_a_b(g_sim, 16*c_bs_block_size, c_sdp_N_clk_per_sync);
-- ddrctrl
CONSTANT c_tech_ddr : t_c_tech_ddr :=c_tech_ddr4_8g_1600m;
CONSTANT c_stop_percentage : NATURAL := 80;
-- diag_data_buffer
CONSTANT c_data_type : t_diag_data_type_enum := e_data;
CONSTANT c_buf_nof_words : NATURAL := 1024;
-- diag_bsn_buffer
CONSTANT c_bsn_type : t_diag_data_type_enum := e_real;
-- System -- System
SIGNAL cs_sim : STD_LOGIC; SIGNAL cs_sim : STD_LOGIC;
...@@ -79,6 +103,7 @@ ARCHITECTURE str OF unb2c_minimal IS ...@@ -79,6 +103,7 @@ ARCHITECTURE str OF unb2c_minimal IS
SIGNAL xo_rst_n : STD_LOGIC; SIGNAL xo_rst_n : STD_LOGIC;
SIGNAL mm_clk : STD_LOGIC; SIGNAL mm_clk : STD_LOGIC;
SIGNAL mm_rst : STD_LOGIC; SIGNAL mm_rst : STD_LOGIC;
SIGNAL st_pps : STD_LOGIC;
SIGNAL st_rst : STD_LOGIC; SIGNAL st_rst : STD_LOGIC;
SIGNAL st_clk : STD_LOGIC; SIGNAL st_clk : STD_LOGIC;
...@@ -144,7 +169,276 @@ ARCHITECTURE str OF unb2c_minimal IS ...@@ -144,7 +169,276 @@ ARCHITECTURE str OF unb2c_minimal IS
SIGNAL qsfp_green_led_arr : STD_LOGIC_VECTOR(c_unb2c_board_tr_qsfp.nof_bus-1 DOWNTO 0); SIGNAL qsfp_green_led_arr : STD_LOGIC_VECTOR(c_unb2c_board_tr_qsfp.nof_bus-1 DOWNTO 0);
SIGNAL qsfp_red_led_arr : STD_LOGIC_VECTOR(c_unb2c_board_tr_qsfp.nof_bus-1 DOWNTO 0); SIGNAL qsfp_red_led_arr : STD_LOGIC_VECTOR(c_unb2c_board_tr_qsfp.nof_bus-1 DOWNTO 0);
-- bsn_source_v2
SIGNAL reg_bsn_source_v2_mosi : t_mem_mosi;
SIGNAL reg_bsn_source_v2_miso : t_mem_miso;
-- bsn_scheduler
SIGNAL reg_bsn_scheduler_wg_mosi : t_mem_mosi;
SIGNAL reg_bsn_scheduler_wg_miso : t_mem_miso;
SIGNAL trigger_wg : STD_LOGIC;
-- stop_in
SIGNAL reg_stop_in_mosi : t_mem_mosi;
SIGNAL reg_stop_in_miso : t_mem_miso;
SIGNAL stop_in_arr : STD_LOGIC_VECTOR(32-1 DOWNTO 0);
-- ddrctrl
SIGNAL st_sosi_arr : t_dp_sosi_arr(c_nof_streams-1 DOWNTO 0);
SIGNAL out_siso : t_dp_siso;
SIGNAL out_sosi_arr : t_dp_sosi_arr(c_nof_streams-1 DOWNTO 0);
SIGNAL phy3_io : t_tech_ddr3_phy_io;
SIGNAL phy3_ou : t_tech_ddr3_phy_ou;
SIGNAL phy4_io : t_tech_ddr4_phy_io;
SIGNAL phy4_ou : t_tech_ddr4_phy_ou;
-- data_buffer
SIGNAL reg_data_buf_mosi : t_mem_mosi;
SIGNAL reg_data_buf_miso : t_mem_miso;
SIGNAL ram_data_buf_mosi : t_mem_mosi;
SIGNAL ram_data_buf_miso : t_mem_miso;
SIGNAL reg_rx_seq_data_mosi : t_mem_mosi;
SIGNAL reg_rx_seq_data_miso : t_mem_miso;
SIGNAL out_wr_data_ready_arr : STD_LOGIC_VECTOR(c_nof_streams-1 DOWNTO 0);
-- bsn_buffer
SIGNAL reg_bsn_buf_mosi : t_mem_mosi;
SIGNAL reg_bsn_buf_miso : t_mem_miso;
SIGNAL ram_bsn_buf_mosi : t_mem_mosi;
SIGNAL ram_bsn_buf_miso : t_mem_miso;
SIGNAL reg_rx_seq_bsn_mosi : t_mem_mosi;
SIGNAL reg_rx_seq_bsn_miso : t_mem_miso;
SIGNAL out_wr_bsn_ready_arr : STD_LOGIC_VECTOR(c_nof_streams-1 DOWNTO 0);
BEGIN
out_siso.ready <= vector_or(out_wr_ready_arr) OR vector_or(out_wr_bsn_ready_arr);
FOR I IN 0 TO g_nof_streams-1 LOOP
out_sosi_arr(I).re <= out_sosi_arr(I).bsn;
END LOOP;
u_bsn_source_v2 : ENTITY dp_lib.mms_dp_bsn_source_v2
GENERIC MAP (
g_cross_clock_domain => TRUE,
g_block_size => c_bs_block_size,
g_nof_clk_per_sync => c_bsn_nof_clk_per_sync,
g_bsn_w => c_bs_bsn_w
)
PORT MAP (
-- Clocks and reset
mm_rst => mm_rst,
mm_clk => mm_clk,
dp_rst => st_rst,
dp_clk => st_clk,
dp_pps => st_pps,
-- Memory-mapped clock domain
reg_mosi => reg_bsn_source_v2_mosi,
reg_miso => reg_bsn_source_v2_miso,
-- Streaming clock domain
bs_sosi => bs_sosi,
bs_restart => st_rst
);
u_bsn_trigger_wg : ENTITY dp_lib.mms_dp_bsn_scheduler
GENERIC MAP (
g_cross_clock_domain => TRUE,
g_bsn_w => c_bs_bsn_w
)
PORT MAP (
-- Memory-mapped clock domain
mm_rst => mm_rst,
mm_clk => mm_clk,
reg_mosi => reg_bsn_scheduler_wg_mosi,
reg_miso => reg_bsn_scheduler_wg_miso,
-- Streaming clock domain
dp_rst => st_rst,
dp_clk => st_clk,
snk_in => bs_sosi, -- only uses eop (= block sync), bsn[]
trigger_out => trigger_wg
);
u_wg_arr : ENTITY diag_lib.mms_diag_wg_wideband_arr
GENERIC MAP (
g_nof_streams => c_nof_streams,
g_cross_clock_domain => TRUE,
g_buf_dir => c_wg_buf_directory,
-- Wideband parameters
g_wideband_factor => 1,
-- Basic WG parameters, see diag_wg.vhd for their meaning
g_buf_dat_w => c_wg_buf_dat_w,
g_buf_addr_w => c_wg_buf_addr_w,
g_calc_support => TRUE,
g_calc_gain_w => 1,
g_calc_dat_w => c_sdp_W_adc
)
PORT MAP (
-- Memory-mapped clock domain
mm_rst => mm_rst,
mm_clk => mm_clk,
reg_mosi => reg_wg_mosi,
reg_miso => reg_wg_miso,
buf_mosi => ram_wg_mosi,
buf_miso => ram_wg_miso,
-- Streaming clock domain
st_rst => st_rst,
st_clk => st_clk,
st_restart => trigger_wg,
out_sosi_arr => wg_sosi_arr
);
gen_concat : FOR I IN 0 TO c_sdp_S_pn-1 GENERATE
p_sosi : PROCESS(wg_sosi_arr(I), bs_sosi)
BEGIN BEGIN
st_sosi_arr(I) <= bs_sosi;
st_sosi_arr(I).data <= wg_sosi_arr(I).data;
END PROCESS;
END GENERATE;
u_stop_in_reg : ENTITY common_lib.mms_common_reg
PORT MAP (
-- Memory-mapped clock domain
mm_rst => mm_rst,
mm_clk => mm_clk,
reg_mosi => reg_stop_in_mosi,
reg_miso => reg_stop_in_miso,
-- Streaming clock domain
st_rst => st_rst,
st_clk => st_clk,
in_reg => stop_in_arr,
out_reg => stop_in_arr
);
END mms_common_reg;
u_ddrctrl : ENTITY ddrctrl_lib.ddrctrl
GENERIC MAP (
g_tech_ddr => c_tech_ddr,
g_sim_model => g_sim,
g_technology => g_technology,
g_nof_streams => c_nof_streams,
g_data_w => c_data_w,
g_stop_percentage => c_stop_percentage,
g_block_size => c_bs_block_size
)
PORT MAP (
clk => st_clk,
rst => st_rst,
mm_clk => mm_clk,
mm_rst => mm_rst,
in_sosi_arr => st_sosi_arr,
stop_in => stop_in_arr(0),
out_sosi_arr => out_sosi_arr,
out_siso => out_siso,
--PHY
phy3_io => phy3_io,
phy3_ou => phy3_ou,
phy4_io => phy4_io,
phy4_ou => phy4_ou
);
u_diag_data_buffer ENTITY diag.mms_diag_data_buffer_dev
GENERIC MAP (
g_technology => g_technology,
-- General
g_nof_streams => c_nof_streams,
-- DB settings
g_data_type => c_data_type,
g_data_w => c_data_w,
g_buf_nof_data => c_buf_nof_words,
g_buf_use_sync => FALSE,
g_use_steps => FALSE,
g_nof_steps => c_diag_seq_rx_reg_nof_steps,
g_seq_dat_w => c_data_w
);
PORT (
-- Memory-mapped clock domain
mm_rst => mm_rst,
mm_clk => mm_clk,
reg_data_buf_mosi => reg_data_buf_mosi,
reg_data_buf_miso => reg_data_buf_mosi,
ram_data_buf_mosi => ram_data_buf_mosi,
ram_data_buf_miso => ram_data_buf_mosi,
reg_rx_seq_mosi => reg_rx_seq_data_mosi,
reg_rx_seq_miso => reg_rx_seq_data_miso,
-- Streaming clock domain
dp_rst => st_rst,
dp_clk => st_clk,
in_sync => sync,
in_sosi_arr => out_sosi_arr
out_wr_done_arr => out_wr_data_done_arr
);
u_diag_bsn_buffer ENTITY diag.mms_diag_data_buffer_dev
GENERIC MAP (
g_technology => g_technology,
-- General
g_nof_streams => c_nof_streams,
-- DB settings
g_data_type => c_bsn_type,
g_data_w => t_dp_sosi.bsn'length,
g_buf_nof_data => c_buf_nof_words,
g_buf_use_sync => FALSE,
g_use_steps => FALSE,
g_nof_steps => c_diag_seq_rx_reg_nof_steps,
g_seq_dat_w => c_data_w
);
PORT (
-- Memory-mapped clock domain
mm_rst => mm_rst,
mm_clk => mm_clk,
reg_data_buf_mosi => reg_bsn_buf_mosi,
reg_data_buf_miso => reg_bsn_buf_mosi,
ram_data_buf_mosi => ram_bsn_buf_mosi,
ram_data_buf_miso => ram_bsn_buf_mosi,
reg_rx_seq_mosi => reg_rx_seq_bsn_mosi,
reg_rx_seq_miso => reg_rx_seq_bsn_miso,
-- Streaming clock domain
dp_rst => st_rst,
dp_clk => st_clk,
in_sync => sync,
in_sosi_arr => out_sosi_arr
out_wr_done_arr => out_wr_bsn_done_arr
);
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
-- General control function -- General control function
...@@ -177,7 +471,7 @@ BEGIN ...@@ -177,7 +471,7 @@ BEGIN
dp_rst => st_rst, dp_rst => st_rst,
dp_clk => st_clk, dp_clk => st_clk,
dp_pps => OPEN, dp_pps => st_pps,
dp_rst_in => st_rst, dp_rst_in => st_rst,
dp_clk_in => st_clk, dp_clk_in => st_clk,
...@@ -264,7 +558,7 @@ BEGIN ...@@ -264,7 +558,7 @@ BEGIN
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
-- MM master -- MM master
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
u_mmm : ENTITY work.mmm_unb2c_minimal u_mmm : ENTITY work.mmm_lofar2_unb2c_ddrctrl
GENERIC MAP ( GENERIC MAP (
g_sim => g_sim, g_sim => g_sim,
g_sim_unb_nr => g_sim_unb_nr, g_sim_unb_nr => g_sim_unb_nr,
...@@ -329,7 +623,42 @@ BEGIN ...@@ -329,7 +623,42 @@ BEGIN
-- Scrap RAM -- Scrap RAM
ram_scrap_mosi => ram_scrap_mosi, ram_scrap_mosi => ram_scrap_mosi,
ram_scrap_miso => ram_scrap_miso ram_scrap_miso => ram_scrap_miso,
-- bsn_source_v2
reg_bsn_source_v2_mosi => reg_bsn_source_v2_mosi,
reg_bsn_source_v2_miso => reg_bsn_source_v2_miso,
-- bsn_scheduler
reg_bsn_scheduler_wg_mosi => reg_bsn_scheduler_wg_mosi,
reg_bsn_scheduler_wg_miso => reg_bsn_scheduler_wg_miso,
-- wg_wideband_arr
reg_wg_mosi => reg_wg_mosi,
reg_wg_miso => reg_wg_miso,
ram_wg_mosi => ram_wg_mosi,
ram_wg_miso => ram_wg_miso,
-- stop_in
reg_stop_in_mosi => reg_stop_in_mosi,
reg_stop_in_miso => reg_stop_in_miso,
-- data_buffer
reg_data_buf_mosi => reg_data_buf_mosi,
reg_data_buf_miso => reg_data_buf_miso,
ram_data_buf_mosi => ram_data_buf_mosi,
ram_data_buf_miso => ram_data_buf_miso,
reg_rx_seq_data_mosi => reg_rx_seq_data_mosi,
reg_rx_seq_data_miso => reg_rx_seq_data_miso,
-- bsn_buffer
reg_bsn_buf_mosi => reg_bsn_buf_mosi,
reg_bsn_buf_miso => reg_bsn_buf_miso,
ram_bsn_buf_mosi => ram_bsn_buf_mosi,
ram_bsn_buf_miso => ram_bsn_buf_miso,
reg_rx_seq_bsn_mosi => reg_rx_seq_bsn_mosi,
reg_rx_seq_bsn_miso => reg_rx_seq_bsn_miso
); );
u_front_led : ENTITY unb2c_board_lib.unb2c_board_qsfp_leds u_front_led : ENTITY unb2c_board_lib.unb2c_board_qsfp_leds
......
...@@ -28,10 +28,10 @@ USE unb2c_board_lib.unb2c_board_pkg.ALL; ...@@ -28,10 +28,10 @@ USE unb2c_board_lib.unb2c_board_pkg.ALL;
USE unb2c_board_lib.unb2c_board_peripherals_pkg.ALL; USE unb2c_board_lib.unb2c_board_peripherals_pkg.ALL;
USE mm_lib.mm_file_pkg.ALL; USE mm_lib.mm_file_pkg.ALL;
USE mm_lib.mm_file_unb_pkg.ALL; USE mm_lib.mm_file_unb_pkg.ALL;
USE work.qsys_unb2c_minimal_pkg.ALL; USE work.qsys_lofar2_unb2c_ddrctrl_pkg.ALL;
ENTITY mmm_unb2c_minimal IS ENTITY mmm_lofar2_unb2c_ddrctrl IS
GENERIC ( GENERIC (
g_sim : BOOLEAN := FALSE; --FALSE: use QSYS; TRUE: use mm_file I/O g_sim : BOOLEAN := FALSE; --FALSE: use QSYS; TRUE: use mm_file I/O
g_sim_unb_nr : NATURAL := 0; g_sim_unb_nr : NATURAL := 0;
...@@ -94,11 +94,50 @@ ENTITY mmm_unb2c_minimal IS ...@@ -94,11 +94,50 @@ ENTITY mmm_unb2c_minimal IS
-- Scrap RAM -- Scrap RAM
ram_scrap_mosi : OUT t_mem_mosi; ram_scrap_mosi : OUT t_mem_mosi;
ram_scrap_miso : IN t_mem_miso ram_scrap_miso : IN t_mem_miso;
-- bsn_source_v2
reg_bsn_source_v2_mosi : OUT t_mem_mosi;
reg_bsn_source_v2_miso : IN t_mem_miso;
-- bsn_sceduler
reg_bsn_scheduler_wg_mosi : OUT t_mem_mosi;
reg_bsn_scheduler_wg_miso : IN t_mem_miso;
-- wg_wideband_arr
reg_wg_mosi : OUT t_mem_mosi;
reg_wg_miso : IN t_mem_miso;
ram_wg_mosi : OUT t_mem_mosi;
ram_wg_miso : IN t_mem_miso;
-- stop_in
reg_stop_in_mosi : OUT t_mem_mosi;
reg_stop_in_miso : IN t_mem_miso;
-- data_buffer
reg_data_buf_mosi : OUT t_mem_mosi;
reg_data_buf_miso : IN t_mem_miso;
ram_data_buf_mosi : OUT t_mem_mosi;
ram_data_buf_miso : IN t_mem_miso;
reg_rx_seq_data_mosi : OUT t_mem_mosi;
reg_rx_seq_data_miso : IN t_mem_miso;
-- bsn_buffer
reg_bsn_buf_mosi : OUT t_mem_mosi;
reg_bsn_buf_miso : IN t_mem_miso;
ram_bsn_buf_mosi : OUT t_mem_mosi;
ram_bsn_buf_miso : IN t_mem_miso;
reg_rx_seq_bsn_mosi : OUT t_mem_mosi;
reg_rx_seq_bsn_miso : IN t_mem_miso;
); );
END mmm_unb2c_minimal; END mmm_lofar2_unb2c_ddrctrl;
ARCHITECTURE str OF mmm_unb2c_minimal IS ARCHITECTURE str OF mmm_lofar2_unb2c_ddrctrl IS
CONSTANT c_sim_node_nr : NATURAL := g_sim_node_nr; CONSTANT c_sim_node_nr : NATURAL := g_sim_node_nr;
CONSTANT c_sim_node_type : STRING(1 TO 2):= "FN"; CONSTANT c_sim_node_type : STRING(1 TO 2):= "FN";
...@@ -137,6 +176,42 @@ BEGIN ...@@ -137,6 +176,42 @@ BEGIN
u_mm_file_reg_eth : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "AVS_ETH_0_MMS_REG") u_mm_file_reg_eth : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "AVS_ETH_0_MMS_REG")
PORT MAP(mm_rst, mm_clk, eth1g_reg_mosi, eth1g_reg_miso ); PORT MAP(mm_rst, mm_clk, eth1g_reg_mosi, eth1g_reg_miso );
u_mm_file_reg_bsn_source_v2 : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_BSN_SOURCE_V2")
PORT MAP(mm_rst, mm_clk, reg_bsn_source_v2_mosi, reg_bsn_source_v2_miso );
u_mm_file_reg_bsn_scheduler : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_BSN_SCHEDULER")
PORT MAP(mm_rst, mm_clk, reg_bsn_scheduler_wg_mosi, reg_bsn_scheduler_wg_miso );
u_mm_file_reg_wg_wideband_arr : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_WG_WIDEBAND_ARR")
PORT MAP(mm_rst, mm_clk, reg_wg_mosi, reg_wg_miso);
u_mm_file_ram_wg_wideband_arr : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "RAM_WG_WIDEBAND_ARR")
PORT MAP(mm_rst, mm_clk, ram_wg_mosi, ram_wg_miso);
u_mm_file_reg_stop_in : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_STOP_IN")
PORT MAP(mm_rst, mm_clk, reg_stop_in_mosi, reg_stop_in_miso);
u_mm_file_reg_data_buf : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_DATA_BUF")
PORT MAP(mm_rst, mm_clk, reg_data_buf_mosi, reg_data_buf_miso);
u_mm_file_ram_data_buf : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "RAM_DATA_BUF")
PORT MAP(mm_rst, mm_clk, ram_data_buf_mosi, ram_data_buf_miso);
u_mm_file_reg_rx_seq_data : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_RX_SEQ_DATA")
PORT MAP(mm_rst, mm_clk, reg_rx_seq_data_mosi, reg_rx_seq_data_miso);
u_mm_file_reg_bsn_buf : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_BSN_BUF")
PORT MAP(mm_rst, mm_clk, reg_bsn_buf_mosi, reg_bsn_buf_miso);
u_mm_file_ram_bsn_buf : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "RAM_BSN_BUF")
PORT MAP(mm_rst, mm_clk, ram_bsn_buf_mosi, ram_bsn_buf_miso);
u_mm_file_reg_rx_seq_bsn : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_RX_SEQ_BSN")
PORT MAP(mm_rst, mm_clk, reg_rx_seq_bsn_mosi, reg_rx_seq_bsn_miso);
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- Procedure that polls a sim control file that can be used to e.g. get -- Procedure that polls a sim control file that can be used to e.g. get
-- the simulation time in ns -- the simulation time in ns
...@@ -151,7 +226,7 @@ BEGIN ...@@ -151,7 +226,7 @@ BEGIN
-- QSYS for synthesis -- QSYS for synthesis
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
gen_qsys : IF g_sim = FALSE GENERATE gen_qsys : IF g_sim = FALSE GENERATE
u_qsys : qsys_unb2c_minimal u_qsys : qsys_lofar2_unb2c_ddrctrl
PORT MAP ( PORT MAP (
clk_clk => mm_clk, clk_clk => mm_clk,
......
...@@ -22,13 +22,13 @@ ...@@ -22,13 +22,13 @@
LIBRARY IEEE; LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_1164.ALL;
PACKAGE qsys_unb2c_minimal_pkg IS PACKAGE qsys_lofar2_unb2c_ddrctrl_pkg IS
---------------------------------------------------------------------- ----------------------------------------------------------------------
-- this component declaration is copy-pasted from Quartus QSYS builder -- this component declaration is copy-pasted from Quartus QSYS builder
---------------------------------------------------------------------- ----------------------------------------------------------------------
component qsys_unb2c_minimal is component qsys_lofar2_unb2c_ddrctrl is
port ( port (
avs_eth_0_reset_export : out std_logic; -- export avs_eth_0_reset_export : out std_logic; -- export
avs_eth_0_clk_export : out std_logic; -- export avs_eth_0_clk_export : out std_logic; -- export
...@@ -144,6 +144,6 @@ PACKAGE qsys_unb2c_minimal_pkg IS ...@@ -144,6 +144,6 @@ PACKAGE qsys_unb2c_minimal_pkg IS
rom_system_info_read_export : out std_logic; -- export rom_system_info_read_export : out std_logic; -- export
rom_system_info_readdata_export : in std_logic_vector(31 downto 0) := (others => 'X') -- export rom_system_info_readdata_export : in std_logic_vector(31 downto 0) := (others => 'X') -- export
); );
end component qsys_unb2c_minimal; end component qsys_lofar2_unb2c_ddrctrl;
END qsys_unb2c_minimal_pkg; END qsys_lofar2_unb2c_ddrctrl_pkg;
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
-- --
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
-- Purpose: Test bench for unb2c_minimal. -- Purpose: Test bench for lofar2_unb2c_ddrctrl.
-- Description: -- Description:
-- The DUT can be targeted at unb 0, node 3 with the same Python scripts -- The DUT can be targeted at unb 0, node 3 with the same Python scripts
-- that are used on hardware. -- that are used on hardware.
...@@ -29,10 +29,10 @@ ...@@ -29,10 +29,10 @@
-- > run_modelsim & (to start Modeslim) -- > run_modelsim & (to start Modeslim)
-- --
-- In Modelsim do: -- In Modelsim do:
-- > lp unb2c_minimal -- > lp lofar2_unb2c_ddrctrl
-- > mk clean all (only first time to clean all libraries) -- > mk clean all (only first time to clean all libraries)
-- > mk all (to compile all libraries that are needed for unb2c_minimal) -- > mk all (to compile all libraries that are needed for lofar2_unb2c_ddrctrl)
-- . load tb_unb1_minimal simulation by double clicking the tb_unb2c_minimal icon -- . load tb_unb1_minimal simulation by double clicking the tb_lofar2_unb2c_ddrctrl icon
-- > as 10 (to view signals in Wave Window) -- > as 10 (to view signals in Wave Window)
-- > run 100 us (or run -all) -- > run 100 us (or run -all)
-- --
...@@ -50,15 +50,15 @@ USE common_lib.tb_common_pkg.ALL; ...@@ -50,15 +50,15 @@ USE common_lib.tb_common_pkg.ALL;
USE i2c_lib.i2c_dev_unb2_pkg.ALL; USE i2c_lib.i2c_dev_unb2_pkg.ALL;
USE i2c_lib.i2c_commander_unb2_pmbus_pkg.ALL; USE i2c_lib.i2c_commander_unb2_pmbus_pkg.ALL;
ENTITY tb_unb2c_minimal IS ENTITY tb_lofar2_unb2c_ddrctrl IS
GENERIC ( GENERIC (
g_design_name : STRING := "unb2c_minimal"; g_design_name : STRING := "lofar2_unb2c_ddrctrl";
g_sim_unb_nr : NATURAL := 0; -- UniBoard 0 g_sim_unb_nr : NATURAL := 0; -- UniBoard 0
g_sim_node_nr : NATURAL := 3 -- Node 3 g_sim_node_nr : NATURAL := 3 -- Node 3
); );
END tb_unb2c_minimal; END tb_lofar2_unb2c_ddrctrl;
ARCHITECTURE tb OF tb_unb2c_minimal IS ARCHITECTURE tb OF tb_lofar2_unb2c_ddrctrl IS
CONSTANT c_sim : BOOLEAN := TRUE; CONSTANT c_sim : BOOLEAN := TRUE;
...@@ -120,7 +120,7 @@ BEGIN ...@@ -120,7 +120,7 @@ BEGIN
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
-- DUT -- DUT
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
u_unb2c_minimal : ENTITY work.unb2c_minimal u_lofar2_unb2c_ddrctrl : ENTITY work.lofar2_unb2c_ddrctrl
GENERIC MAP ( GENERIC MAP (
g_sim => c_sim, g_sim => c_sim,
g_sim_unb_nr => c_unb_nr, g_sim_unb_nr => c_unb_nr,
......
...@@ -96,7 +96,8 @@ ENTITY diag_data_buffer_dev IS ...@@ -96,7 +96,8 @@ ENTITY diag_data_buffer_dev IS
in_data : IN STD_LOGIC_VECTOR(g_data_w-1 DOWNTO 0); in_data : IN STD_LOGIC_VECTOR(g_data_w-1 DOWNTO 0);
in_sync : IN STD_LOGIC := '0'; in_sync : IN STD_LOGIC := '0';
in_val : IN STD_LOGIC in_val : IN STD_LOGIC;
out_wr_done : OUT STD_LOGIC := '1'
); );
END diag_data_buffer_dev; END diag_data_buffer_dev;
...@@ -168,6 +169,8 @@ BEGIN ...@@ -168,6 +169,8 @@ BEGIN
ASSERT c_mm_factor=2**true_log2(c_mm_factor) REPORT "Only support mixed width data that uses a power of 2 multiple." SEVERITY FAILURE; ASSERT c_mm_factor=2**true_log2(c_mm_factor) REPORT "Only support mixed width data that uses a power of 2 multiple." SEVERITY FAILURE;
out_wr_done <= wr_done;
ram_mm_miso <= i_ram_mm_miso; ram_mm_miso <= i_ram_mm_miso;
rd_last <= '1' WHEN UNSIGNED(ram_mm_mosi.address(c_buf_mm.adr_w-1 DOWNTO 0))=c_nof_data_mm-1 AND ram_mm_mosi.rd='1' ELSE '0'; rd_last <= '1' WHEN UNSIGNED(ram_mm_mosi.address(c_buf_mm.adr_w-1 DOWNTO 0))=c_nof_data_mm-1 AND ram_mm_mosi.rd='1' ELSE '0';
......
...@@ -102,7 +102,8 @@ ENTITY mms_diag_data_buffer_dev IS ...@@ -102,7 +102,8 @@ ENTITY mms_diag_data_buffer_dev IS
-- ST interface -- ST interface
in_sync : IN STD_LOGIC := '0'; -- input sync pulse in ST dp_clk domain that starts data buffer when g_use_in_sync = TRUE in_sync : IN STD_LOGIC := '0'; -- input sync pulse in ST dp_clk domain that starts data buffer when g_use_in_sync = TRUE
in_sosi_arr : IN t_dp_sosi_arr(g_nof_streams-1 DOWNTO 0) in_sosi_arr : IN t_dp_sosi_arr(g_nof_streams-1 DOWNTO 0);
out_wr_done_arr : OUT STD_LOGIC_VECTOR(g_nof_streams-1 DOWNTO 0)
); );
END mms_diag_data_buffer_dev; END mms_diag_data_buffer_dev;
...@@ -187,7 +188,8 @@ BEGIN ...@@ -187,7 +188,8 @@ BEGIN
in_data => in_data_arr(I), in_data => in_data_arr(I),
in_sync => in_sync, in_sync => in_sync,
in_val => in_sosi_arr(I).valid in_val => in_sosi_arr(I).valid,
out_wr_done => out_wr_done_arr(I)
); );
END GENERATE; END GENERATE;
END GENERATE; END GENERATE;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment