↳
The first interviewer: I wrote ahb and axi write protocol, but I forgot how hready worked for ahb protocol, so a little error in hready. For replacing VIPs, just count how many interfaces need to be replaced. The second interviewer: 1) reset the module -> read the register of the module (POR value) -> write the register of the module -> read the written register to make sure the register has been written -> reset the module -> read the register of the module to compare with the previous read POR value. 2) check the register to see if the interrupt bit is set or not -> if it is set, fail the test -> else enable the interrupt and generate interrupt to check if interrupt bit will be set The third interviewer: 1) refer to computer architecture 2) I used the code for spin lock which can reduce coherence issue 3) refer to computer architecture 4) there are 3 ways to realize fibonacci generator if you have learned algorithms: divide & conqueror, iterate and the simplest one. divide & conqueror and iterator will use O(N) memory space for stack or storing the data. The simplest way was: int fab(n) { int a = 1; int sum = 0; int a_tmp; for(int i=0; i $hash{$b}} keys %hash 3) $ENV{var} = "xxx" 4) the same as the previous one 5) 5-3 = 2; 5 - (3-2) = 4 6) cut the pie along the center of the big rectangle and the small rectangle, I got hint in this question For the systemverilog question: use constraint addr_con {addr[31:2] % 3 == 1; addr[1:0] == 0} for mem1. I used it before in Hisilicon, but as it's been years, so I forgot it. Less
↳
Another question is about the difference between i = i + 1 and i++. The interviewer told me that i = i + 1 would be translated to add and i++ would be translated to incr in assembly code. I tried for(int i=0; i<10; i++), for(int i=0; i<10; ++i) and for(int i=0; i<10; i=i+1) using ARM gcc compiler on Ubuntu, the de-assembly code was the same. It was add r2, r2, #1. And I didn't find opcode incr in ARM ISA. Less
↳
Answer to question: Generate address with the following constraint: 0x0 (mem1), 0x4(mem2), 0x8(mem3), 0xC(mem1), 0x10(mem2), 0x14(mem3) -mem1 --> ( 0, 12, 24, 36, 48...) => 4*( 0, 3, 6, 9, 12...) => constrain _mem1 { addr [31:2] % 3 == 0 ; addr[1:0] == 2'b0 } -mem2 --> ( 4, 16, 28, 40, 52...) => 4*( 1, 4, 7, 10, 13...) => constrain _mem1 { addr [31:2] % 3 == 1 ; addr[1:0] == 2'b0 } -mem3 --> ( 8, 20, 32, 44, 56...) => 4*( 2, 5, 8, 11, 14...) => constrain _mem1 { addr [31:2] % 3 == 2 ; addr[1:0] == 2'b0 } Less
↳
Use Flip Flops
↳
I also tell that but they discard
↳
ICMP is not a port, it’s an application
↳
Can you provide with more questions they asked you in the interview? Thanks
↳
I gave them some general figures, but it never should have come up
↳
they are asking because they have the lowest rates that you will ever heard off, I used to work there , Sentinel is recommended for beginners whom are trying to get in the system, they do have a high rates of lay offs. I was one of the employees whom got laid off Less
↳
Input voltage swing range is higher
↳
Were you hired in the Month of May after the hiring freeze started?
↳
Hashing is not reversible and does not use a key, although it may use a salt to mitigate risk from rainbow table attacks. Encryption is reversible and uses a key. Less
↳
I did not fully understand, so I tried my best to explain that I do understand what each are and where each are used. They later told me exactly what they were looking for and I later googled the question. Less
↳
No, I did not. Feel free to check your cameras.