As the number of cores in a chip increases continuously, Network-on-Chip (NoC) becomes the primary choice for interconnecting the nodes, so exploring the design of NoC is hence important for fully utilizing the power of the nodes. Unfortunately, when designing the interconnect fabric, the implications coming from the applications running on top of the NoC are usually ignored and wasted. Instead, they mostly rely on fixed parameters decided in very early-design stage. Even if dynamic adaptations at runtime are designed, they rely only on simple counters available in the hardware. Therefore, the NoC design is usually conservative and even does not fit the target applications in the end. In fact, the information coming from the application can dramatically improve the design of NoC. In this thesis, we named this perspective as emph{application-driven NoC design}. Based on the idea of application-driven design, two important topics in the design of NoC are well-researched and solved from the proposed perspective in this thesis. First, we exploited the traffic patterns of the applications running on top of the on-chip networks for saving the power consumption of on-chip network. In previous works, one promising solution is to dynamically adjust the working frequencies/voltages (DVFS) of the switches as well as the links between switches in the NoC to match the traffic flows. The question is when to adjust and by how much. Based on the idea of application-driven design, we propose a hardware mechanism to proactively adjust the frequencies/voltages of switches and/or links in NoC by predicting the application runtime traffic. Different from the previous approaches, our novel approach predicts the traffic from the implicit program behaviors in the network, i.e., loop, repeitive transmissions, which make the DVFS strategy more proactive and accurate. Following up the idea of application-driven design, we proposed a causality-aware simulation methodology for more accurate evaluation. By observing the application behaviors, the causalities between each pair of the nodes in the system can be extracted and embedded into the trace logs, and therefore the accuracy of simulation can be largely improved compared with the conventional trace-driven simulation. Moreover, we further take advantages of the causalities to compress the huge trace logs and design a corresponding traffic generator, named as Attackboard. In Attackboard, it reflects the interactions between each pair of processor and router recorded as several causality-aware small tables, and then it dynamically generates traffic injections to NoC on-the-fly to simulate the real application behaviors at runtime, whereas the traffic is similar to that generated by the original trace but with much lower space overhead.