|
发表于 2011-7-7 16:04:13
|
显示全部楼层
回复【2楼】guan
哪个最好帖个示例上来看下
-----------------------------------------------------------------------
/* @brief Top module of power controller
* @input
* @output
* @remark
*/
module power_controller(
//Clock and reset
clk_100,
clk_200,
rst_n,
//ADC 0
adc0_cs_n,
adc0_clk,
adc0_din,
mux0_addr,
mux0_en,
//ADC 1
adc1_cs_n,
adc1_clk,
adc1_din,
mux1_addr,
mux1_en,
//DAC 0
dac0_cs_n,
dac0_clk,
dac0_dout,
//DAC 1
dac1_cs_n,
dac1_clk,
dac1_dout,
//PWM
pwm0_out,
pwm0_out_n,
pwm1_out,
pwm1_out_n,
//Line syn.
line_det_p,
line_det_n,
pls_pos,
pls_neg,
pls_en_n,
//Relay control
relay0_on,
relay1_on,
//Analon BUS
address,
chipselect_n,
readdata,
read_n,
writedata,
write_n,
irq
);
/*******************************************************************************
* PARAMETER declarations
*******************************************************************************
*/
/* PORT declarations
*/
//Clock and reset
input clk_100;
input clk_200;
input rst_n;
//ADC 0
output adc0_cs_n;
output adc0_clk;
input adc0_din;
output [ 1: 0] mux0_addr;
output mux0_en;
//ADC 1
output adc1_cs_n;
output adc1_clk;
input adc1_din;
output [ 1: 0] mux1_addr;
output mux1_en;
//DAC 0
output dac0_cs_n;
output dac0_clk;
output dac0_dout;
//DAC 1
output dac1_cs_n;
output dac1_clk;
output dac1_dout;
//PWM
output pwm0_out;
output pwm0_out_n;
output pwm1_out;
output pwm1_out_n;
//Line syn.
input line_det_p;
input line_det_n;
output pls_pos;
output pls_neg;
output pls_en_n;
//Relay control
output relay0_on;
output relay1_on;
//Analon BUS
input [ 6: 0] address;
input chipselect_n;
output [31: 0] readdata;
input read_n;
input [31: 0] writedata;
input write_n;
output irq;
/******************************************************************************/
/* Parameters
*/
/* REG/WIRE declarations
*/
//Analon BUS
reg dac_write;
reg [33: 0] dac_reg;
reg write;
//Enable signals
wire boost_enable;
wire buck_enable;
//ADC trigger signals
wire adc0_trig;
wire adc1_trig;
//PWM duty
wire [11: 0] pwm_duty0;
wire duty0_enable;
wire [11: 0] pwm_duty1;
wire duty1_enable;
//ADC output data
wire [11: 0] adc0_IL;
wire adc0_IL_en;
wire [11: 0] adc0_VBUS;
wire adc0_VBUS_en;
wire [11: 0] adc1_IL;
wire adc1_IL_en;
//Boost current reference
wire [11: 0] Iref0;
wire Iref0_en;
//Buck current reference
wire [11: 0] Iref1;
wire Iref1_en;
//Phase
wire [ 9: 0] ins_phase;
wire phase_en;
/* MODULE Connections
*/
pwm mPWM_0(
//Clock and reset
.clk_200(clk_200),
.clk_100(clk_100),
.rst_n(rst_n),
//PWM interface
.pwm0_out(pwm0_out),
.pwm0_out_n(pwm0_out_n),
.pwm1_out(pwm1_out),
.pwm1_out_n(pwm1_out_n),
//ADC trigger signal
.adc0_trig(adc0_trig),
.adc1_trig(adc1_trig),
//Enable signals
.enable0_in(boost_enable),
.enable1_in(buck_enable),
//Data input interface
.duty0_input(pwm_duty0),
.duty0_enable(duty0_enable),
.duty1_input(pwm_duty1),
.duty1_enable(duty1_enable),
//Analon BUS
.address(),
.chipselect_n(1),
.readdata(),
.read_n(1),
.writedata(),
.write_n(1),
.irq(irq)
);
adc mADC_0(
//Clock and reset
.clk_100(clk_100),
.rst_n(rst_n),
//ADC interface
.adc_cs_n(adc0_cs_n),
.adc_clk(adc0_clk),
.adc_din(adc0_din),
.mux_addr(mux0_addr),
.mux_en(mux0_en),
//Trigger signal
.adc_trig(adc0_trig),
//Data output interface
.Data0_out(adc0_IL),
.Data0_enable(adc0_IL_en),
.Data1_out(adc0_VBUS),
.Data1_enable(adc0_VBUS_en),
//Analon BUS
.address(),
.chipselect_n(1),
.readdata(),
.read_n(1),
.writedata(),
.write_n(1)
);
adc mADC_1(
//Clock and reset
.clk_100(clk_100),
.rst_n(rst_n),
//ADC interface
.adc_cs_n(adc1_cs_n),
.adc_clk(adc1_clk),
.adc_din(adc1_din),
.mux_addr(mux1_addr),
.mux_en(mux1_en),
//Trigger signal
.adc_trig(adc1_trig),
//Data output interface
.Data0_out(adc1_IL),
.Data0_enable(adc1_IL_en),
.Data1_out(),
.Data1_enable(),
//Analon BUS
.address(),
.chipselect_n(1),
.readdata(),
.read_n(1),
.writedata(),
.write_n(1)
);
dac mDAC_0(
//Clock and reset
.clk_100(clk_100),
.rst_n(rst_n),
//DAC interface
.dac_cs_n(dac0_cs_n),
.dac_clk(dac0_clk),
.dac_dout(dac0_dout),
//Analon BUS
.address(),
.chipselect_n(1),
.readdata(),
.read_n(1),
.writedata(),
.write_n(1)
);
dac mDAC_1(
//Clock and reset
.clk_100(clk_100),
.rst_n(rst_n),
//DAC interface
.dac_cs_n(dac1_cs_n),
.dac_clk(dac1_clk),
.dac_dout(dac1_dout),
//Analon BUS
.address(),
.chipselect_n(1),
.readdata(),
.read_n(1),
.writedata(),
.write_n(1)
);
IIR_compI mBoost_IL_IIR(
//Clock and reset
.clk_100(clk_100),
.rst_n(rst_n),
//Data input interface
.fb_input(adc0_IL),
.fb_enable(adc0_IL_en),
.ref_input(Iref0),
.ref_enable(Iref0_en),
//Enable signal
.enable_in(boost_enable),
//Data output interface
.y_output(pwm_duty0),
.y_enable(duty0_enable),
//Analon BUS
.address(),
.chipselect_n(1),
.readdata(),
.read_n(1),
.writedata(),
.write_n(1)
);
IIR_compI mBuck_IL_IIR(
// |
|