OpenCores
URL https://opencores.org/ocsvn/sciir/sciir/trunk

Subversion Repositories sciir

[/] [sciir/] [trunk/] [SystemC/] [dfii/] [IIR_DFII.cpp] - Rev 4

Compare with Previous | Blame | View Log

#include "systemc.h"
#include "IIR_DFII.h"
#include "Stimuli.h"
 
int sc_main(int argc, char* argv[])
{
	sc_clock 			CLOCK("CLOCK", 1, SC_US);
	sc_signal<bool> 	RST;
	sc_signal<float > 	iIIR;
	sc_signal<float > 	oIIR;
 
	/*float b[orderFF] = {0.0995,0.1486,0.1481,0.0999};
	float a[orderFF] = {0.0,0.9828,-0.5450,0.0671};*/
	float b[orderFF] = {0.0565,0.0967,0.1184,0.0970,0.0564};
	float a[orderFF] = {0.0,1.3320,-1.0422,0.3544,-0.0700};	
	const int Size = 16;
 
	IIR_DFII<float > DUT("DUT", b, a);
	DUT.CLR(RST);
	DUT.CLK(CLOCK);
	DUT.iIIR(iIIR);
	DUT.oIIR(oIIR);
 
	Stimuli<float > inputVector("Stimuli", Size);
    inputVector.clr(RST);
    inputVector.clk(CLOCK);
    inputVector.streamout(iIIR);
 
    cout << "FF Order \t" << orderFF << endl;
    cout << "FB Order \t" << orderFB << endl;
 
	sc_trace_file *fp;
	fp = sc_create_vcd_trace_file("wave");
	fp -> set_time_unit(100, SC_PS);
 
	sc_trace(fp, RST, "RST");
	sc_trace(fp, CLOCK, "CLOCK");
	sc_trace(fp, iIIR, "IP");
	sc_trace(fp, oIIR, "OP");
 
	sc_trace(fp, DUT.oMultiplierFF[0], "oMU_FF(0)");
	sc_trace(fp, DUT.oMultiplierFF[1], "oMU_FF(1)");
	sc_trace(fp, DUT.oMultiplierFF[2], "oMU_FF(2)");
	sc_trace(fp, DUT.oMultiplierFF[3], "oMU_FF(3)");
 
	sc_trace(fp, DUT.oAdderFF[0], "oAD_FF(0)");
	sc_trace(fp, DUT.oAdderFF[1], "oAD_FF(1)");
	sc_trace(fp, DUT.oAdderFF[2], "oAD_FF(2)");
	sc_trace(fp, DUT.oAdderFF[3], "oAD_FF(3)");	
 
	sc_trace(fp, DUT.oDelay[0], "oDL_FF(0)");
	sc_trace(fp, DUT.oDelay[1], "oDL_FF(1)");
	sc_trace(fp, DUT.oDelay[2], "oDL_FF(2)");
	sc_trace(fp, DUT.oDelay[3], "oDL_FF(3)");		
 
	sc_trace(fp, DUT.oMultiplierFB[0], "oMU_FB(0)");
	sc_trace(fp, DUT.oMultiplierFB[1], "oMU_FB(1)");
	sc_trace(fp, DUT.oMultiplierFB[2], "oMU_FB(2)");
	sc_trace(fp, DUT.oMultiplierFB[3], "oMU_FB(3)");
 
	RST = true;
	sc_start(3, SC_US);
	RST = false;cout << " RESET " << endl;
	sc_start(16, SC_US);
 
	sc_close_vcd_trace_file(fp);
 
	return 0;
}
 
// g++ -I$SYSTEMC_HOME/include -L$SYSTEMC_HOME/lib-linux IIR_DFII.cpp -lsystemc -lm -o iir.o
// g++ -I$SYSTEMC_HOME/include -L$SYSTEMC_HOME/lib-linux IIR_DFII.cpp -lsystemc -lm -o sdm.o -DSC_INCLUDE_FX
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.