Skip to content
DenseChip
Learn
PracticeCode labInterview

DenseChip

Navigate

Menu

LearnPracticeCode labInterview

Tools

All toolsSV editorCode repoResume
DenseChip

Practice, courses, and chip-design tools in one focused workspace.

LearnPracticeCode labInterviewToolsLearning paths

© 2026 DenseChip

AboutContactPrivacyTerms
Skip to lesson

Course contents

  • Start Here6
  • SystemVerilog Language Foundations35
    • SystemVerilog Data Types
    • Arrays: Packed, Dynamic, Queues & Associative
      • Packed vs Unpacked Arrays
      • Dynamic Arrays and Queues
      • Associative Arrays
      • Queues
      • Array Methods and Selection
      • Choosing the Right Array Type
    • Procedural Code & Scheduling
    • Operators, Expressions & Width Rules
    • Packages, Typedefs & Compilation
    • Interfaces, Modports & Clocking Blocks
  • Object-Oriented SystemVerilog for Verification35
  • Constraint Randomization — Interview-Critical Deep Dive66
  • SystemVerilog Assertions — Interview-Critical Deep Dive63
  • Functional Coverage in SystemVerilog28
  • Testbench Architecture in SystemVerilog38
  • Advanced Language & Integration30
  • Senior & Interview Preparation34
  • Principal-Level Verification28
Loading lesson

‹SystemVerilog Language Foundations
  1. Topics
  2. SystemVerilog
  3. SystemVerilog Language Foundations
  4. Arrays: Packed, Dynamic, Queues & Associative

Part 1 · Language Foundations · Intermediate

Arrays: Packed, Dynamic, Queues & Associative

Four array families, when each one fits, and where to find every lesson.

  • 6topics
  • 6lessons

Topics in this section

  1. 1Packed vs Unpacked Arrays1 lesson
  2. 2Dynamic Arrays and Queues1 lesson
  3. 3Associative Arrays1 lesson
  4. 4Queues1 lesson
  5. 5Array Methods and Selection1 lesson
  6. 6Choosing the Right Array Type1 lesson

SystemVerilog has four array families. Packed arrays are single bit vectors, fixed unpacked arrays are collections of elements, dynamic arrays and queues are sized at runtime, and associative arrays are sparse maps keyed by value.

Five shapes, one question each: is the size fixed, does it grow, is the index sparse?

Family

Declaration

Size

Synthesizable

Packed

logic [7:0] bus

Fixed at compile time

Yes

Unpacked fixed

logic [7:0] mem [0:255]

Fixed at compile time

Yes

Dynamic

int data[]

new[n] at runtime

No, testbench only

Queue

int q[$]

Grows per push

No, testbench only

Associative

byte mem [longint]

One entry per written key

No, testbench only

Lesson

You will build…

Packed vs unpacked

Layout, slicing and copy rules that infer RAM instead of flops.

Dynamic arrays and queues

Runtime sizing plus an in-order checker built on a queue.

Associative arrays

A sparse memory and an out-of-order checker keyed by ID.

Array methods and selection

Reductions, finders, sorting, and picking the right container.

Check yourself A testbench must model a 64-bit address space but touches a few hundred locations. Which family fits, and why not a fixed array?

An associative array keyed by address. It allocates storage only for written keys. A fixed array of 2^64 bytes is impossible to allocate.

Interview

“Compare the four array families” is a stock verification question. Know one sentence per family: packed is one vector, fixed unpacked is N elements, dynamic is sized once at runtime, queues stream, associative maps sparse keys.

PreviousNext: Packed vs Unpacked Arrays

Up next

Up nextPacked vs Unpacked Arrays

Sign in to save progress

Practice this lessonReport an error

See also

  • SystemVerilog Data Types
  • Procedural Code & Scheduling
  • Operators, Expressions & Width Rules