Below is a list of files that contain code listings from the book, VHDL for Programmable Logic, published by Addison-Wesley (ISBN 0-201-89573-0). Some of the files are used in conjunction with exercises. The files are listed in alphabetical order by chapter, not necessarily the order of appearance in the text. ch1 === simple.vhd simple design used in Breakout Exercises 1-1 and 2-2 ch2 === 3bcount.vhd three-bit counter designed for Breakout Exercise 2-1 ch3 === behave.vhd 4-bit equality comparator described behaviorally boolean.vhd 4-bit equality comparator described with Boolean equations dataflow.vhd 4-bit equality comparator described with a when-else construct docare.vhd design used in Breakout Exercise 3-2 to illustrate don't care synthesis dontcare.vhd design used in Breakout Exercise 3-2 to illustrate don't care synthesis errors.vhd design used in Breakout Exercise 3-3 to interactively correct errors ch4 === cnt8_3st.vhd 8-bit counter with 3-state output cnt8_3st2.vhd 8-bit counter with 3-state output (when-else construct) cnt8_bi.vhd 8-bit counter with bidirectional I/O cnt8_rp.vhd 8-bit counter with asynchronous reset and preset cntpt.vhd 8-bit counter with product term asynchronous reset cond.vhd conditional signal assignment dflop.vhd D-type flip-flop drflop.vhd D-type flip-flop with asynchronous reset exclusiv.vhd signal assignment based on mutually exclusive signals fifo.vhd FIFO buffer (tailored to repeater application in ch6) reg8.vhd 8-bit register tflop.vhd T-type flip-flop ch5 === encode.vhd state machine w/outputs encoded in state assignment fsm.vhd simple state machine design memcont.vhd state machine w/outputs decoded combinatorially (coded w/ 2 processes) memcont2.vhd state machine coded with one process onehot.vhd state machine one-hot encoded parallel.vhd state machine w/outputs decoded in parallel output regs ch6 === \basic design directory for basic library components (Breakout Exercise 6-1) ascount.vhd n-bit counter w/ asynchronous reset, synchronous reset & enable manypkgs.vhd design file containing 3 packages, which contain all design units here pdff.vhd n-bit D-type flip-flop with preset preg.vhd n-bit register with async preset, synch load rdff.vhd n-bit register with async reset, synch load reg.vhd n-bit register with asynch reset/preset, synch load rreg.vhd n-bit register with asynch reset, synch load synch.vhd synchronizers (one with async reset, one with asynch preset) ureg.vhd n-bit register with asynch reset, synch load for UNSIGNED type \am2901 design directory for AM2901 design alu.vhd alu module am2901.vhd top-level design am2901_c.vhd package with component declarations for all modules mnemnoic.vhd package with mnemonic's declared as constants out_mux.vhd output multiplexer module q_reg.vhd Q-register module ram_regs.vhd RAM-register module src_op.vhd source operand multiplexer module \repeat design directory for 100Base T4 network repeater core logic design arbiter8.vhd 8-port arbiter module clock.vhd clock multiplexer module control.vhd core controller state machines core.vhd top level design core_t.vhd package with component declarations for all modules fifo.vhd FIFO buffer design port.vhd port controller symbol.vhd symbol generator/multiplexer ch7 === find.vhd illustrates use of overloaded functions flop8.vhd illustrates procedures as substitute for component instantiation majors.vhd overloaded majority functions myflops.vhd overloaded dff procedures wierdcnt.vhd unconventional counter, used in text to explain module generation ch8 === cntrp.vhd product term reset l8_1.vhd 4-bit counter that resets to 1010 l8_2.vhd counters that must be placed in separate logic blocks l8_3.vhd illustrates how resets can/cannot be used l8_4.vhd illustrates how resets can/cannot be used l8_5.vhd counters with product term reset l8_6.vhd counters with sum term reset l8_7.vhd complex reset conditions requiring multiple passes through logic array l8_8.vhd two designs that must be partitioned into separate logic blocks l8_9.vhd token passing (cascading logic) to limit no. of inputs to a logic block l8_10.vhd virtual substitution leading to a large number of resources l8_11.vhd limiting virtual substitution to get more efficient designs l8_12.vhd DRAM controller l8_13.vhd DRAM controller with two fsm's clocked on separate phases of clock ch9 === alu.vhd modified alu design for resource sharing fcadd8_2.vhd 8-bit carry lookahead adder with 2-bit adder groups fcadd8_3.vhd 8-bit carry lookahead adder with 2 3-bit and 1 2-bit adder groups magcomp.vhd magnitude comparator ripadd_8.vhd 8-bit ripple carry adder ch10 ==== alg.vhd test bench for am2901 design cnt3.vhd simple counter design filetst.vhd test bench using file i/o readwrite.vhd overloaded read/write procedures tabular.vhd test bench using vectors in an embedded truth table