Salt Lake City, Utah
June 23, 2018
June 23, 2018
July 27, 2018
Computers in Education
Translating the Instructional Processor from VHDL to Verilog
An Instructional Processor has been developed for use as a design example in an Advanced Digital Systems course. The system was originally modeled in VHDL and was simulated using Xilinx design tools to demonstrate operation of the processor. The design model can also be synthesized and implemented in hardware on a field programmable gate array (FPGA). The goal of this project was to translate the Instructional Processor into the Verilog hardware description language, while maintaining the same operational characteristics.
VHDL and Verilog are IEEE standard languages used for the development, verification, synthesis, and testing of hardware designs. While their language reference manuals specify the formal syntax used to model designs, they should not be mistaken for simple programming languages. Used correctly, these languages describe hardware constructs, which can be implemented using computer aided design tools. These synthesis tools have their own design guidelines, which align modelling techniques with standard library modules such as multiplexers, decoders, registers, and memory.
Keeping the focus on modelling hardware, rather than variations in syntax, the languages are more similar than different. Concurrent combinational logic, such as an arithmetic logic unit (ALU) or multiplexer, can be implemented using language specific signal assignment statements. Both languages can also model clock triggered sequential logic, such as a register or counter, using process or block statements. In addition, both VHDL and Verilog support design abstraction using behavioral or structural modelling constructs.
The process of translating the Instructional Processor from VHDL to Verilog has also resulted in several key insights and lessons learned. These range from correct use of signal types and library functions to important differences in simulation versus synthesis tools. For example, a memory module that was verified during simulation was left uninitialized during synthesis, resulting in failure of the FPGA implementation. Achieving the same hardware timing optimizations also required very precise modelling techniques to force the synthesis tool to recognize specific design elements such as tri-state buffers.
The Instructional Processor has been successfully translated from its original VHDL to an equivalent Verilog model. By focusing on describing each hardware component, rather than just revising syntax, the design maintained its functional integrity. Simulation results for both models exactly replicate all register transfers and timing for multiple test sequences. The hardware synthesized by the Xilinx tools was also very consistent in both device utilization and maximum clock frequency. The project was a success and the Instructional Processor continues to achieve its goal as a valuable instructional tool, now in two languages.
Hayne, R. J. (2018, June), Translating the Instructional Processor from VHDL to Verilog Paper presented at 2018 ASEE Annual Conference & Exposition , Salt Lake City, Utah. https://peer.asee.org/31160
ASEE holds the copyright on this document. It may be read by the public free of charge. Authors may archive their work on personal websites or in institutional repositories with the following citation: © 2018 American Society for Engineering Education. Other scholars may excerpt or quote from these materials with the same citation. When excerpting or quoting from Conference Proceedings, authors should, in addition to noting the ASEE copyright, list all the original authors and their institutions and name the host city of the conference. - Last updated April 1, 2015