ES entry test, September 2016, Page 1 of 5 DELFT UNIVERSITY OF TECHNOLOGY Faculty of Electrical Engineering, Mathematics, and Computer Science MSc. Embedded Systems Embedded Systems Entry Test 2016 This test is a self-assessment. It serves the purpose to find out how well you are prepared for the compulsory and some elective courses from your master program. It gives suggestions on how you can improve your knowledge and skills, so that you are well prepared for those courses. In some cases, courses are available for this, which are called homologation courses. Homologation courses are more bachelor level courses, and at most 10 EC on homologation courses may be used for your individual study program (IEP) of 120 EC. Also, a homologation course may only be used for your IEP if you didn t study similar contents before. But you are free to do (a part of) the course. 1
ES entry test, September 2016, Page 2 of 5 The following two questions test the prerequisites of ET4074 Modern Computer Architecture. 1. Translate the following C-function to MIPS assembly. If you don t know MIPS assembly, use your favourite assembly. If you don t know assembly, you are strongly advised to study the relevant parts of a computer architecture textbook, for example Chapter 2 and 3 of Computer Organization and Design by Patterson and Hennessy. You can also take the 3TU course 5LSI0 Embedded Programming in C. int maximum(int a[], int n) { int i; int max = 0; for (i=0; i<n; i++) if (a[i]>max) max = a[i]; } return max; 2. Describe in your own words what an (instruction) pipeline is. Give an example of an instruction pipeline. If you re not familiar with instruction pipelining, you are strongly advised to study the relevant parts of a computer architecture textbook, for example Chapter 4 of Computer Organization and Design by Patterson and Hennessy. The following three questions test the prerequisites of IN4387 System Validation 3. Given are the following two logics: propositional logic and predicate logic. Can you answer the following questions about these two logics? a. Which one of these logics is a sub-logic of the other one? b. Can you explain precisely(!) the difference in expressibility of these logics (what can be expressed in the logic and what can not)? 4. Write formulas (in the simplest one logic possible) for each of the following entities: a. A digital half adder circuit, b. A flip/flop (D-type or J/K-type or R/S-type at your choice), c. The statement: Nobody's grandmother is anybody's father. If you are unable to express any of these in one of the two logics, explain why! If you are unable to answer the above two questions you should consult a book on elementary logic, for example Logic in Computer Science (2nd Edition), M. Huth and M. Ryan, Cambridge University Press. You can also take the 3TU course 2IHT10 Logic and Set Theory, which has been created especially as a preparation for System Validation. 5. Please answer the following questions: a. Draw a mealy machine for a circuit which outputs the exclusive-or of the most two recent inputs (initially assumed to be 0). b. Draw a finite automata which accepts the language of the regular expression ab*. Is it your automata deterministic? If not, make it deterministic. c. Is it possible to define a finite automata which accepts the language a^nb^n, i.e., the language comprising strings with a number of a's followed by an equal number of b's. 2
ES entry test, September 2016, Page 3 of 5 If you are unable to answer these questions, please consult a book on Formal Languages and Automata, such as An Introduction to Formal Language and Automata, P. Linz, Jones & Bartlett, 2011. You can also take the 3TU course 2IHT10 Logic and Set Theory, which has been created especially as a preparation for System Validation. The following question assesses the prerequisites of IN4390 Quantitative Evaluation of Embedded Systems 6. Are you familiar with concepts like random variables, correlation, and a Poisson process? If you are unable to answer this question with yes, please consult a book on Probability and Statistics such as A Modern Introduction to Probability and Statistics, Dekking et al, Springer. You can also take the course TI2216M Probability and Statistics, or the course IN4309 Random Signal Processing. The last course also introduces signal processing. The following two questions assess the prerequisites of IN4343 Real-Time Systems 7. Describe, in your own words the concept of a semaphore, and explain which problems it solves. If you are not familiar with basic operating system concepts, you are strongly advised to study an operating systems book, or, alternatively, to follow one of the courses: TI2726-C Operating Systems or TI2726-B Embedded Software. 8. Write a function in C that adds up a list of integer values and returns their sum. The prototype of the function is int sum (int* ); The end of the list is indicated by reference to null. If you are not familiar with basic C programming, you are strongly advised to study a C programming book, or, alternatively, to follow the course TI2726-B Embedded Software or the 3TU course 5LSI0 Embedded Programming in C In addition to the compulsory course IN4343 Real-Time Systems, there are several elective courses, like IN4073 Embedded Real-Time Systems that require skills in the C programming language. The following questions test these skills as well. 9. How many (common) programming mistakes do you see in the following code snippet, and what will be their effects? #define N 13 void foo() { int i; int *buf; /* allocate a fresh buffer */ buf = (int *)malloc(n); /* initialize the buffer to zero */ for (i=1; i<=n; i++) buf[i] = 0; }... 3
ES entry test, September 2016, Page 4 of 5 10. Write a C macro toggle_bit(a,i) that inverts bit i at address a. Example use case: toggle(led,0); blinks a LED that is memory-mapped to address LED, bit 0. Note: you must implement the macro with ONE statement only. If you do not know C yet, study a C programming book like A Book on C by Kelly and Pohl, Addison Wesley, and practice by writing C programs, or take the course TI2726-B Embedded Software or the 3TU course 5LSI0 Embedded Programming in C The following three questions test your knowledge about digital systems 11. A Full Adder (FA) is a logic element which operates on two binary digits (a and b) and a carry digit from a preceding stage (cin), producing as output a sum digit (s) and a new carry digit (cout). a. Derive the FA truth table. b. Propose a NAND based implementation of it. c. Assuming that a library with NAND gates is available, provide a structural VHDL or Verilog description of the FA circuit implementation you proposed at point b). 12. Which are the main differences between sign-magnitude and 2's complement number representation? 13. How many address lines are required in order to address a 13 Mbyte memory? If you are not familiar with logic gates and Boolean algebra, you're strongly advised to study a logic design book, e.g. Fundamentals of Digital Logic With VHDL Design, 3rd edition, Stephen Brown en Zvonko Vranesic, McGraw-Hill Education Europe, or to take the course TI2726-A Digital Systems. If you do not "speak" a hardware description language like VHDL or Verilog, and you plan to do specialization courses on hardware (e.g. ET4170 Computer Arithmetic ), we strongly recommend to take the course ET4272 "System design with HDL languages". The following two questions test your knowledge about control theory. 14. 15. Please describe what is a PID controller. 4
ES entry test, September 2016, Page 5 of 5 If you are not familiar with control theory, you are advised to study a book like Feedback Systems: An Introduction for Scientists and Engineers, K.J. Astrom and R.M. Murray, Princeton University Press, or to take the course EE2S21 Control Systems. -- End of test -- 5