Kai-Hui Chang
National Taiwan University
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Kai-Hui Chang.
design, automation, and test in europe | 2010
Hong-Zu Chou; Haiqian Yu; Kai-Hui Chang; Dylan Dobbyn; Sy-Yen Kuo
Due to increases in design complexity, routing a reset signal to all registers is becoming more difficult. One way to solve this problem is to reset only certain registers and rely on a software initialization sequence to reset other registers. This approach, however, may allow unknown values (also called X-values) in uninitialized registers to leak to other registers, leaving the design in a nondeterministic state. Although logic simulation can find some X-problems, it is not accurate and may miss bugs. A recent approach based on symbolic simulation can handle Xs accurately; however, it is not scalable. In this work we analyze the characteristics of X-problems and propose a methodology that leverages the accuracy of formal X-analysis and can scale to large designs. This is achieved by our novel partitioning techniques and the intelligent use of waveforms as stimulus. We applied our methodology to an industrial design and successfully identified several Xs unknown to the designers, including three real bugs, demonstrating the effectiveness of our approach.
midwest symposium on circuits and systems | 2003
Kai-Hui Chang; Wei-Ting Tu; Yi-Jong Yeh; Sy-Yen Kuo
A simulation-based temporal assertion verification engine for PSL (property specification language), called Tempral Wizard, is proposed in this paper. It is very efficient because its time and space complexity are both O(n). A new concept, tag, is introduced in Tempral Wizard and it handles the forall operator elegantly.
asia and south pacific design automation conference | 2011
Hong-Zu Chou; Kai-Hui Chang; Sy-Yen Kuo
Code coverage is a popular method to find design bugs and verification loopholes. However, once a piece of code is determined to be unreachable, diagnosing the cause of the problem can be challenging: since the code is unreachable, no counterexample can be returned for debugging. Therefore, engineers need to analyze the legality of nonexistent execution paths, which can be difficult. To address such a problem, we analyzed the cause of unreachability in several industrial designs and proposed a diagnosis technique that can explain the cause of unreachability. In addition, our method provides suggestions on how to solve the un-reachability problem, which can further facilitate debugging. Our experimental results show that this technique can greatly reduce an engineers effort in analyzing unreachable code.
great lakes symposium on vlsi | 2009
Hong-Zu Chou; I-Hui Lin; Ching-Sung Yang; Kai-Hui Chang; Sy-Yen Kuo
The miniaturization of transistors in recent technology nodes requires tremendous back-end tuning and optimizations, making bug fixing at later design stages more expensive. Therefore, it is imperative to find design bugs as early as possible. The first defense against bugs is block-level testing performed by designers, and constrained-random simulation is the prevalent method. However, this method may miss corner-case scenarios. In this paper we propose an innovative methodology that reuses existing constrained-random testbenches for formal bug hunting. To support the methodology, we present several techniques to enhance RTL symbolic simulation, and integrate state-of-the-art word-level and Boolean-level verification techniques into a common framework called BugHunter. From case studies DLX, Alpha and FIR, BugHunter found more bugs than constrained-random simulation using fewer cycles, including four new bugs in the verified design previously unknown to the designer. The results demonstrate that the proposed techniques provide a flexible, scalable and robust solution for bug hunting.
IEEE Design & Test of Computers | 2016
Kai-Hui Chang; Hong-Zu Chou; Haiqian Yu; Dylan Dobbyn; Sy-Yen Kuo
This article addresses the problem of nondeterminism due to design optimization such as resetting only parts of the design register. Since formal methods are not scalable, the authors developed a scalable X-analysis method.
design automation conference | 2015
Ting-Wei Chiang; Kai-Hui Chang; Yen-Ting Liu; Jie-Hong R. Jiang
Retention registers are utilized in power gating design to hold design state during power down and to allow safe and fast system reactivation. Since a retention register consumes more power and costs more area than a non-retention register, it is desirable to minimize the use of retention registers. However, relaxing retention requirement to a minimal subset of registers can be computationally challenging. In this paper, we adopt satisfiability solving for scalable selection of registers whose retention is unnecessary and exploit input sequence constraints to increase the number of non-retention registers. Empirical results on industrial benchmarks show that our proposed methods are efficient and effective in identifying non-retention registers.
international conference on computer design | 2011
Chih-Neng Chung; Chia-Wei Chang; Kai-Hui Chang; Sy-Yen Kuo
Most synthesis tools perform optimizations based on the design itself and do not utilize the information present in the verification environment. Not using such information greatly limits the optimization capabilities of synthesis tools, which is especially serious for circuit customization because most environment constraints are encoded in the testbench. To exploit verification intention, we propose a methodology that utilizes functional assertions for design optimization. To support circuit customization, we also propose a property mining technique that can extract properties from the design under the constraints in the testbench. Our experimental results show that these methods can reduce design size after synthesis, and the optimization is orthogonal to other existing circuit customization methods.
international symposium on quality electronic design | 2011
Chia-Wei Chang; Hong-Zu Chou; Kai-Hui Chang; Jie-Hong R. Jiang; Chien-Nan Jimmy Liu; Chiu-Han Hsiao; Sy-Yen Kuo
Due to the dramatic increase in design complexity, verifying the functional correctness of a circuit is becoming more difficult. Therefore, bugs may escape all verification efforts and be detected after tape-out. While most existing solutions focus on fixing the problem on the hardware, in this work we propose a different methodology that tries to generate constraints which can be used to mask the bugs using software. This is achieved by utilizing formal reachability analysis to extract the conditions that can trigger the bugs. By synthesizing the bug conditions, we can derive input constraints for the software so that the hardware bugs will never be exposed. In addition, we observe that such constraints have special characteristics: they have small onset terms and flexible minterms. To facilitate the use of our methodology, we also propose a novel resynthesis technique to reduce the complexity of the constraints. In this way, software can be modified to run correctly on the buggy hardware, which can improve system quality without the high cost of respin.
design, automation, and test in europe | 2011
Chih-Neng Chung; Chia-Wei Chang; Kai-Hui Chang; Sy-Yen Kuo
Reset is one of the most important signals in many designs. Since reset is typically not timing critical, it is handled at late physical design stages. However, the large fanout of reset and the lack of routing resources at these stages can create variant delays on different targets of the reset signal, creating reset recovery problems. Traditional approaches address this problem using physical design methods such as buffer insertion or rerouting. However, these methods may invalidate previous optimization efforts, making timing closure difficult. In this work we propose a formal method to calculate reset recovery slacks for registers at the register transfer level. Designers and physical design tools can then utilize this information throughout the design flow to reduce reset problems at later design stages.
formal techniques for networked and distributed systems | 2005
Kai-Hui Chang; Jeh-Yen Kang; Han-Wei Wang; Wei-Ting Tu; Yi-Jong Yeh; Sy-Yen Kuo
As the complexity of circuit design increases, verification through simulation has become a bottleneck of the IC design process. Distributed parallel simulation is one way to solving the problem. In order to distribute the simulation workload to multiple processors, the design must be carefully partitioned first. While most previous work focus on gate level partitioning, our work extends a previously implemented Verilog gate-level partitioner to support RTL and behavior level partitioning. Techniques to partition special constructs specific to these levels, such as global access, function calls and memory access, are described in this paper. The experimental results show that our techniques are capable of finding partitions which can accelerate simulation.