• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC Design
  3. Problem Photodiode modelling in Verilog-A

Stats

  • Locked Locked
  • Replies 5
  • Subscribers 126
  • Views 15600
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Problem Photodiode modelling in Verilog-A

papy07
papy07 over 11 years ago

Hello everyone, 

 So basically I'm working on my final year project where I have to Design a Camera. The front end of the circuitry is a photodiode. Because the foundries don't provide models, I had to design my own in Verilog-A.

The model is based on the drift and diffusion currents, diode & dark current; and the depletion capacitance. The model may be crude but it will serve my purpose. I've attached my code to the post.

 I'm having two big issues and I can't get a hold off them. I'm just beginning in Verilog-A and I'd like to know if the problem comes from the code itself or my design.

 Basically after I reset the photodiode, the photogenerated current should drain the current from the capacitance and therefore discharge it (I'm operating in reverse bias mode). So the photogenerated current should be negative, which I do in the code (-Iaa). The problem is when I do that the photodiode does not discharge and stays at the reset voltage. I need to put a positive photogenerated current (+Iaa) to get the correct voltage output.

The second problem is even though it discharges, it never goes to 0 but to negative voltages. Which increases when I decrease the light power. 

I've attached the 2 simulations results : the good one is with the photogenerated current positive (+ Iaa), and the not ok one is the oposite. I also attached the schematic I'm using. The reset voltage is a pulse of 55ns of width at 50ns.

 Could you help me figure out where the problem comes from ?

 Thanks in advance. 

  • code.txt
  • View
  • Hide
  • Cancel
  • papy07
    papy07 over 11 years ago
    1. The good output link : http://imgur.com/aslj9U7
    2. The bad one : http://imgur.com/sHI58qw
    3. And the schematic : http://imgur.com/qvKuLCa
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 11 years ago

    Given the simplicity of the circuit, it's pretty likely to be in the VerilogA. You didn't share that, so it's hard to be sure...

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • papy07
    papy07 over 11 years ago

    Hi andrew.

     I did share the code it's code.txt attached to my first post. Tell me if you can't see it I'll upload it.

     I was able to narrow down the error though. It is in the calculation of the depletion capcitance.

    Normally I should have C_j=(epsilon_0*epsilon_r*Area)/Wd, Where Wd is the depletion width. I plotted the numerator and denominator by themselves and the calculations are ok, but when I do the fraction that where I get a wrong output. Basicaly when the capacitance should increases (W becomes smaller) it decreases on the simulations. Plus the result doesn't correspond to the desired value.

     I attached the simulation result.

    Also this is the code I use to calculate de capacitance :

     Cpd=(er*eo*xph*xph)/W;  Icpd=Cpd*ddt(V(b1));  

    • C.PNG
    • View
    • Hide
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 11 years ago

     Ah, I missed that. Sorry. Anyway, looking at it, it would have taken more time than I have available to debug given the complexity of the model.

    Glad you've found the problem - not sure if you've solved it. I have some issues with certain derived calculation, so if you're getting a division that's wrong, please first try a recent version of spectre (not sure what you're using), and then if that's not working perhaps you need to contact customer support?

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ahmdd
    ahmdd over 10 years ago

    Hello..

    Have you completed your photodiode model?

    if yes,can you share your code and design for me. I will be very thankful to you.

    thank you.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information