Communication IC & Signal Processing Lab. Chih-Peng Fan1 PreSim CoreGenerator IP in ISE 5.1i with Verilog HDL
Communication IC & Signal Processing Lab. Chih-Peng Fan2 Step 1. Compile CoreGen libarary compxlib -s mti_pe -f all -l all -o c:\modeltech_5.6b\xilinx_libs
Chih-Peng Fan3 Step 2. Create CoreGen libarary Verilog lib
Communication IC & Signal Processing Lab. Chih-Peng Fan4 Step 3. Run Xilinx CORE Generator
Communication IC & Signal Processing Lab. Chih-Peng Fan5 Step 4. Choose Multiplier IP
Communication IC & Signal Processing Lab. Chih-Peng Fan6 Step 5. Create files from CORE Generator *.v is the key
Communication IC & Signal Processing Lab. Chih-Peng Fan7 Step 6. Prepare a top file for mult8x8.v (from CoreGen) module Top_mult8x8(a,b,o); input [7:0] a,b; output [15:0] o; // Begin Cut here for INSTANTIATION Template --- // INST_TAG mult8x8 ttt (.a(a),.b(b),.o(o)); // INST_TAG_END endmodule Top_mult8x8.v
Communication IC & Signal Processing Lab. Chih-Peng Fan8 Step 7. Prepare files for Pre-simulation
Communication IC & Signal Processing Lab. Chih-Peng Fan9 Step 8. Run ModelSim, then change the directory
Communication IC & Signal Processing Lab. Chih-Peng Fan10 Step 9. Create a New Library
Communication IC & Signal Processing Lab. Chih-Peng Fan11 Step 10. Create a New Project
Communication IC & Signal Processing Lab. Chih-Peng Fan12 Step 11. Add source *.v files in the Project
Communication IC & Signal Processing Lab. Chih-Peng Fan13 Step 12. Compile all *.v files
Communication IC & Signal Processing Lab. Chih-Peng Fan14 Step 13. Run Simulate …
Communication IC & Signal Processing Lab. Chih-Peng Fan15 Step 14. Add simulation library
Communication IC & Signal Processing Lab. Chih-Peng Fan16 Step 15. Load the simulation module
Communication IC & Signal Processing Lab. Chih-Peng Fan17 Step 16. Create a waveform window
Communication IC & Signal Processing Lab. Chih-Peng Fan18 Step 17. Generate the waveform
Communication IC & Signal Processing Lab. Chih-Peng Fan19 test_mult8x8.v `timescale 1ns / 100ps module stimulus; reg[7:0] A,B; wire[15:0] PRODUCT; reg CLK; reg Reset; reg [15:0] D_PRODUCT; reg [7:0] IN_A [3:0]; reg [7:0] IN_B [3:0]; reg [1:0] index; // Top_mult8x8 mult2 (A,B,PRODUCT); // always #10 CLK=~CLK; initial begin Reset=1'b0; CLK=1'b0; #25 Reset=1'b1; end ………… ………….