Dear All:
My name is Liming Xiu. I am a professional in the field of VLSI
circuit design. I am the inventor of an important frequency synthesis
architecture: Flying-Adder frequency synthesis architecture. You can
google seach this technology by using key word “Flying-Adder
frequency synthesis architecture” or “Flying-Adder frequency PLL”.
This invention is summarized in my newly published book:
“Nanometer Frequency Synthesis beyond the Phase Locked Loop”
http://www.wiley.com/WileyCDA/Section/id-WILEY2_SEARCH_RESULT.html?query=xiu
One of the key components in this technology is the Flying-Adder
circuit. Although this circuit was invented in later 1990 and has been
used in commercial products for over a decade and generates over one
billion dollar revenue, the circuit itself is not familiar to many
circuit designers. The key reason is that this circuit is very
complex, it is hard to be understood. Thus, I want to use VPython to
illustrate the working principle of this circuit so that designers can
see the working of this circuit visually.
I have decent programming experience in C and Perl, but not in Object
Oriented Program such as Python and VPython. In the past few months,
I have studied the Python and VPython by reading books and studying
examples. But when I start to model this Flying-Adder circuit, I am
feeling the pain now :-)
I wonder if anyone in this mail list could help me on this project?
This project is to model a real circuit that has been used in numerous
commercial VLSI chips. The details can be found in chapter four of
the above mentioned book.
This project is a 2D programming. Thus, it should be a simple case for
people who are familiar with VPython. If you are willing to help me, I
will not ask too much time from you. May be ~ 30 minutes every a few
days. The circuit will be explained step by step and the code will be
constructed step by step, accordingly.
Please send me email, lm...@gm..., if you are interested in helping me.
Thanks in advance
Liming Xiu
By the way, below is the code that is built by Bruce Sherwood for me
(thanks, Bruce). It is the very first part of this project.
------------------------------------------------------------------------------------
from __future__ import division
from visual import *
N = 8
# fov = field of view; small fov means camera far from scene
display(width=1200, height=640, range=8, fov=0.01,
title='Flying-Adder Syntheszier Input Signals',
background=color.gray(0.5) )
pulses = []
k = 5
T = 2*pi/k
dx = T/N
colors = [color.red, color.green, color.blue,
color.yellow, color.cyan, color.magenta,color.orange, color.white]
for i in range(N):
pulses.append(curve( x = arange(-10,10,0.01),radius=0.04,color=colors[i]))
# multiply by 0.99 to guard against possible ceil glitch; -0.25 to
center the pulse vertically
pulses[i].y = 0.5*ceil(0.99*sin( k*(pulses[i].x+i*dx)))+N/2-i*N/8-0.75
t = 0
dt = T/800
while True:
rate(200)
for p in pulses:
p.x += dt
t += dt
if t >= T:
t = 0
for p in pulses:
p.x -= T
|