VLSI Mentoring Portal for the 2026 Silicon University Batch.
- LITERATURE
- Clifford Cummings, State Machine Coding Styles for Synthesis, SNUG, 1998 (PDF)
 - Clifford Cummings, Nonblocking Assignments in Verilog Synthesis, Coding Styles That Kill!, SNUG, 2000 (PDF)
 - Clifford Cummings, et.al., Asynchronous & Synchronous Reset Design Techniques - Part Deux, SNUG, 2003 (PDF)
 - Clifford Cummings Google Scholar A great resource of papers on practical digital design.
 
 - ONLINE
- Verilog Tutorials from ChipVerify: for begineers that take you from basic datatypes to building hardware circuits.
 
 
Sessions by Mr. Sujit Panda
- 
20 Mar 2025
- 
  Figure-1 Arbiter design problem.
- Design an arbiter that takes in multiple requests and services them one by one in the priority order 
$r1 > r2 > r3$  - Acknowledgement will be asserted for one cycle for a request. If the request remains high even after that, it will be considered a new request. If multiple requests are asserted at the same time, they will be services in order of priority.
 - Design a modification to the above problem for Round-Robin priority. At reset you start with the priority 
$r1 > r2 > r3$ , if you service say$r1$ then move it to the end ie.$r2 > r3 > r1$ and so on. - Alongwith the code, please upload a testplan too. It may be in the form of a table (xls is good) with the following columns.
- 
- Feature
 - Description
 - Testcase description
 
 
 - 
 - Lets say we identify 4 features to be tested...
 - 
- Reset
 - Single req asserted
 - Multiple req asserted
 - Consecutive requests on the same line
 
 - In the description column mention in your words waht it means and what are the sub-scenarios you want to test in that.
 - In the testcase description column mention the sequence of operation you would want to do in a testcase.
 - Doing this will help you understand the fallacies of your design and will help you think of all scenarios while designing itself.
 
 - Design an arbiter that takes in multiple requests and services them one by one in the priority order 
 - And all the three Cummings Papers are a must read.
 
 - 
 - 
27 Feb 2025
- 
  Figure-1 Positive-edge detector. - 
  Figure-2 Counter. - The first one is a positive edge detector and the second one is a counter.
 - For the first one, the reset (
rstn) is async, active low (the reset that i have drawn is wrong. It should be inverse of what is drawn). The input signalais synchronous to theclk. Wheneveragoes high, the output signalbshould go high for 1 clock cycle. When reset is asserted, outputbremains at 0. - For the second one, reset (
rstn) is async active low. The counter (cntr) remains at0while under reset. When out of reset, it counts only ifensignal is high, else it remains at 0. The counter upcounts if the signal up_down is high, else it downcounts. If theholdsignal is high, the counter pauses at whatever count it is. It continues counting whenholdis low. 
 - 
 - 
15 Feb 2025
- 
  Figure-1 Combinarotiral problem. - 
  Figure-2 Sequential problem. - Write one verilog module for each of these. Write a testbench for each. Drive some stimulus to check that it works as expected.
 - For the second one, the provided waveform is representative....to describe it, 
bandcare delayed versions ofa. Signalbis delayed by one cycle andcis delayed by 2 cycles with respect toa. The circuit works on the positive edge of the clock. Outputs go to0whenrstn=0. The reset (rstn) is an asynchronous,active lowone. NOTE The reset is inverted mistakenly! 
 - 
 - 
14 Feb 2025
- Please go through these concepts in Verilog. Whatever modules code, we will need these to design and test them (Tutorials from ChipVerify are a good resource):
- Ports (
input/output/inout) - Variables (
reg,wire) - 
alwaysblocks:- combinatorial, sequential
 - blcoking, non-blocking
 
 - 
assignstatements - 
initialblock - 
timescaleand delays - 
$display,$finish - Testbench:
- instatiation of design
 - clock generation
 - driving stimulus
 - sampling outputs and checking
 
 
 - Ports (
 
 - Please go through these concepts in Verilog. Whatever modules code, we will need these to design and test them (Tutorials from ChipVerify are a good resource):