Descarga la aplicación para disfrutar aún más
Esta es una vista previa del archivo. Inicie sesión para ver el archivo original
__MACOSX/._DIE __MACOSX/DIE/._Teoría __MACOSX/DIE/._Problemas DIE/.DS_Store __MACOSX/DIE/._.DS_Store DIE/Teoría/4. Pipeline.pdf 978-1-7281-1363-0/19/$31.00 ©2019 European Union Pipelining on FPGAs: A Tutorial Eduardo Boemo Universidad Autónoma de Madrid Madrid, Spain eduardo.boemo@uam.es Abstract— This tutorial reviews historical milestones and main concepts regarding the pipelining of electronic circuits. Although the technique emerged in the 1960s, it remains a direct way to simultaneously increase throughput and reduce power in FPGA-based systems. However, the efficacy of pipelining is limited by the dominance of register and routing delays. This work focuses on bit-level pipelining. It analyses by examples keys aspects such as construction hints, pipeline metrics, effects of registering, preferential pipeline directions, and synchronization failures. The text condenses the first section of the invited tutorial lecture at the 2019 Southern Conference on Programmable Logic (SPL). Whenever is possible, numeric examples are particularized to FPGA technology, but in some cases, cell-based ASICs data are deemed more convenient. The ideas would be useful for students of an advanced course on digital electronics, or PhD candidates interested in the details of the design of integrated circuits. Keywords—Pipeline, FPGAs, High-speed digital design, Henry Ford, Clock skew, Wave pipeline, Power consumption. I. INTRODUCTION Main concepts of pipelining originated on the assembly line of the T-Model in 1908. In that year, production in the Ford plant was reorganized by dividing the construction of the cars between groups of workers who specialized in only one part of the process. Each team was placed along lines, repeating the assigned task – always the same – on successive pieces situated on a conveyor belt (Fig.1). In this scheme, the maximum manufacturing speed is limited by the slowest task. As a consequence, these tasks must be planned to require the same time. The flow of parts is continuous, except for the inevitable time needed to fill or empty the conveyor belts. Henry Ford eliminated this inconvenience by introducing an 8-hour working day, with 3 shifts a day. Therefore, the steady-state was virtually infinite and all the workers operated in parallel making simultaneously the same part of the assembly, but on different cars. This type of process is now called temporal parallelism. Using all these concepts, Ford sped up chassis assembly from 12.5 to 1.5 hours making nearly 15 million cars between 1908 and 1927 [1]. The success of the process converted the T-model into a milestone of mass production history, as well as an agent of urban and social revolution. Henry Ford´s ideas to improve production are also valid for digital circuits. Large combinational blocks are unable to process data at high-speed rates. Normally, new data cannot be imputed until the previous result is outputted. If this rule is violated, the fastest bits of the next data reach the slowest bits of the previous one. Each line of gates only works during a short fraction of the processing period [2]. Like in an unorganized car production, most of the time the gates are waiting for the arrival of new data. Nevertheless, the main difference between car production and digital processing is the matter of the parts. Mechanical objects must be artificially moved while bits must be artificially stopped. On the contrary, they travel along the circuit until the electric potential equilibrium is reached. Thus, digital pipelines require the insertion of edge-triggered D-type flip-flops (FFs) in the datapath in order to align and stop the intermediate results. These FFs make it possible to synchronize the operations, but they do not contribute to any transformation of the data, just as conveyor belts do not assemble the cars. Like in the car production, in digital pipelines the slower stage fixes the system period. To maximize pipeline speed, the circuit partition must be balanced. A direct option is to make identical the processing elements. In the 1980s, this type of circuit was renamed a “systolic arrays” [3]. However, once again the beneficial effect of uniformity had already been discovered by Ford. The T-model was originally built in black, red, green or grey. But in the following years, the colour choice was reduced to only one. "Any colour so long as it's black", said Ford [4]. Fortunately, in electronics there is a myriad of digital circuits based on identical blocks: they were designed to be extensible and cascadable. Even today, these features facilitate circuit description, construction, width extension, and debugging. Fig.1: Workers on a T-model moving assembly line with magnetos and flywheels in 1913. Reproduced from Wikicommons [5]. Probably the first published study about pipelining in digital circuits is the work of Leonard Cotten [6]. But even in the 1960s, the origin of pipelining was uncertain. Cotten writes: “…The term pipeline has been used for over 5 years by designers to describe maximal rate processing …. However, the author has so far been unsuccessful in determining the origin of the term as used in this context…”. A second paper of Cotten [7] studied the effect of clock skew (Section VII of this tutorial), and the wave pipeline alternative. The IBM 360 FPU was an early materialization of the technique [8]. At that time, the term was quite novel as they used “pipelined”, in quotation marks [8],[9]. Pipeline adders and multipliers were explored in [10]. After that, notable pipeline implementations were [11]-[14]. This work has been supported by Comunidad Autónoma de Madrid (Spain) DIFRAGEOS Project S2013/ICE-3004. II. A SIMPLE EXAMPLE: PIPELINING A RIPPLE-CARRY ADDER The extremely well-known ripple-carry adder (RCA) is adequate for illustrating the effects of pipelining. This circuit suffers from a large serial delay caused by the propagation of the carries. Even so, nowadays it is one of the fastest options for addition in FPGA technology. The cause is the low fanout of its nets. Fig.2 shows an 8-bit RCA composed of identical full- adders (FAs). Unusually in digital design, it is drawn with the input data traveling from bottom to top, and from right to the left. It reflects the way in which the calculation is done by hand. Fig.2: 8-bit ripple-carry adder (RCA). A fine-grain pipeline version of an RCA is obtained by adding 117 FFs (Fig.3). As is traditional in pipeline schematics, an FF (and its associated clock and reset lines) is represented as a small square or dot [15], [16]. At the input, a triangular arrangement of FFs are utilized to delays each datum to synchronize it with the corresponding carry bits. At the output, another triangular arrangement of FFs delays each result to synchronize it with slower S8 and S7 bits. These triangles are named skewing and deskewing registers in [12]. Fig.3: 8-bit RCA pipeline version. Fig.3 illustrates an obvious property of pipelines: the number of FFs along any I/O path is a constant number (9 in this example, including the I/O registering). A path with more (or less) FFs cannot exist as this would lead to the mixing of bits of different data. The flow of bits after each clock edge is shown in Fig.4. Only the first clock cycles are shown. The second index indicates the position of successive data (A02 is the bit A0 of the second data, and so on). Initially, the pipeline outputs spurious additions. For example, the first bit S01 (of the first addition) is obtained after the 2nd clock cycle, but the corresponding last bit S81 of the same result is outputted after the 9th cycle. So, it is necessary to delay the least significant bits to maintain the parallel format. But unlike the combinational version, after filling the pipeline all the gates operate completely in parallel. III. EVIDENCING DEPENDENCIES In order to pipeline a circuit it is better to redraw it to evidence the dependencies between processors (B depends on A, if B needs the results of A to begin its calculations). Fig.4: Details of the computation at each RCA pipeline stage. The procedure for evidencing dependences is simple (Fig.5): the FA that first starts to operate is positioned at the bottom of the circuit, then the second, and so on. Fig.5: RCA topology evidencing dependencies. Naturally, the resulting structure is identical to the represented by the Fig.2, but now pipelining is straightforward. The intersection between the horizontal lines and the wires indicates the places where the synchronization FFs must be inserted (supposing that all the FA blocks and wiring have the same delay). Fig.5 confirms the first drawback of pipelining: the area overhead. For example, in standard cell technology [17] both full-adder and D-type FF (with reset) have a minimum of 28 transistors each. So, during the pipeline of the 8-bit RCA of Fig.4, the total number of transistors passes from 224 to 3500. Moreover, as the number of FF grows as NFF(n) = 1.5 n2 + 2.5 n + 1, (for a input data width n), a hypothetical 1024-bit fine-grain pipeline RCA would surpass 1.5 times the maximum 1,095,200 available FFs in a state-of-the-art Virtex chip [18]. These numbers explain why FPGAs architects reuse the FFs of the configuration path to get additional chains of registers, called SRL16, 32, etc. [19]. In any case, such a huge pipeline would require tens of amperes to raise the clock edge along the circuit in few nanoseconds. Finally, Fig.6 shows another example of pipelining. Drawing the “cubic” processors (above) according to its data dependencies (below) makes the solution direct: a 36-register and five-stage pipeline. Processing elements number 2, 3 and 4 do not exchange data between each other; so, they can operate in parallel. The same situation occurs with processing elements 6 and 7. Fig.6: Redrawing a circuit (above) to evidence its data dependencies (below). The visualization of the dependencies also facilitates the trimming of the pipeline. In those cases where the delays of the processing elements are different, some lines can be eliminated, without affecting the speed of the circuit. For example, if the delay of PE1 is 200 ns while the other PEs has a delay of 100 ns, the c and e lines can be eliminated. IV. PIPELINING IN NUMBERS The result of pipelining can be described by several numbers: throughput, latency, speed-up, area penalty, pipeline granularity, and logic depth among others. Pipelining does not reduce the time required to obtain an individual result; but increases the number of obtained results per second. R. F. Lyon describes a pipeline as a circuit “which has an operation period less than its operation delay” [20]. This phrase condenses the two main numbers of a pipeline: throughput and latency. The Oxford dictionary states throughput as “the amount of material or items passing through a system or process”. In electronic pipelines, it can be adapted as the number of results per second [21], or simply the processing rate. Other key terms are bandwidth or production, as well as its inverse magnitude, the pipeline period. The annual production of the T-model reached in 1914 the number of 260,720 units [22]. That is, a throughput of nearly a car every 2 minutes. The latency is the time necessary to process a single piece of data. It also called the delay or response time. Latency is masterfully defined by Peter Cappello as “the amount of time between the first-bit-of-the-first-data entrance and the last-bit-of-the-last-data output, for a single (just one) computation” [23]. However, sometimes the latency of a block is specified as the time between first input bit and first output bit of a single piece of data. The Boing Company is a useful illustration of the above concepts, even considering that apply both spatial parallelism (assembly lines in parallel) and temporal parallelism (pipelines). Nowadays, Boeing produces a 777-model plane every 3 days (throughput = 0.33 planes/day). Naturally, a single plane cannot be assembled in 3 days. It is composed of more than 3 million parts, and has approximately 60,000 rivets [24]. To determine the latency of the process it would only be necessary to time any of those rivets from when it enters the factory to when it leaves as part of the plane at the other end of the factory. The effectiveness of pipelining in terms of time is measured using the speedup figure. This is the throughput of the pipelined version divided by the throughput of the original circuit. In return, this extra speed increases the circuit cost. The area penalty is the pipeline area divided by the original circuit area. A more useful concept is the pipeline granularity β [25]. This is the maximum number of processors operating in series between successive lines of FFs. In a regular pipeline, granularity is the key to tuning the result, trading speed for extra FFs. For example, if lines 2, 4, 6, and 8 are removed in the circuit of Fig.4, the granularity is β=2, the FF count passes from 117 to 65 but the minimum clock period is greater than the delay of 2 FAs. Now it is necessary to wait for the results of two FAs. Another area-time pair is obtained using β=4, by removing lines 2, 3, 4, 6, 7, and 8 Fig.4. Now, the number of FFs is 38 and the minimum clock period must be greater than the delay of 4 FAs. The idea is illustrated in Fig.7. Granularity is a topological parameter. At silicon level, its equivalence (or consequence) is the logic depth. In FPGA technology, logic depth can be considered as the maximum number of LUTs in series between successive lines of FFs. A fine-grain pipelined RCA has a granularity β=1 but the logic depth can be 1, 2 or more LUTs, depending on diverse parameters such as the LUT size, dedicated XOR gates and carry-chain lines, routing congestion criteria, or the ability of the synthesis tool. In his remarkable book, H. B. Bakoglu includes the gates of the input FF in the calculus of the logic depth, for masked integrated circuits [26]. Fig.7: RCA pipelined with β=2 (above) and β=4 (below). V. THE EFFECT OF REGISTERING AND EXTRA WIRING The followers of Henry Ford in the field of electronics shared his frustration about pipelining. The N-fold gain in speed is a myth; it is only possible if the wiring and FF delays are insignificant in comparison with logic delays. In other words, fine-grain pipelines have a relatively slow processing speed limit. The organization of a pipelined production requires several blocks receiving each datum at the right time. Even though the nature of bits and car parts is different, the consequences of introducing mechanisms to synchronize them lead to the same result: loss of time. Ford divided the motor assembly into 48 operations (N=48). This arrangement should lead in the abstract to a speedup to nearly 48. However, he merely obtained a speedup of 3. In the same way, the construction of the magneto was split into 29 parts, allowing the time to be reduced only from 20’ to 13’10” (speedup=1.5). Finally, the overall car assembly evolved from 12’30 hours to only 1’33 (speedup=8.3) [27]. In current integrated circuits, the effect of transporting (wiring) and synchronizing (FFs) the parts (bits) is expensive in term of time. FFs and wiring delays are larger than combinatorial logic delays. This fact destroys the magic effect of pipelining: dividing the task in N concurrent blocks never produces the theoretical speedup of N. For example, in Fig.7 a circuit is shown with a total combinational delay of value ∆COMB. The propagation delay and setup of the FFs are labelled ∆CK-OUT and ∆SETUP respectively. The pipelining of the block in N stages, effectively diminish the combinational delay of each stage by N, but the delays associated to the FF remain constant. Additionally, a wiring delay ∆W must be also computed. Thus, the pipeline period is: T ≥ ∆CK-OUT + ∆COMB / N + ∆SETUP + ∆W + SKEW (1) The effect of the clock skew in Eq.1 is analysed in Section VIII. In any case, for a large number N of stages, the clock period will remain dominated by FF and wiring delays. Fig.8: The expansion of the stage delay. Fig.9 shows the relationship between FF delays (∆CK-OUT + ∆SETUP) and minimum ∆COMB for ten different technologies [28]-[38] ranging from discrete logic to FPGAs. The TILO parameter of Xilinx datasheets was taken as the minimum combinational delay for LUT-based circuits, while the two- input NAND was selected for discrete logic. In any case, the period of a maximum fine grain-pipeline would be practically fixed by FFs and wires. Even in high- performance computers, the logic depth cannot be just one gate or LUT. For example, the CRAY models 1, 2 and 3 had a logic depth of 8, 4 and 6 levels respectively [26]. Fig.9: Ratio between the total FF delay (propagation + setup) and minimum combinational delay for different technologies. As result, pipelining leads to a paradox. It is applied to avoid inactive gates while waiting for new data (as it happens in a combinational circuit). But for fine-grain pipelining, only 20-30 % of the period is involved in the data processing. The rest of the time is necessary to synchronize and transport the bits. After all, the gates still remain inactive most of the time. But at least, they work in parallel. Meanwhile the delays of a FF are well-characterized numbers; the nature of wiring delay is more complicated. The wiring distribution depends on the number of stages N. Pipelining expands the number of wires, changes the fanout of the nets, and modifies the wiring distribution delay itself. Some aspects that pipeline designers must take into account about ∆W(N) are: Some pipeline directions change the nature of input data wiring, passing from heavily loaded global or broadcasted lines to lines with a minimum fanout. This point is explained in the next section. Pipelining usually improves the circuit routability and reduces wiring congestion in FPGAs. In a pipeline circuit, FFs that drive another FF are the most common structure of the circuit. So that, from all the pins associated to a FPGA logic elements (a k-LUT plus the associated FF), only two are utilized: the input and output pins of the FF. In any well-routed circuit, the wiring histogram follows a Pareto-Levi distribution [39]. That is, there are lots of wires with low delays and few with the highest delay values. In a combinational circuit, the worst wire not always is part of the worst (critical) path. But in a balanced pipeline, all paths are equally critical for the minimum clock period. Normally, the worse wire nests within the worse stage. VI. GLOBAL LINES AND DIRECTIONS OF PIPELINING The word pipeline evokes water and tubes. If friction is neglected, the speed of the water is independent of the pipe length [15]. However, on digital pipelines the circuit size imposes a speed limit. Clock skew and heavily loaded global lines increase the pipeline size. In this section, the second effect is illustrated. In [40], Jump and Ahuja analysed the different directions of pipelining for array multipliers. The idea is illustrated in Figs.10 and 11. The array of Fig.10 has a typical structure of communication. The horizontal data enter in just one processor. There are local communications, exhibiting a low- fanout that is almost independent of the array size. In contrast, the vertical data are broadcasted: each one requires a global line to reach a complete column of processors. The fanout of the vertical global wires is a function of the array size. This type of mixed communication is common in binary multipliers where a column (or a row) of AND gates concurrently calculates, for example, the partial products A0B0, A0B1, A0B2 …, A0Bn. The signal A0 requires a global line to reach all the ANDs, meanwhile any Bi is local [41]. Fig.10 shows other valid directions of pipelining (there are other possible “angles” but they do not maximize speed). From a topological point of view, neglecting wiring delays, both pipeline directions have a granularity of one processor. So, in the abstract they should reach the same speed. The “vertical” pipeline option sounds better because it exhibits a less latency and smaller number of FFs. But the situation is different in actual integrated circuits were wiring delay is dominant: for large array sizes, these global lines will exhibit high delays. Fig.10: Generic pipeline with global lines inside each stage. Fig.11: Pipeline direction disrupting global lines. The vertical line pipeline confines each of these global lines inside a pipeline stage. So, the total delays of these heavily loaded interconnections are a part of the clock period. In contrast, the “45 degrees” pipeline breaks the global lines, transforming them into almost local wires. The effect is detailed in Fig.12 for Y0 signal as example. Fig.12: Elimination of global lines by pipelining (detail). Work [42] carries out a case-study of the transformation of global lines by the direction of pipelining. Target technology was 1µ CMOS Standard Cells from the former ES2 foundry [43], and Xilinx FPGAs. Two 16-bit arrays multipliers were compared: the Hatamian-Cash [12] and the McCanny-McWhirter [44]. Both pipeline circuits share the same topology but the first maintain global interconnection inside each stage, meanwhile the second transforms these interconnections into a set of local wires with fanout equal to 2. Fig.13 shows the histogram of wiring capacitance for each version: Hatamian-Cash (above) and McCanny- McWhirter (below). In both graphs there are two similar groups of wires. On the left, there are a high number of local interconnections loaded with small capacitances. On the right side, a set of heavily loaded lines corresponding to the clock and global reset signals. The delay of theses clock branches does not directly affect the period. Its maximum difference (skew) only increases the pipeline period (Section VII). Fig.13: Histograms of wiring capacitance. The Hatamian-Cash pipeline exhibits less datapath nodes (3115 versus 3986). But there is in the middle a group of global lines of data that affect the clock period. These lines do not exist in the fully local-line pipeline of McCanny- McWhirter. As result, its throughput for typical delays is higher (154 versus 117 MOPS). VII. SYNCHRONIZATION FAILURES IN PIPELINES In the previous sections, it was shown that fine grain pipelining easily increases the total number of FFs from a few units to tens of thousands. A large number of FFs makes a clock distribution tree indispensable to drive them synchronously. And clock trees generate latency and skew. The first effect is mitigated in FPGA technology by adding digital PLLs to align external and internal clock edges. More problematic is the clock skew: almost all the pipeline´s paths are vulnerable to it. The clock skew is the maximum difference in time between the same clock edge at two points of the die. The factors that contribute to clock skew even in balanced trees are differences in parameters like wiring length, distributed RC, local temperature and voltage, FF trigger thresholds, and finally buffer and FFs propagation delays. The mixture of all these components makes skew inevitable. Fig.13 clarifies the effect of clock skew. In a single-phase clock scheme, each clock edge initiates a race between the data in D1 and D2. To work properly, the data in D2 must be captured by the FF2 before being replaced by the data that travels from D1. Moreover, after the arrival of the edge to FF2, the previous data in D2 must still remain stable during the hold time of the FF. Fig.14: FFs vulnerable to clock skew in single-phase clocking. As a consequence, for the worst case (wiring delay zero), the maximum admissible clock skew is: SKEW = ΔCLK2- ΔCLK1 < ΔCK-OUT - HOLD (2) As a rule-of-thumb, chip designers know that clock skew must always be lower than the FF propagation delay. This problem was called double-clocking by Fishburn [45] because one bit passes through two FFs in one clock edge. It is also known as a short-path fault. That is, not only the longest path generates problems in digital systems. An important fact is that the clock period is not present in (2). If a circuit suffers clock skew, the circuit will never work at any frequency. Another aspect to consider is the sign of the skew. If it has an opposite sign, the clock edge arrives first at FF2, and the risk of double-clocking is reduced. Eq. 2 is completely applicable to pipeline circuits where FF chains are very common. For example, in the 8-bit fine grain pipeline RCA of Fig.4, the 77 % of the FFs only drive another FF. The second source of synchronization failure is more evident. It is called a long-path fault and states that the minimum clock period must be larger than the delay of worst pipeline stage. In [46] was proposed to calculate the clock period using a circular pipeline, in order to include the I/O pin delays in the computation of the period. The condition to avoid long path fault is indicated in (1). The worst effect of the skew occurs if the slower clock line triggers the input FF and the faster clock line triggers the output FF. In such a particular combination, the value of the skew is added to the clock period. VIII. CONCLUSIONS This tutorial reviewed the main aspects of the pipelining of digital circuits. Students interested in integrated circuits can discover several points of research interest. However, some important related issues like wave pipelining, the relationship between pipeline and power consumption, and the self-timed synchronization exceed the length available for this work. If pipelining is a masterpiece of the classical period of digital electronics, wave pipelining (WP) is an example of the baroque period. Both techniques were contemporary. WP was summarized in [8] in 1967: “…If a section of combinatorial logic, such as the logic to execute an add, could be designed with equal delay in all parallel paths through the logic, the rate at which new inputs could enter this section of logic would be independent of the total delay through the logic…”. Leonard Cotten describes the same concept with different words in 1969: “…It is possible for max-rate pipeline machines to operate at high rates determined by path differences, rather than the conventional maximum delay...” [7]. The WP technique speeds up a circuit without using intermediate FFs. In a WP all the paths are equalized; therefore, several “waves” of data can propagate along the circuit without interference between the fastest bit of a new data and the slowest bit of the previous one. The equalization must be immune to temperature and voltage variations. WP allows the designer to obtain a unique combination of fine-grain pipeline speed and the latency of the original combinational circuit. The technique was studied in detail in [47], [48]. An example of wave pipeline in an LUT-based FPGA is described in [49], [50]. Another important aspect of pipelining is its hidden relationship with power consumption. The fact that pipelining can reduce power defies common sense. This is especially true in FPGA technology, but negligible in standard cell devices [51]. In a pipeline, the intermediate lines of FFs prevent the propagation of glitches that, otherwise, would produce a snowball effect in the activity of large combinational circuits. If the synchronization power overhead caused by the extra FFs is less than the datapath glitch power reduction, pipelining saves power. The pipeline- power rule was first reported in [52], [53]. An early experimental verification for FPGA was performed in [54]. Since then, the effect has been verified in more than 34 experiments of 12 research groups in 8 countries using chips that cover 17 years of FPGA technology [55]. Other variation of the classical pipelining is the self- timed technique. In this case, the clock tree is replaced by a local handshake between processing elements. There is no global clock line; only low-fanout wires of request-ack signals. The origin of the technique is [56] but a solid line of research was led by Steve Furber [57], [58]. An interesting feature of self-timed circuits is their smooth requirement of power supply current. ACKNOWLEDGMENT The author would like to thank all these people who engineered electronic pipelines over the last 50 years. REFERENCES [1] “Company Timeline”, https://corporate.ford.com/history.html. Ford Motor Company. Retirved: 5/12/2018. [2] J. Deverell, "Pipeline Iterative Arithmetic Arrays". IEEE Trans. on Computers, pp.317-322. March 1975. [3] H.T. Kung, “Why Systolic Architectures”, Computer, pp.37-46, Jan. 1982. [4] N. Sherrin (Editor), “The Oxford Dictionary of Humorous Quotations”, Oxford University Press, 1995. [5] https://commons.wikimedia.org, File: Ford_assembly_line_- _1913.jpg. Retrieved: 3/1/2019. [6] L. Cotten, "Circuit Implementation of High-Speed Pipeline Systems", Proc. Fall Joint Computer Conference, pp. 489-504, 1965. [7] L. Cotten, "Maximum-rate pipeline systems", Proc. Sprint Joint Computer Conference, pp. 581-586, 1969. [8] S. Anderson, J. Earle, R. Goldschmidt, and D. Powers, "The IBM system/360 model 91 floating point execution unit", IBM Journal Res. Development, Vol.11, pp. 34-53, Jan 1967. [9] M. Flynn, “Very High-speed Computing Systems”, Proceedings of the IEEE, Vol. 54, No. 12, December, 1966. [10] T. Hallin and M. Flynn, "Pipeline of Arithmetic Functions". IEEE Trans. on Computer, pp.880-886. August 1972. [11] D. Henlin, M. Fertsch, M. Mazin y E. Lewis. "A 16 bit x 16 bit Pipelined Multiplier Macrocell". IEEE Journal of Solid-State Circuits, Vol.SC-20, Nº2, pp.542-547. Abr. 1985. [12] M. Hatamian and G.L.Cash. "A 70-MHz 8-bit x 8 bit Parallel Pipelined Multiplier in 2.5-um CMOS". IEEE Journal of Solid-State Circuits. August 1986. [13] T. Noll, D. Schmitt-Landsiedel, H. Klar and G. Enders, "A Pipeline 330-MHz Multiplier", IEEE Journal of Solid-State Circuits, Vol. SC- 21, pp. 411-416, Jun. 1986. [14] M. Santoro and M. Horowitz, "A Pipelined 64x64-bit Iterative Multiplier", IEEE J.of Solid-State Circuits, VOL. 24, n2, pp.487- 493, Apr. 1989. [15] H. V. Jagadish, R.G. Mathews, T. Kailath and J.A. Newkirk. "A Study of Pipelining in Computing Arrays". IEEE Transactions on Computers, vol. C35, No5 . May 1986. [16] F. Lu, H. Samueli, J. Yuan and S. Svensson, "A 700-MHz 24-bit pipelined accumulator in 1.2 µm CMOS for Application on Numerically Controlled Oscilators", IEEE Journal of SolidState Circuits, Vol.28, N.8, pp.878-885, August 1993. [17] Atmel Corp, "SClib ATMEL ATC18", Datasheet Version: 1.5.5- 1.0.0, Jan 2002. [18] Xilinx Inc., “All Programmable 7 Series Product Selection Guide”, https://www.xilinx.com/support/documentation/selection-guides/7- series-product-selection-guide.pdf. Retrieved:12-01-2018. [19] Xilinx Inc., “Using Look-Up Tables as Shift Registers (SRL16) in Spartan-3 Generation FPGAs”, XAPP465 (v1.1), May 2005. [20] R. Lyon, "Two's Complement Pipeline Multipliers", IEEE Transactions on Communications, pp. 418 - 425, Vol. 24 , Issue: 4 , Apr 1976. [21] C. V. Ramamoorthy, “Pipeline Architecture", Computing Surveys, Vol.9, No.1, March 1977. [22] D. Gross, “Greatest bussiness histories of all times”, John Wiley & Sons, Inc. 1996. [23] P. Cappello y K. Steiglitz. "A VLSI Layout for Pipelined Dadda Multiplier". ACM Trans. on Computer Systems, Vol.1, Nº2, May 1983. [24] Boeing,http://www.boeing.com/resources/boeingdotcom/history/pdf/ Boeing_Chronology.pdf [25] C. Hauck, C. Bamji and J. Allen, "The Systematic Exploration of Pipelined Array Multiplier Performance", Proc. ICASSP 85, pp.1461-1464. New York: IEEE Press, 1985. [26] H. Bakoglu, "Circuits, Interconnections, and Packing for VLSI", Reading, Massachusset: Addison-Wesley Publishing Co. 1992. [27] Burrel G. (Editor), "Crónica de la Técnica", Barcelona: Plaza & Janes Publishers, 1989, pp. 524-525. [28] Texas Instruments, “SN74S74 Dual D-type positive-edge-triggered flip-flops with preset and clear”, SDLS119 – December 1983 – revised March 1988. [29] Texas Instruments, “SN74S00, Quadruple 2-input NAND” , December 1983. [30] Xilinx Inc., “Virtex-5 FPGA Data Sheet: DC and Switching Characteristics”, DS202 (v5.5) June 17, 2016. [31] Xilinx Inc., “XC8100 FPGA family”, Version 1.0, June 1, 1996. [32] Xilinx Inc., “Spartan and Spartan-XL FPGA Families Data Sheet”, DS060 (v2.0) March 1, 2013. [33] Phillips, “Fast TTL Logic Series”, Holland, 1999. [34] Xilinx Inc. "XC6200 Field Programmable Gate Arrays", (Version 1.8) January 9, 1997. [35] Xilinx Inc., “XC4000 Series Field Programmable Gate Arrays”, Version 1.02, June 1, 1996. [36] Motorola, “CMOS Logic Data”, 1990. [37] Xilinx Inc., “Virtex-6 FPGA Data Sheet: DC and Switching Characteristics, DS152 (v2.4)”, May 11, 2010. [38] Xilinx Inc, “XC3000 Series Field Programmable Gate Arrays (XC3000A/L, XC3100A/L)”, Nov. 9, 1998. [39] W. Donath, "Wire Length Distribution for Placemment of Computer Logic", IBM J. of Res. Development, vol.25, nº3, May 1981. [40] R. Jump and S. Ahura. "Effective Pipeline of Digital Systems", IEEE Trans. on Computers, Vol. C-27, Nº9, pp.855-865, Sept. 1978. [41] P. Song and G. de Micheli, “Circuit and Architecture Trade-offs for High-Speed Multiplication”, IEEE Journal of Solid-State Circuits, Vol.26, No.9, Sept 1991. [42] E. Boemo, S. Lopez-Buedo, N. Acosta, and E. Todorovich, ”Local versus Global Interconnections in Pipelined Arrays: An Example of the Interaction between Architecture and Technology", Proc. XIV DCIS Conference, pp.181-186, November 1999. [43] European Silicon Structures, "ES2 ECPD10 Library Databook", Doc. E01A09, 1993. [44] J. McCanny and J. McWhirter, "Completely iterative, pipelined multiplier array suitable for VLSI", IEE Proc. pp.40-46. Vol.129, Part G, Nº2. April 1982. [45] J. Fishburn, "Clock Skew Optimization", IEEE Trans. on Computers, Vol.39, Nº7, pp.945-951, July 1990. [46] K. Sakallah, T. Mudge, T. Burks and E. Davidson, "Optimal Clocking of Circular Pipelines", Proceeding ICCD'91, pp.642-646. IEEE Press 1992. [47] D. Wong, "Techniques for Designing High-Performance Digital Circuits Using Wave Pipelining", Tech.Rep. nº CLS-TR-92-508, Stanford Uiversity: Feb. 1992. [48] C. Gray, W. Liu and R. Cavin, "Wave Pipelining: Theory and Implementation", Norwell, MA: Kluwer Academic Publishers. 1992. [49] E. Boemo, S. López-Buedo and J. Meneses, "The Wave Pipeline Effect on LUT-Based FPGA Architectures" Proc. ACM FPGA 1996, Monterrey, Feb. 1996. [50] E. Boemo, S. Lopez-Buedo, and J. Meneses, "Some Experiments about Wave Pipelining on FPGAs", IEEE Transactions on Very Large Scale Integration (VLSI) Systems, Vol.6, No.2, June 1998. [51] E. Boemo, S. Lopez-Buedo, C. Santos, J. Jauregui and J. Meneses: “Logic Depth and Power Consumption: A Comparative Study between Standard Cells and FPGAs”, Proc. Design of Circuit and Integrated Systems Conference (1998). [52] J. Leijten, “Analysis of Transition Activity and Power Dissipation in Synchronous Logic Circuits”. Nat. Lab. Technical Note, no. 339/93, Philips Electronics N.V. (1993). [53] J. Leijten, J. van Meerbergen’ and J. Jess, “Analysis and reduction of glitches in synchronous networks”, Proc. European Design and Test Conference (1995). [54] E. Boemo, G. Gonzalez de Rivera, S. Lopez-Buedo and J. Meneses: “Some Notes on Power Management on FPGAs”. In: Field- Programmable Logic and Applications FPL’05, LNCS, vol. 975, pp.149-157, Springer-Verlag 1995. [55] E. Boemo, J.P. Oliver, and G. Caffarena, "Tracking the Pipelining- Power Rule along the FPGA Technical Literature", Proc. ACM 2013 FPGA World, Stockholm, Sweden. ACM, Sept. 2013. [56] I. Sutherland, "Micropipelines", Communication of the ACM, vol.22, nº6, pp.720-734. Jun. 1989. [57] S Furber, “Computing without clocks: Micropipelining the ARM processor”, in Asynchronous Digital Circuit Design, pp.211-262, Springer, London1995. [58] J. Woods, P. Day, S. Furber, J.D. Garside, N. Paver, and S. Temple, “AMULET1: An Asynchronous ARM Microprocessor”, IEEE Transactions on Computers, Vol. 46, No. 4, April 1997. __MACOSX/DIE/Teoría/._4. Pipeline.pdf DIE/Teoría/.DS_Store __MACOSX/DIE/Teoría/._.DS_Store DIE/Teoría/1. Intro FPGA y Zynq.pdf Introducción a la Tecnología Xilinx a través de la Práctica 1 Parte 1: Introducción Eduardo Boemo Universidad Autónoma de Madrid eduardo.boemo@uam.es 1 ¿Cuál de todos es el chip del Lab 2021? • XC7Z010CLG400-1C • XC = Xilinx Commercial • 7Z = Familia Zynq • 010 =“Tamaño” (cantidad de diversos bloques internos). También se usa: • “capacidad” (no la de los pF) • “puertas equivalente” • CLG400 = encapsulado y número de “patas” • -1 = “Velocidad” • C = “Comercial” 3 Nomenclatura Xilinx 4 5 ¿Qué es Tj? ¿Funcionará el día que en Madrid lleguemos a 85° en Julio? ¿Carnot? ¿400 patas y sólo 130 I/O? ¿Y el resto? ¿Reloj? ¿Sistema? ¿2 ARMs? ¿No era una FPGA? ¿Poca memoria? XC7Z010-1CLG400C (Lab UAM) 6 Encapsulado CLG400 8 Migración para aumentar lógica manteniendo I/O (nº patas constante) • Ejemplo: • Un diseño procesa 16 bits de entrada y saca 16 de salida. • PCB fabricado y de pronto se requiere más procesamiento. • ¿Qué hacer? 9 Migración para aumentar lógica manteniendo I/O (nº patas constante). Concepto de circuito pad / core limited • Los encapsulados son compatibles entre sub- rangos de FPGAs para facilitar el diseño de sistemas “core-limited”. Figura: ejemplo Spartan 3 200 K System Gates 1 Million System Gates FT256 package 5X Density Range VCC & GND User I/O 10 Introducción a la Tecnología Xilinx a través de la Práctica 1 Parte 2: La Práctica 1 Eduardo Boemo Universidad Autónoma de Madrid eduardo.boemo@uam.es 11 Primer diseño FPGA • ¿Vcc? • ¿SW? • ¿G15, P15, M14...? • ¿LD? 12 Tarjeta de desarrollo EPS 2021 Tarjeta de desarrollo: • Bajo coste. • Prototipo para facilitar pruebas • Diseños de referencia • Incluye planos. • Digilent: originariamente orientada al mercado universitario 13 XDC = Xilinx Design Constraints (file) 15 XDC = Xilinx Design Constraints (file) 16 Introducción a la Tecnología Xilinx a través de la Práctica 1 Parte 3: EDA Tools Eduardo Boemo Universidad Autónoma de Madrid eduardo.boemo@uam.es 17 Masked-ASICs & FPGA Design Flows Global Placement Detail Placement Clock Tree Synthesis and Routing Global Routing Detail Routing Power/Ground Stripes, Rings Routing Extraction and Delay Calc. Timing Verification IO Pad Placement Fuente: CSE241 VLSI Digital Circuits Winter 2003 Lecture 08: Placement Kahng & Cichy, UCSD FPGA ≠ Masked-ASIC FPGAs = platform chips. Es decir, chips donde están prediseñados muchos bloques tales como: • VCC y GND (core y pines) • Árbol de reloj. • Memorias. • Drivers. 22 Xilinx Vivado https://reference.digilentinc.com/vivado/getting_started/start The Navigator is broken into seven sections: • Project Manager • Allows for quick access to project settings, adding sources, language templates, and the IP catalog • IP Integrator • Tools for creating Block Designs • Simulation • Allows a developer to verify the output of their design prior to programming their device • RTL Analysis • Lets the developer see how the tools are interpreting their code • Synthesis • Gives access to Synthesis settings and post-synthesis reports • Implementation • Gives access to Implementation settings and post-implementation reports • Program and Debug • Access to settings for bitstream generation and the Hardware Manager 23 Síntesis: un texto VHDL (Verilog) Primitivas HW (transistores, puertas, LUTs, etc. Source: ECE 645 – Computer Arithmetic George Mason U Xilinx incluye síntesis y simulación 24 Pasos de la Síntesis Fuente: https://forums.xilinx.com/t5/Synthesis/what-exactly-is-elaborating-a-design/td-p/682043 • Elaboration: “Reading in your RTL file (which is text) and recognizing bits of code that represent real hardware structures. Once recognized, these are converted (in Vivado synthesis case) into "generic technology cells" - abstract things like registers, adders, comparators, multiplexers, arbitrarily wide gates, etc... • Apply constraints to the design: “This step is necessary since the next steps (high and low level optimizations) are timing driven, and hence need constraints. But, constraints cannot be applied to your RTL (which is text) - they need to be applied to a netlist. So elaboration creates the netlist of generic technology cells.” • Do high level optimizations of the design. 25 Pasos de la síntesis 1. Load technology library into database 2. Analyze design Load HDL models into database, check for synthesizable models 3. Elaborate design Technology-independent circuit (random & structured logic) 4. Specify design constraints (timing, area) 5. Compile/optimize design Optimize for the loaded technology library Repeat as necessary to meet constraints 6. Generate technology-specific netlist(s) 7. Generate simulation timing data (SDF file) 8. Generate reports (cells, area, timing) Source: http://www.eng.auburn.edu/~nelson/ 26 Opciones de síntesis 27 Ejemplo de flujo de diseño sobre una FPGA educativa (pizarra) library ieee; use ieee.std_logic_1164.all; entity lab1 is port ( swt : in std_logic_vector (3 downto 0); led : out std_logic_vector (3 downto 0) ); end lab1; architecture rtl of lab1 is signal ledSig : std_logic_vector (3 downto 0); begin ledSig(0) <= not swt(0); ledSig(1) <= swt(1) and not swt(2); ledSig(2) <= (swt(1) and not swt(2)) or (swt(2) and swt(3)); ledSig(3) <= swt(2) and swt(3); led <= ledSig; end architecture; 28 Introducción a la Tecnología Xilinx a través de la Práctica 1 Parte 4: CLB e IOB Zynq Eduardo Boemo Universidad Autónoma de Madrid eduardo.boemo@uam.es 29 PL (program. logic = FPGA) Zynq: Componentes básicos 30 Zynq Configurable Logic Block (CLB) • Estructura repetitiva y jerárquica. • Similar a Virtex 7 (y a V6) • LUTs de 6 entradas (MUX de 64 entradas) LUT LE=LOGIC ELEMENT (LUT + FF) SLICE (Conjunto de LEs) CLB (Conjunto de Slices) Source: 31 __MACOSX/DIE/Teoría/._1. Intro FPGA y Zynq.pdf DIE/Teoría/3. Timing 3 - Arbol de Reloj.pdf Dispositivos Integrados Especializados Escuela Politécnica Superior, Universidad Autónoma de Madrid Tema: Sincronización en Circuitos Integrados Subtema: Árbol de reloj Objetivos: Comprender la complejidad de lógica y recursos asociados al reloj de FPGAs. Bibliografía: Apuntes de clases. Hoja de datos Standard Cells Atmel. © eduardo.boemo@uam.es Problemas Propuestos 1. En la tabla adjunta se indica que una FPGA Xilinx XC6VLX760 tiene 948480 flip-flops. Suponga que el fanin de la entrada de reloj de cada FF es 0,005 pF y que un 1 lógico son 1,8 volt. Calcule que corriente (es decir, considerando que se cargan las capacidades con una corriente constante) es necesaria para llevar el reloj de todos los FF de 0 a 1 lógico (un flanco de subida) en 1 ns. 1. 2. Qué es un driver? Cuál es su principio de diseño? Explique la estructura de driver de la figura, detallado a nivel de transistor. 3. Cuantos FF D tipo dfnrq1 puede manejar un buffer inversor de Atmel tipo clk2d2. Considere el caso (irreal) en que la capacidad de pista es despreciable. Utilice las hojas de datos del final de esta guía. 4. Diseñe un árbol de reloj formado buffers clk2d2 para alimentar a 44096 FF tipo DFNRB1 (el número 44096 es exactamente la cantidad de FF de una FPGA Virtex XC2VP100). Tenga en cuenta que el número de buffers insertados en serie en el árbol de reloj debe ser par (¿por qué?). Capacidad pistas despreciable. 5. En el árbol anterior calcule la latencia del reloj. Es decir, el tiempo que transcurre desde que entra el reloj por el pin metálico hasta que llega a cada FF. 6. ¿Qué es el skew de reloj? Imagine que debido a un rediseño, una de las ramas del árbol anterior sólo maneja 15 FF. ¿Qué skew introduciría este desbalance? 7. ¿Qué potencia disipan los FF del árbol de reloj del problema 5 si funcionan a 300 MHz? 8. ¿Cuál sería el máximo desbalance admisible (expresado en capacidad y número de FF) entre dos ramas de un árbol de reloj construido con FF D tipo dfrnq1 y buffers CLK2D2, si en el proyecto se especifica que el skew no puede sobrepasar 200 ps? Considere como primera aproximación que la capacidad de las pistas es nula. 9. Un pulso que está a “1” durante 100 ns pasa a través de 25 buffers CLK2D2 conectados en cascada. La señal entra por el terminal clk y sale por el terminal c (la salida no inversora del buffer). Se pide calcular el ancho del pulso (el tiempo en que está a “1”) en la salida OUT. El último buffer también soporta una carga total igual al fanin de un buffer. 10. Explique qué significado tiene cada frase del documento de la Agencia Espacial Europea titulado "ASIC Design and Manufacturing Requirements" (Issue 2, Oct'94), que especifica lo siguiente: 11. ¿Por qué la nota “Clock Buffer Cell User Guide”, de Atmel indica que la distribución de reloj de la figura de la derecha es mejor? 12. En el trozo de hoja de datos adjunto se indica la distorsión de duty-cycle y el skew de un árbol de reloj de Xilinx. Explique por qué ocurre cada parámetro. Synchronous Design: Wherever possible the design shall be synchronous according to the following definition: Every latch and flip-flop within a clock region shall be connected to the same clock source with only buffers inserted for the purpose of increasing the driving strength or using another clock edge (no logic functions or memory elements are allowed). The clock tree for each clock region should be optimally balanced. The device function shall not be dependent on internal signal delays. __MACOSX/DIE/Teoría/._3. Timing 3 - Arbol de Reloj.pdf DIE/Teoría/2. Timing 1 - Fundamentos.pdf Eduardo I. Boemo Escuela Politécnica Superior Universidad Autónoma de Madrid Ctra. de Colmenar Km.15. 28049 Madrid, España. http://www.ii.uam.es/~ivan e-mail: eduardo.boemo@uam.es Timing en FPGAs y Standard Cells Parte 1: Fundamentos 1 eduardo.boemo@uam.es Introducción Problema: Las herramientas EDA de FPGA escondes varios conceptos electrónicos al usuario que diseña a alto nivel. Consecuencias: Aunque se escondan los detalles electrónicos, no significa que se escondan sus consecuencias sobre el circuito final. Las herramientas tienen opciones avanzadas de diseño que requieren conocer algunos temas en profundidad. Estrategia DIE: Utilizar circuitos integrados tipo Standard Cells (no hay datos similares disponibles en Xilinx) para ayudar a entender resultados de una implementación FPGA y mejorar la formación de diseñadores de la UAM. 2 eduardo.boemo@uam.es Dos conductores separados por un aislante pueden almacenar carga. Q Campo eléctrico Diferencia de potencial V. C se define como la relación entre la carga que se almacena y el potencial V. C = Q/V [Culombio/Voltio = Faradios]. Capacidad 4 C = Є A/d (capacitor o condensador plano) A= área del cap. d= distancia entre placas eduardo.boemo@uam.es C = Q/V Si están en paralelo V es la misma para todos los CTOTAL = C1 + C2 + … + Cn Capacidades en paralelo se suman 5 eduardo.boemo@uam.es Carga y descarga de un capacitor Carga a tensión constante: Vcap = Vcc (1 - e-t/RC ) Carga a corriente constante Vcap = (i/C) t Energía almacenada en un C: Ecap= ½ C V2 6 Fuente: EHU eduardo.boemo@uam.es Capacidad Las pistas de un circuito integrado son capacitores casi “de libro”. 7 eduardo.boemo@uam.es RC como parámetros distribuidos 8 Capacitance to ground (aF/μm) Coupling capacitance (aF/μm) Resistance/ length (Ω/μm) Metal 3 18 9 0.2 Metal 2 47 24 0.3 Metal 1 76 36 0.3 Femto f 10-15 Atto a 10-18 Zepto z 10-21 Yocto y 10-24 µm = millonésima parte de un metro = milésima del mm. Diámetro cabello humano: 15 (muy fino) a 170 µm. eduardo.boemo@uam.es Capacidades de una FPGA: XC3020 Die area: 39,600 mil2 Matrix height (Y): 480 μm Matrix width (X): 370 μ m Matrix transistor resistance: 0.5–1k W Matrix transistor parasitic capacitance: 0.01–0.02 pF PIP transistor resistance: 0.5–1k ohm PIP transistor parasitic capacitance: 0.01–0.02 pF Single-length line (X, Y): 370 um, 480 μ m Single-length line capacitance: 0.075 a 0.1 pF Horizontal Longline (8X): 8 cols.=2960 μ m Horizontal Longline metal capacitance: 0.6 pF Fuente: Smith Uno de los pocos datos internos publicados de una FPGA 9 eduardo.boemo@uam.es Eduardo I. Boemo Escuela Politécnica Superior Universidad Autónoma de Madrid Ctra. de Colmenar Km.15. 28049 Madrid, España. http://www.ii.uam.es/~ivan e-mail: eduardo.boemo@uam.es Timing en FPGAs y Standard Cells Parte 2: Números concretos 10 eduardo.boemo@uam.es Retardos intrínsecos y extrínsecos 1995: hace más de 25 años! El retardo de una puerta se separa en: Intrínsico: retardo interno de conmutación de la puerta. Es un valor fijo. Extrínseco: retardo debido a la carga de la capacidad que debe manejar la salida de la puerta. No es fijo, depende de la carga 11 eduardo.boemo@uam.es Capacidad y Retardo 12 Neil Weste Kamran Eshraghian eduardo.boemo@uam.es Fanin, Fanout y Retardos Fanout (in pF): Is the total capacitance that a signal will have to drive; this includes gate capacitance as well as interconnect capacitance. The fanout figure is based on output fall and rise time staying within reasonable limits. En Xilinx se entiende por fanout simplemente el número de entradas conectadas a una salida Tiempo de propagación: tpdhl propagation delay, high-to-low. tpdlh propagation delay, low-to-high. dtpdhl differential (load-dependent) propagation delay. dtpdlh differential (load-dependent) propagation delay. Fuente: Atmel Corp. 2001 13 eduardo.boemo@uam.es Retardo Intrínseco y Extrínseco en Xilinx 14 Zynq-7000 SoC (Z-7030, Z-7035, Z-7045, and Z-7100): DC and AC Switching Characteristics eduardo.boemo@uam.es How much fast is a FPGA? eduardo.boemo@uam.es Retardo de interconexión en FPGA? Fuente: Xilinx Inc. eduardo.boemo@uam.es Retardo de las patas en FPGA? eduardo.boemo@uam.es Capacidades I/O en una FPGA? Ejemplo Virtex 6 19 eduardo.boemo@uam.es Capacidades I/O en una FPGA? Ejemplo Virtex 6 Qué sucederá con los tiempos de un IOB si Ud. carga una pata con más de 1 pF ? (ej. Un pin de una FPGA con 8 pF) 20 eduardo.boemo@uam.es Miscellaneous: Cómo presenta Xilinx sus datos? 22 eduardo.boemo@uam.es Eduardo I. Boemo Escuela Politécnica Superior Universidad Autónoma de Madrid Ctra. de Colmenar Km.15. 28049 Madrid, España. http://www.ii.uam.es/~ivan e-mail: eduardo.boemo@uam.es Timing en FPGAs y Standard Cells Parte 3: ¿Cómo bajar T? 23 eduardo.boemo@uam.es Para “visualizar” la capacidad total que maneja una determinada puerta, hay que sumar: Fanout que soporta cada salida. Capacidad distribuida de cada cable. Minimizar retardo requiere: Reducir fan-out (en el significado, cantidad de salidas que maneja una entrada) C↓ Reducir wire length C↓ Aumentar driving i ↑ Bajar Temp ó subir Vcc Bajar retardo de pista (Capacidad) en Diseño FPGA a Alto Nivel 24 eduardo.boemo@uam.es Como minimizar capacidad diseñando a alto nivel? Retardo o Capacidad alta: implica pistas largas o mucho fanout. Minimizar capacidad Minimizar longitud de pista Atributos: time_spec. Minimizar tamaño del circuito reducir nº de bits Placement manual Minimizar capacidad limitar fanout Replicar HW Atributo max_fanout (Xilinx) “Tocar” las opciones por defecto de la síntesis” 25 eduardo.boemo@uam.es O pc io ne s sí nt es is (V iv ad o 20 20 .1 ) 27 eduardo.boemo@uam.es Limitación de Fanout en síntesis (ISE 14.7) 28 eduardo.boemo@uam.es ¿Cómo limitar el fanout de un circuito? A0 B0B1B2B3 B0B1B2B3 A0 B0B1B2B3 B0B1B2B3 B3A0 B2 A0 B1A0 B0A0 A3 A2 A2 A0 B3 B2 B1 B0 P3 P2 B1 P0P7 P6 P5 P4 B3A1 B2 A1 B1A1 B0A1 B3A2 B2 A2 B1A2 B0A2 B3A3 B2 A3 B1A3 B0A3 Las señales globales (broadcasted) son muy comunes en los circuitos digitales. ¿Cómo evitarlas o limitarlas? 29 eduardo.boemo@uam.es ¿Cómo limitar el fanout de un circuito? Recomendación Xilinx 30 eduardo.boemo@uam.es Limitación de Fanout: VHDL y XCF. Ver además: EQUIVALENT_REGISTER_REMOVAL is a synthesis constraint. It enables or disables flip-flop optimization related only to the flip-flops described on RTL level. (Instantiated flip- flops are not removed) 31 eduardo.boemo@uam.es Área (Tamaño) y Retardos: Un caso de estudio en Xilinx Familia de multiplicadores de 2x2 a 128x128 V5 – ISE 12.1 PPR automático. Basado en LUTs. Retardo = f(area) Pistas globales Distancia 32 Fuente: O. Lifschitz, UNS (Arg.) eduardo.boemo@uam.es Área (Tamaño) y Retardos: Un caso de estudio en Xilinx 33 0 1 2 3 4 5 0 500 1000 1500 2000 Net delay − #64b Delay [ns] # E ve nt s 0 1 2 3 4 5 6 7 8 0 2000 4000 6000 8000 10000 Net delay − #128b Delay [ns] # E ve nt s Fu en te : O . L ifs ch itz , U N S (A rg .) 0 0.5 1 1.5 2 2.5 3 0 50 100 150 Net delay − #16b Delay [ns] # E ve nt s 0 0.5 1 1.5 2 2.5 3 3.5 4 0 200 400 600 Net delay − #32b Delay [ns] # E ve nt s eduardo.boemo@uam.es Concepto de “Deration”: Ejemplo Tj y Vcc modifican los retardos nominales del chip. Vcc además influye cuadráticamente en la potencia. Tj depende de los datos de entrada (actividad). Tj depende de la estrategia de power management. Merriam-Webster's Collegiate Dictionary: De.rate vt (1947): to lower the rated capability of (as electrical or mechanical apparatus) because of deterioration or inadequacy. 34 eduardo.boemo@uam.es ps y Temperatura Source: Kryotech, Inc., 1999 Freon cooling at Cray 2 EPFL, © EIB Reduce temperature to increase speed is well-known. Unfortunatelly, the reverse is also true: Speed decrease 0,3 % per ºC of increment on T __MACOSX/DIE/Teoría/._2. Timing 1 - Fundamentos.pdf DIE/Teoría/5. Fallos Sincronizacion.pdf Dispositivos Integrados Especializados (Telecom) / Desarrollo de Procesadores y Sistemas Específicos (Informática) Escuela Politécnica Superior, Universidad Autónoma de Madrid Tema: Sincronización de Circuitos Integrados Subtema: Doble Captura y Captura Nula Objetivos: Comprender fallos de sincronización de circuitos integrados © eduardo.boemo@uam.es Problemas Propuestos 1. Explique los parámetros temporales de un FF. 2. Explique los dos fallos de sincronización de un circuito con E/S registrada; Fallo del Camino Largo y Fallo del Camino Corto (Captura Nula y Doble Captura). 3. Explique en el fichero adjunto de análisis de tiempo de una FPGA por qué se suma el skew y el setup al retardo del path para obtener el período mínimo? 4. El sistema de la figura, los FF pueden tener entre 1 y 3 ns de retardo de propagación mientras que las pistas de reloj (desde ck a la entrada de reloj del FF) varían entre 0 y 2 ns. Se pide Indicar cuanto puede ser como máximo el retardo combinacional del circuito si se requiere que el período mínimo del sistema, para la peor combinación de retardos, sea de 200 ns. Considere un valor s=3 de setup del FF. ========================================================================= Timing constraint: Default period analysis for net $Net00003_ 4434 items analyzed, 0 timing errors detected. Minimum period is 38.749ns. ------------------------------------------------------------------------- Delay: 38.749ns U2/so_6_1 to U2/co_7_7_r 38.743ns Total path delay (36.943ns delay plus 1.800ns setup) 0.006ns clock skew Path U2/so_6_1 to U2/co_7_7_r contains 8 levels of logic: 5. De acuerdo con las características del FF tipo, cual es el valor máximo y mínimo de skew que puede soportar el circuito de la figura. Considere setup = 2 ns, hold = 1 ns y retardo de propagación varía en el intervalo [ 3 ns, 7 ns] MIN-MAX. 6. Cuál será el período de operación máximo (mejor caso) y mínimo (peor caso) para el circuito del problema anterior, considerando un skew entre 0.1 ns y 0.5 ns entre A y B (el reloj llega al punto A con un retardo entre 0.1 ns y 0.5 ns respecto de B). 7. En la siguiente figura, calcule: A) La frecuencia máxima de operación B) el retardo mínimo que debe tener el inversor para que el circuito funcione con total seguridad. En la tabla adjunta se resumen los retardos del resto del circuito. Q parte de Q=0. La figura adjunta ha sido extraída de una nota de aplicación del fabricante de FPGAs Actel (Micronsemi). En la misma se sugiere que para eliminar problemas de skew se inserte un buffer en la línea de reloj (indicado como BUFD) tal como se muestra en el esquema. Calcule cuanto debería valer como mínimo el retardo de dicho buffer si se desea evitar el fenómeno de doble captura. Utilice los siguientes parámetros simplificados del circuito. Considere FF idénticos y peor caso desde el punto de vista del diseñador. 8. Suponga que en el problema anterior el retardo de BUFD vale exactamente 4 (máx=mín=4). Calcule el periodo mínimo de reloj para el cual funciona el circuito, considerando el peor caso de combinación de retardos. Elemento Retardo mínimo [ns] Retardo máximo [ns] FFs 2 6 Pista (y Nodo) A 1 3 Pista B 1 1,5 Pista C 0 0,5 BUFF 0,2 0,4 IPAD 0 0 OPAD 0 0 Setup 4 Hold 5 A BBUF BUF IPAD IPAD OPAD 9. El circuito de la figura tiene la siguiente variación en sus parámetros temporales después de su fabricación. No existe correlación alguna entre ellos; es decir, un parámetro puede ser máximo y otro mínimo. Indicar: a) Puede haber doble captura? b) Que valor debe tener un buffer en B para que nunca ocurra doble captura. c) Indicar la frecuencia máxima de operación para la combinación menos favorable de retardos (peor caso; es decir pesimista) con el buffer de b) d) la frecuencia máxima de operación para la combinación más favorable de retardos (es decir, caso optimista - e improbable - donde los parámetros tienen una combinación de valores que justo maximiza la frecuencia máxima). Siga considerando el buffer en B. Tipo Valor Mín [ns] Valor Máx [ns] A Retardo de Pista 0 0 B Retardo de Pista 1 2 C Retardo de Pista 0 0 D Retardo de Pista de Reloj 1,1 1,2 E Retardo de Pista de Reloj 1,3 1,4 F Retardo de Pista de Reloj 1,5 1,6 G Retardo de Pista de Reloj 1,7 1,8 H Retardo de Propagación 0,5 0,6 V Retardo de Propagación 1,9 2,0 W Retardo de Propagación 1,9 2,0 S1=S2 Setup 3 - H1=H2 Hold 0,3 - 10. A qué frecuencia máxima funcionará el circuito de la figura para el caso más desfavorable (conservador) de combinación de retardos? Y para el caso más favorable (optimista) de combinación de retardos? 11. En el sistema de la figura, los números entre corchetes indican los retardos mínimos y máximos de cada elemento. Por ejemplo, los FF pueden tener entre 1 y 3 (ns por ejemplo) de retardo de propagación. Se pide: a) Indicar la frecuencia máxima del sistema, para la peor combinación de retardos, para un valor s=3 de setup del FF. b) Indicar, de acuerdo con los valores de la figura, para que sub-rango de retardo del bloque llamado “circuito combinacional”, el sistema no funcionará o tendrá problemas de Hold, si éste vale H = 0,5. Considere en este inciso el peor caso para el problema de Hold; es decir: Retardo FFs = 1; Retardo reloj al primer FF = 1; Retardo reloj al 2do FF = 5. 12. Qué significan en la tabla de abajo los retardos TCKO, TDYCK, TDXCK y TILO. __MACOSX/DIE/Teoría/._5. Fallos Sincronizacion.pdf DIE/Problemas/.DS_Store __MACOSX/DIE/Problemas/._.DS_Store DIE/Problemas/2020 TEMA 2 PARCIAL 1 - hojas min.pdf DIE Parcial 1 – Diciembre 2020 (4 puntos) Apellido y nombres (en ese orden): Últimos 3 dígitos DNI + letra: e-mail: DIE/EPS/UAM (© eduardo.boemo@uam.es) P1 ( 1,4 p) P2 ( 1 punto) P3 (0,8 puntos) P4 (0,8 puntos) 0,4 0,4 0,4 0,2 NOTA: Para que el ejercicio puntúe, adjunte todos los cálculos auxiliares que le han llevado a la solución. No entregue hojas extras. Problema 1: El circuito de la figura muestra un trozo crítico de un diseño mapeado en una FPGA. Los retardos de las LUTs valen 50 ps mientras que los FFs tienen: 260 ps de retardo de propagación, 10 ps de setup y 12 ps de hold. El circuito es manejado por un árbol de reloj que tiene un skew máximo de 315 ps. Se pide calcular: a) Qué mínimo retardo Δ2 adicional debe agregarse a la pista de retardo original W1+W2 que va de la Q del FF3 a la D del FF5, de manera de asegurar que el circuito soporte el skew especificado considerando el peor caso (pesimista). Considere que cada pista tiene el retardo (en ps) que se indica en la Tabla 1. b) Presupueste el máximo valor que puede tener la pista Δ1 para que el período mínimo de operación alcance 1220 ps para el peor caso de skew (pesimista). Considere que cada pista tiene el retardo (en ps) que se indica en la Tabla 1. Considere Δ2= 55 ps. c) Cuánto vale el periodo mínimo considerando el peor caso de skew (pesimista), si los retardos de las pistas son ahora los que se indican en la Tabla 2 W1 W2 W3 W4 W5 Δ1 Δ2 200 25 100 200 13 300 55 Tabla 2 d) Repita el punto b utilizando nuevamente la Tabla 1, pero siendo ahora optimista. Es decir, considerando que el skew le favorece. W1 W2 W3 W4 W5 10 15 40 5 8 Tabla 1 mailto:eduardo.boemo@uam.es Problema 2: El trozo de árbol de reloj de la figura maneja 11 FFs. Todos los FFs están inicialmente “seteados”; es decir con sus salidas Q a “1” lógico. En t=0 ns la entrada D1 pasa de 1 a 0 y en t=400 ps la señal CLK pasa de 0 a 1. Tomando como origen t=0, calcule en que instante pasa la salida Z de 1 a 0. Observe que Q1 tiene una carga C = 0,005 pF y considere despreciable la capacidad de pista. Use la tabla de retardos adjunta. Problema 3: Usando una combinación de inversores y llaves CMOS construya un MUX 2-1. Dicho multiplexor tiene una entrada de control Z, 2 entradas de datos B e A, y una salida S. Cuando Z=0, ocurre A → S y cuando Z=1, ocurre B → S. Realice un dibujo preciso y cuidadoso del circuito a nivel transistor, indicando donde van A, B, S y Z. INV Llave CMOS Problema 4: Diseñe y dibuje cuidadosamente un árbol de reloj que maneje exactamente 107 FD utilizando como el componente INV como buffer de reloj. Su objetivo principal es minimizar el skew y el secundario reducir área. Es decir, una vez que consiga minimizar el skew (que no será exactamente cero pues 107 es un número primo), debe minimizar la cantidad de INV utilizados. Use las células del problema 2. Considere nula las capacidades de pista. Los FDs deben disparar cuando a la entrada de reloj haya un flanco de subida. __MACOSX/DIE/Problemas/._2020 TEMA 2 PARCIAL 1 - hojas min.pdf DIE/Problemas/2021_DIE_DEySE_Celulas_CMOS.pdf DIE/DEySE - Escuela Politécnica Superior - Universidad Autónoma de Madrid Puertas Básicas CMOS eduardo.boemo@uam.es Los ejercicios indicados pueden verificarse con la app CMOS del DSLab UAM. Disponible en: https://play.google.com/store/apps/details?id=com.MOSCircuits 1. Utilizando la tabla de la figura (donde Pi significa transistor P izquierdo, etc.) indique el estado de cada transistor (conducción-corte, etc.) y deduzca el nivel lógico de la salida O. ¿A qué puerta corresponde? 2. Repita el ejercicio anterior para los circuitos de la figura. 3. Indique a que puerta lógica corresponde cada una de las siguientes células estándares de ATMEL. ¿Qué función lógica realizan el par de transistores P22 y N20. P P NN GND Vdd I1 O I2 I2 I1 0 0 0 1 1 0 1 1 Pi Pd Ni Nd O Ga4.cdr P P NN GND Vdd I O P P NN GND Vdd I1 O I2 4. En los circuitos de la figura se muestran los esquemas internos de dos puertas lógicas en tecnología CMOS. Se pide: a. Deduzca la función lógica correspondiente a cada una. b. Redibuje cada célula para que realice la misma función, pero con 3 entradas. 5. Deduzca la función lógica que realiza la siguiente célula. Rediseñarla a nivel de transistores a partir de puertas AND, OR e INV 6. La siguiente figura muestra 2 buffers. Indique la función lógica que realizan y deduzca la razón por la cual se duplican los transistores de salida del segundo buffer. 7. En la siguiente figura se muestra un buffer con control de tercer estado (tri-state). Explique su funcionamiento. 8. Hallar la función lógica de la siguiente standard-cell. Se sugiere separar el circuito en bloques. 9. Complete la tabla de verdad correspondiente a la siguiente célula estándar: C B A Z 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 10. Hallar la función lógica de la siguiente célula estándar. Rediseñarla a nivel de transistores a partir de puertas AND, OR e INV 11. Diseñe una puerta NAND y NOR de 3 entradas. 12. Completar la tabla de verdad del siguiente circuito. Indicar a que conocido bloque combinacional corresponde. C B A Z 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 13. Conectando los cables necesarios mapear en cada array de transistores las siguientes funciones lógicas donde / significa negación. a. F = /(ABC+D) b. F = /[(A+B)(C+D) c. F = /(AB+CD) d. F = /[(A+B+C).D] 14. Analice la siguiente célula Standard Cell. Indique su función lógica, para que puede servir y su driving. 15. Completar la tabla de verdad del siguiente circuito hallando las salidas K y Z en función de C, B, y A. Verificar que se trata de un full-adder donde K es el carry out y Z es el bit de suma. __MACOSX/DIE/Problemas/._2021_DIE_DEySE_Celulas_CMOS.pdf DIE/Problemas/Pipeline (Problemas).pdf Dispositivos Integrados Especializados (Telecom) - Desarrollo de Procesadores y Sistemas Específicos (Informática) Escuela Politécnica Superior, Universidad Autónoma de Madrid. Tema: Pipelining Objetivos: Comprensión de principios básicos de diseño digital de alta velocidad Bibliografía: E. Boemo, "Pipelining on FPGAs: A Tutorial," 2019 X Southern Conference on Programmable Logic (SPL), 2019, pp. 53-60, https://ieeexplore.ieee.org/document/8714285 1. Explique la diferencia entre paralelismo espacial y pipeline (paralelismo temporal). 2. Durante la concepción de un ASIC ó FPGA se puede optar por aumentar la velocidad en diferentes niveles de la jerarquía de diseño: topológico, arquitectural, tecnológico y layout o diseño físico. Explique cada uno de ellos. 3. Defina los siguientes términos relacionados con pipelining: Throughput, Aceleración (speedup), Latencia, Profundidad de lógica, Granularidad (β), y Penalización en área. 4. 5. Un FA (full-adder) se mapea con: a) con LUTs Xynq, b) con puertas lógicas, y c) con transistores MOS. Hallar la profundidad de lógica para caso. 6. En la figura se muestra un RCA (ripple-carry adder o sumador de acarreo serie) de 8 bits. Considere que el retardo de cada FA (full-adder) es 65 ps y que los retardos asociados a los FF son 260 ps – 40 ps – 140 ps (propagación-setup-hold). Los valores anteriores corresponden aproximadamente a la Zynq usada en 2020 en DIE. Considere que el módulo del skew es 100 ps. Por simplicidad omita en sus cálculos el retardo de las pistas. Se pide calcular throughput, latencia, speedup y nº de FF para las siguientes versiones pipeline: a) 1 etapa (combinacional con E/S registrada en líneas 1 y 9). b) 2 etapas (registros en líneas 1-5-9). c) 4 etapas (registros en líneas 1-3-5-7-9). d) 8 etapas (registros en todas las líneas). 7. Deduzca la expresión general que predice la cantidad de FF de un circuito RCA que opera con números de n bits “pipelinizado” para máxima velocidad, en función de n. 8. Segmentar el circuito “3D” de la derecha en dos versiones diferentes: β=1 y β=2. Redibujarlo para evidenciar la dependencia entre PEs. 9. Verificar el pipeline de la figura. 10. El retardo de los PEs (procesadores elementales) de cada uno de los siguientes arrays vale 50 ns. Considerando despreciable el retardo de pistas y registros, calcule la latencia y el número final de registros de cada circuito, cuando se segmenta de la manera más eficiente (es decir, con el menor costo en área) para obtener: a) Un ancho de banda de 20 MHz y b) Un ancho de banda de 10 MHz. 11. En el circuito de la figura, el retardo de cada PE vale 500 ps mientras que el número junto a cada pista indica su retardo en ps. Considere que el retardo de propagación de los registros vale 260 ps ns, el setup 40 ns y el hold 140 ps. Calcule la latencia y la máxima frecuencia de operación de cada una de las posibles segmentaciones balanceadas del circuito (Tres casos que corresponden a líneas de FFs en: a-b-c-d-e, a-c-e y a-e). ¿Cuál es la máxima aceleración respecto al circuito combinacional con E/S registrada? ¿Se cumple el mito de que una segmentación en N etapas aumenta la velocidad N veces? 4 6 1130 1 17 14 2 10 0 0 7 5 7 5 3 2 a b c d e 12. Repita el problema anterior considerando que todas las pistas están “ecualizadas”; es decir, tienen un retardo idéntico. Suponga que tal retardo vale 4 ps, un número cercano al promedio de los valores de las pistas del circuito. 13. En el circuito de la figura, los bloques 1, 2, y 4 tienen un retardo de 300 ms; el bloque 5 un retardo de 100 ms; y los bloques 3, 6 y 7 un retardo de 400 ms. Suponga que se pueden despreciar los retardos asociados a los FF y las pistas. Se pide: a) Transformar el circuito en un pipeline de máxima velocidad. Realice el dibujo de este e indique Número Total de FF y Periodo Mínimo al cual puede operar. El pipeline debe tener al menos la entrada/salida registrada. b) Transformar el circuito en un pipeline que pueda operar a 800 ms de período y tenga la mínima cantidad de FF. Haga un dibujo de este e indique el número de FF resultantes. El pipeline debe tener al menos la entrada/salida registrada. 14. Un circuito digital está formado por 10 bloques cuyo retardo, en ns, se indica en la tabla adjunta. Diseñar un pipeline insertando FF en la entrada/salida (líneas 1 y 5) y en cada una de las salidas intermedias (líneas 2, 3 y 4). Los parámetros temporales de los FF y del árbol de reloj son despreciables en relación con los retardos de los bloques. Realizar 3 versiones del pipeline de modo que pueda operar con: a) Tmín = 2100 ns, b) Tmín = 3700 ns, c) Tmín = 4300 ns 15. Cada bloque del circuito de la figura tiene un retardo de 2,5 ns. Segmentarlo utilizando la mínima cantidad de FF de modo que el circuito final puede producir un dato de salida cada: a) 3 ns, b) 6 ns, c) 9 ns y d) 12 ns. Considere retardo FF es 0,260 ns y el setup 0,01 n y despreciable tanto el skew como el retardo de las pistas. __MACOSX/DIE/Problemas/._Pipeline (Problemas).pdf DIE/Problemas/2020 TEMA 1 PARCIAL 1 - hojas min.pdf DIE Parcial 1 – Diciembre 2020 (4 puntos) Apellido y nombres (en ese orden): Últimos 3 dígitos DNI + letra: e-mail: DIE/EPS/UAM (© eduardo.boemo@uam.es) P1 ( 1,4 p) P2 ( 1 punto) P3 (0,8 puntos) P4 (0,8 puntos) 0,4 0,4 0,4 0,2 NOTA: Para que el ejercicio puntúe, adjunte todos los cálculos auxiliares que le han llevado a la solución. No entregue hojas extras. Problema 1: El circuito de la figura muestra un trozo crítico de un diseño mapeado en una FPGA. Los retardos de las LUTs valen 50 ps mientras que los FFs tienen: 260 ps de retardo de propagación, 10 ps de setup y 12 ps de hold. El circuito es manejado por un árbol de reloj que tiene un skew máximo de 295 ps. Se pide calcular: a) Qué mínimo retardo Δ2 adicional debe agregarse a la pista de retardo original W4+W5 que va de la Q del FF3 a la D del FF5, de manera de asegurar que el circuito soporte el skew especificado considerando el peor caso (pesimista). Considere que cada pista tiene el retardo (en ps) que se indica en la Tabla 1. b) Cuánto debe valer como máximo el retardo Δ1 para que el período mínimo de operación alcance 820 ps para el peor caso de skew (pesimista). Considere que cada pista tiene el retardo (en ps) que se indica en la Tabla 1. c) Cuánto vale el periodo mínimo considerando el peor caso de skew (pesimista), si los retardos de las pistas son ahora los que se indican en la Tabla 2 W1 W2 W3 W4 W5 Δ1 Δ2 20 25 90 5 8 0 80 Tabla 2 d) Repita el punto b utilizando nuevamente la Tabla 1, pero siendo ahora optimista. Es decir, considerando que el skew le favorece. W1 W2 W3 W4 W5 30 20 40 5 8 Tabla 1 mailto:eduardo.boemo@uam.es Problema 2: El trozo de árbol de reloj de la figura maneja 9 FFs. Todos están inicializados con sus salidas Q a cero. En t=0 ns la entrada D1 pasa de 0 a 1 y en t=500 ps la señal CLK pasa de 0 a 1. Tomando como origen t=0, calcule en que instante pasa la salida Z de 0 a 1. Observe que Q1 tiene una carga C = 0,003 pF y considere despreciable la capacidad de pista. Use la tabla de retardos adjunta. Problema 3: Usando una combinación de inversores y llaves CMOS construya un MUX 2-1. Dicho multiplexor tiene 2 entradas de datos X e Y, una entrada de control S y una salida C. Cuando S=0, ocurre X → C y cuando S=1, ocurre Y → C. Realice un dibujo preciso y cuidadoso del circuito a nivel transistor, indicando donde van X, Y, C y S. INV Llave CMOS Problema 4: Diseñe y dibuje cuidadosamente un árbol de reloj que maneje exactamente 137 FD utilizando como el componente INV como buffer de reloj. El objetivo principal debe ser minimizar el skew y el secundario reducir área. Es decir, una vez que Ud. consiga minimizar el skew (que no será exactamente cero pues 137 es un número primo), debe minimizar la cantidad de INV utilizados. Use las células del problema anterior. Considere nula las capacidades de pista. Los FDs deben disparar cuando en la pata de entrada de reloj hay un flanco de subida. __MACOSX/DIE/Problemas/._2020 TEMA 1 PARCIAL 1 - hojas min.pdf __MACOSX/DIE/Problemas/._Problemas_DIE_retardos DIE/Problemas/Problemas_DIE_retardos/2021 - 8 DIE Timing 2 - Retardos SC.pdf Dispositivos Integrados Especializados (Telecom) Desarrollo de Procesadores y Sistemas Específicos (Informática y Inf. Matemática) Escuela Politécnica Superior, Universidad Autónoma de Madrid Tema: Retardos en Circuitos Integrados: Análisis de casos utilizando Standard Cells Objetivos: Comprensión de un manual técnico de FPGAs Bibliografía: Apuntes de clases. Hoja de datos Standard Cells Atmel © eduardo.boemo@uam.es Problemas recomendados Observación: En todos los problemas en que no se indique el driving de la célula, elija la de menor valor. También deben usarse sólo 3 decimales para los cálculos y resultados. 1. Porqué el retardo de una célula se especifica con dos partes, una expresada en ns y otra en ns/pF 2. Calcule el retardo máximo de la XOR de menor fanout. Considere todos los casos y que es cargada con 0,003 pF. 3. Una AND debe manejar una carga de 0,300 pF. El/la diseñador/a se plantea utilizar una and02d0 o una and02d4? Se pide hallar cuanto más rápida es una puerta que otra, para el peor caso. Exprese el resultado como un factor (por ejemplo, es 1,3 veces más rápida). 4. Un diseñador/a inexperto/a quiere retrasar una señal lo más cercano a 2 ns (por encima de este valor) pasándola por inversores. ¿Cuántos inversores necesita si el último soporta una carga igual al fanin de un inv? 5. ¿Qué es un glitch? Calcular el ancho del glitch a la salida del circuito de la derecha, si la cantidad de inversores es igual a 180. Utilice los datos correspondientes a las células de menor fanout. 6. Calcular el retardo máximo entre X y Z. Considere que las entradas A1 y A2 que están “al aire” en el dibujo se conectan a “ 1” y que la salida Z soporta una carga de 0,008 pF 7. Calcular el retardo máximo del circuito de la figura considerando que la salida de la última puerta maneja una carga de 0,005 pF. Considere despreciable las capacidades de pista. Considere que la entrada a1 de la AND superior siempre está a 1. a1 a1 a2 a2 c arga de 0,005 pf 0,003 pF mailto:eduardo.boemo@uam.es 8. En t=0 una señal pasa de 0 a 1 en una AND conectada a un INV. Dibuje la forma de onda a la salida de la AND, indicando el valor numérico con 3 decimales (y redondeo) de los instantes en que cambia dicha salida. Nota: Utilices las células de menor fanout. 9. Una técnica para aumentar la velocidad de un circuito consiste en duplicar una función lógica (en este caso una AND) y disminuir su carga a la mitad. Por ejemplo, el circuito de la gráfica izquierda tiene 128 ANDs conectadas a una AND, mientras que
Compartir