示例#1
0
 from FFT.controller import controller as FFT_controller
 dut = FFT()
 dut2 = FFT()
 dut.model = 'py'
 dut2.model = 'sv'
 #dut2.interactive_verilog=True
 len = 16 * 64
 phres = 64
 fsig = 25e6
 indata=2**10*np.exp(1j*2*np.pi/phres*(np.arange(len)*np.round(fsig/dut.Rs*phres)))\
         .reshape(-1,64)
 controller = FFT_controller()
 controller.reset()
 dut.io_in.Data = indata
 dut2.io_in.Data = indata
 dut.control_write = controller.control_write
 dut2.control_write = controller.control_write
 dut.run()
 dut2.run()
 f0 = plt.figure(0)
 plt.plot(np.abs(dut._io_out.Data[10, :]))
 plt.suptitle("Python model")
 plt.xlabel("Freq")
 plt.ylabel("Abs(FFT)")
 plt.show(block=False)
 f0.savefig('fft_python.eps', format='eps', dpi=300)
 f1 = plt.figure(1)
 plt.plot(np.abs(dut2._io_out.Data[10, :]))
 plt.suptitle("Verilog model")
 plt.xlabel("Freq")
 plt.ylabel("Abs(FFT)")