Jess,
By bsource, I mean spectre's Behavioural source component, which was released (officially) in IC5033. It's there in some earlier subversions, but is hidden from spectre -h.
It can be used to model arbitrary expressions of voltage and current of other signals, so in this respect it is more flexible than a polynomial controlled source (which might be what you're referring to?).
See "spectre -h bsource" for more details.
In practice it uses Verilog-A internally, but uses the compiled Verilog-A mode which is coming fully in IC5141 (where Verilog-A compiles to a shared library). So the performance is pretty good! And for simple complex expressions (if you get my oxymoron) it's a handy way of implementing things without the need to go as far as using Verilog-A.
Here's some examples from the help:
Code: Voltage and Current (Sinewave) Source
vsrc (n1 n2) bsource v=10.0*sin(2*pi*freq*$time)
isrc (n1 n2) bsource i=1.0e-3*sin(2*pi*freq*$time)
Current controlled current source
vsrc (n1 n2) vsource v=10
cccs1 (n3 n4) bsource i=gain*i("vsrc:0")
Current controlled voltage source
vsrc (n1 n2) vsource v=10
ccvs1 (n3 n4) bsource v=100*i("vsrc:0")
Voltage controlled voltage source
vsrc (n1 n2) resistor r=100k
vcvs1 (n3 n4) bsource v=gain*v(n1,n2)
You can have the bsource represent resistors, capacitors, inductors as well.
Cheers,
Andrew.