Abstract-We introduce Chisel-Q, a high-level functional language for generating quantum circuits. Chisel-Q permits quantum computing algorithms to be constructed using the metalanguage features of Scala and its embedded DSL Chisel. With Chisel-Q, designers of quantum computing algorithms gain access to high-level, modern language features and abstractions. We describe a synthesis flow that transforms Chisel-Q into an explicit quantum circuit in the Quantum Assembly Language (QASM) format. We also discuss several optimizations to reduce the generated hardware cost. The Chisel-Q tool includes resource and performance estimation which can be used to compare different implementations of the same functionality. We compare the output of the generic Chisel-Q synthesis flow with hand-tuned versions of well-known quantum circuits. . Although practical quantum computers are still on the horizon, research progress is steady: over the last decade, physicists have investigated a number of approaches to implementing quantum circuits [5,6], computer architects have investigated architectures for quantum computers [7,8], and mathematicians have explored how to express difficult computational problems as instances of quantum computing [9,10]. Unfortunately, techniques for expressing quantum algorithms are mostly limited to high-level mathematical expressions or low-level sequences of quantum gates [11]. More traditional programming languages have not yet surfaced that are capable of expressing and handling the idiosyncrasies of quantum computing. As a result, many of the time-honored techniques for abstraction, design, and debugging of classical algorithms are not available to the writer of quantum algorithms.