MATLAB MATLAB MATLAB MATLAB MATLABModelsim MATLABChipscope 2 Wireless
汇报提纲 MATLAB的代码规范 MATLAB用于绘图 MATLAB用于通信系统仿真 MATLAB用于论文理论推导验证 MATLAB用于Modelsim代码测试 MATLAB用于Chipscope采集数据验证 2 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
MATLAB的代码规范-代码注释规范 5 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
MATLAB通信系统仿真 u预分配矩阵空间 即事先确定变量的大小,维数。这一类的函数有zeros, ones, cell, struct, repmat等。有助于提高程序运行速度。 例1: reg = ones(1, 23); y = zeros(1, 100000); for idx = 1: 100000 y(idx) = mod(reg(23)+reg(18), 2); reg = [y(idx) reg(1: 22)]; end 14 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
MATLAB通信系统仿真 例2: 优先使用matlab内建 函数,将耗时的循环 写进MEX-File中以获 得加速! 16 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
汇报提纲 MATLAB的代码规范 MATLAB用于绘图 MATLAB用于通信系统仿真 MATLAB用于论文理论推导验证 MATLAB用于Modelsim代码测试 MATLAB用于Chipscope采集数据验证 19 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
通信系统仿真 曲线图plot、 semilogy、subplot: 20 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
通信系统仿真 21 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
通信系统仿真 22 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
通信系统仿真 Latex用图 23 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
通信系统仿真 收敛图: 24 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
通信系统仿真 星座图: 25 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
通信系统仿真 眼图 26 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
通信系统仿真 三维曲面图: 凸优化中常用: mesh/surf等 27 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
通信系统仿真 柱状图bar 28 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
通信系统仿真 组合图 Hold on; Hold off; 离散状态图stem 29 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
通信系统仿真 频谱图: f. Step = 256/length(FDMA_signal); f. Range = -128: f. Step: 128 -f_step_MSE; plot(f. Range, fftshift(abs(fft(FDMA_signal)))); xlabel(‘k. Hz’); 30 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
通信系统仿真 频谱图: f. Step = 256/length(signal); f. Range = 0: f. Step: 256 -f. Step; semilogy(f. Range, abs(fft(signal))); xlabel(‘k. Hz’); f. Step = 256/length(signal); f. Range = 0: f. Step: 256 -f. Step; plot(f. Range, abs(fft(signal))); xlabel(‘k. Hz’); 31 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
通信系统仿真 频谱图: pwelch(FDMA_signal, [], [], 256 e 3, ‘centered'); pwelch(FDMA_signal, [], [], 256 e 3, 'twosided'); 32 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
汇报提纲 MATLAB的代码规范 MATLAB用于绘图 MATLAB用于通信系统仿真 MATLAB用于论文理论推导验证 MATLAB用于Modelsim代码测试 MATLAB用于Chipscope采集数据验证 33 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
通信系统仿真 简单的通信系统: 34 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
通信系统仿真 简单的通信系统: 35 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
通信系统仿真 现代通信系统的扩展(DTMB接收机): 37 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
通信系统仿真 现代通信系统的扩展(LTE接收机): 38 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
通信系统仿真 可以完成哪些仿真? 系统级:BER、PER、FER、SER 40 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
Propagation models (3 GPP TS 45. 005) n RAx (rural area) 1) A discrete number of taps, each determined by their time n HTx (hilly terrain) delay and their average power; 2) The Rayleigh distributed n Tux (urban area) amplitude of each tap, varying according to a doppler n EQx (equalization test) spectrum S(f) n TIx (very small cells) A 0 = 0. 17; 宽带无线传输研究中心 A 1 = 0. 83 A 1 = 0. 87 Wireless Broadband Transmission Research Center
M = 8; % Modulation order h. Modem = modem. pskmod(M); % 8 -PSK modulator object Rsym = 9600; % Input symbol rate Rbit = Rsym * log 2(M); % Input bit rate Nos = 4; % Oversampling factor ts = (1/Rbit) / Nos; % Input sample period v = 120 * 1 e 3/3600; % Mobile speed (m/s) fc = 1800 e 6; % Carrier frequency c = 3 e 8; % Speed of light in free space fd = v*fc/c; % Maximum Doppler shift of diffuse component k. Factor = 0. 87/0. 13; fd. LOS = 0. 7 * fd; RAx 4 Path. Delays = [0. 0 0. 2 0. 4 0. 6] * 1 e-6; RAx 4 Avg. Path. Gaind. B = [0 -2 -10 -20]; chan = ricianchan(ts, fd, k. Factor, RAx 4 Path. Delays, RAx 4 Avg. Path. Gaind. B, fd. LOS) 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
通信系统仿真 借助MATLAB提供的 具软件 FDATOOL 50 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
通信系统仿真 51 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
通信系统仿真 52 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
通信系统仿真 借助MATLAB提供的 具软件: SPTOOL 53 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
通信系统仿真 借助MATLAB提供的 具软件 BERTOOL qfunc 54 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
汇报提纲 MATLAB的代码规范 MATLAB用于绘图 MATLAB用于通信系统仿真 MATLAB用于论文理论推导验证 MATLAB用于Modelsim代码测试 MATLAB用于Chipscope采集数据验证 55 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
通信系统仿真 57 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
通信系统仿真 58 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
汇报提纲 MATLAB的代码规范 MATLAB用于绘图 MATLAB用于通信系统仿真 MATLAB用于论文理论推导验证 MATLAB用于Modelsim代码测试 MATLAB用于Chipscope采集数据验证 59 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
Modelsim中使用MATLAB 基础:MATLAB浮点程序的定点化 60 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
in. Data. Fix = floor(in. Data*2^8)/2^8; Modelsim中使用MATLAB 基础:MATLAB浮点程序的定点化 整数位>3, 小数位任意,决定了精度! 如BW = 12; %4. 8 61 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
Modelsim中使用MATLAB 1、提供Modelsim 测试数据源 2、比较 Modelsim仿真 结果和MATLAB 结果的 一致性 3、产生FPGA RAM/ROM等的预 存数据mif; 62 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
Modelsim中使用MATLAB 64 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
Modelsim中使用MATLAB 65 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
Modelsim中使用MATLAB 66 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
汇报提纲 MATLAB的代码规范 MATLAB用于绘图 MATLAB用于通信系统仿真 MATLAB用于论文理论推导验证 MATLAB用于Modelsim代码测试 MATLAB用于Chipscope采集数据验证 67 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
通信系统仿真 68 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
72 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
73 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
74 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
75 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
76 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
77 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
78 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
79 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
80 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
81 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
通信系统仿真 82 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
通信系统仿真 83 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
软件说明-HDLMATLABTESTBENCH FPGA MATLAB Chip. Scope MATLAB: 生成测试源文件: create_vhdl_sr_of_Sat. IOProc_with_random_ini. m compare_result_of_Sat. IOProc_enb. Missing. m Chipscope验证文件: TESTBENCH: testbench_dec. Info. Frm. Cnst_enb. Missing_proc. vhd VHDL: dec. Info. Frm. Cnst_enb. Missing_proc. vhd 综合结果: 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
信号处理时延说明 可以参见Modelsim 程 E: /Debug 091120/Modelsim_test测试分 析模块延时! 仿真顶层:testbench_Sat. IOProc. vhd,支持 1)模拟FPGA 4数据源 2)模拟FPGA 5启动时各种情况,通过设置不同的rst 宽带无线传输研究中心 Wireless Broadband Transmission Research Center
下载测试过程 (1)综合程序,生成的*. bit文件,然后点击i. MPACT,右键选择Open Without Updating; fkgong@xidian. edu. cn 87
下载测试过程 (4)点击OK; fkgong@xidian. edu. cn 90
下载测试过程 (5)点中芯片图标,右键选择Assign New Configuration File,为该芯片选择*. bit文 件; fkgong@xidian. edu. cn 91
下载测试过程 (9)下载成功之后,会出现“Program Succeeded”; fkgong@xidian. edu. cn 97
下载测试过程 fkgong@xidian. edu. cn 101
下载测试过程 fkgong@xidian. edu. cn 102
下载测试过程 fkgong@xidian. edu. cn 103
Answers – 布线后仿真-步骤 步骤 1:ISE综合 步骤 2:仿真模型产生参数设置 fkgong@xidian. edu. cn Xidian university 1/48
Answers – 布线后仿真-步骤 步骤 3:切换布线后仿真 步骤 4:双击运行 fkgong@xidian. edu. cn Xidian university 1/48
Answers – 布线后仿真-步骤 步骤 5:Model. Sim窗口弹出 fkgong@xidian. edu. cn Xidian university 1/48
Answers – 布线后仿真-可能存在的问题 问题描述(Modelsim弹出窗口提示) # ** Note: (vsim-3812) Design is being optimized. . . # ** Error: (vopt-2216) Failed to find instance 'UUT'. # ** Error: (vopt-1943) Command line SDF instance pathname "/UUT" cannot be resolved. # Optimization failed # Error loading design # Error: Error loading design # Pausing macro execution # MACRO. /HSSat_test_bench_frame. tdo PAUSED at line 8 回答: 功能仿真不会出现上述问题,后仿真时Testbench默认的例化名字为UUT,将testbench修改即可! fkgong@xidian. edu. cn Xidian university 1/48
Answers – Errors、warning fkgong@xidian. edu. cn Xidian university 1/48
Answers – Errors、warning fkgong@xidian. edu. cn Xidian university 1/48
Answers – Errors、warning 上述问题的解决途径: n修改模块代码:检查是否存在锁存问题,如本例中Rand模块; WAIT UNTIL (i_clk'EVENT AND i_clk = '1'); IF ( i_rst = '1') THEN tmp_reg <= "001001001"; -- initial phase of rand o_rand_data_p 1(0) <= '0'; o_data_ena_p 1 <= '0'; rand_count : = 0; ELSIF (i_data_ena='1') THEN tmp_reg(14) <= tmp_reg(1) XOR tmp_reg(0); tmp_reg(13 DOWNTO 0) <= tmp_reg(14 DOWNTO 1); o_rand_data_p 1(0) <= tmp_reg(1) XOR tmp_reg(0) XOR i_data_sou(0); -- output data after rand o_data_ena_p 1 <= '1'; -- output rand data ena IF (rand_count=1695) THEN -- 1696 bits interval rand_count : = 0; -- initial phase of regester every 1696 bits tmp_reg <= "001001001"; ELSE rand_count : = rand_count+1; END IF; ELSE o_data_ena_p 1 <= '0'; o_rand_data_p 1(0) <= ‘ 0’; -- this code is absent at first, thus cause “output red” END IF; fkgong@xidian. edu. cn Xidian university 1/48
Answers – 布线后仿真-可能存在的问题 问题描述 综合后时序错误 fkgong@xidian. edu. cn Xidian university 1/48
Answers – 波形比较 fkgong@xidian. edu. cn Xidian university 1/48
Answers – Errors、warning l 头标志信号延迟了一个时钟,原代码: PROCESS variable count : INTEGER RANGE 0 TO 423; BEGIN WAIT UNTIL (clk_sou'EVENT AND clk_sou = '1'); IF (rst_sou = '1') THEN tmp_reg <= "0000000000001"; o_sou <= '0'; o_sou_ena <= '0'; o_head_ena <= '0'; count : = 28; ELSE tmp_reg(24) <= tmp_reg(22) XOR tmp_reg(0); tmp_reg(23 DOWNTO 0) <= tmp_reg(24 DOWNTO 1); o_sou <= tmp_reg(0); o_sou_ena <= '1'; IF(count <= 39)THEN o_head_ena <= '1'; -- 40 bits per head count : = count + 1; ELSIF(cnt = 423)THEN o_head_ena <= '0'; count : = 0; ELSE o_head_ena <= '0'; count : = count + 1; END IF; END PROCESS; fkgong@xidian. edu. cn Xidian university 1/48
Answers – Errors、warning l 头标志信号延迟了一个时钟, 修改代码: PROCESS BEGIN WAIT UNTIL (clk_sou'EVENT AND clk_sou = '1'); IF (rst_sou = '1') THEN tmp_reg <= "0000000000001"; -- initial phase of LFSR o_sou <= '0'; o_sou_ena <= '0'; o_head_ena <= '0'; cnt <= 28; ELSE tmp_reg(24) <= tmp_reg(22) XOR tmp_reg(0); tmp_reg(23 DOWNTO 0) <= tmp_reg(24 DOWNTO 1); o_sou <= tmp_reg(0); o_sou_ena <= '1'; IF (cnt<423) THEN cnt <= cnt + 1; ELSE cnt <= 0; END IF; IF(cnt <= 39)THEN o_head_ena <= '1'; ELSE o_head_ena <= '0'; END IF; END PROCESS; fkgong@xidian. edu. cn Xidian university 1/48
Answers – Errors、warning l 出现”X” - 和RAM相关时,往往未真正开始运行时出现状态’X’, 可以通过选中 ”Fill…”消除 fkgong@xidian. edu. cn Xidian university 1/48
Answers – Errors、warning l 出现”X” – 部分,如本例的Rand,实际上,数据正常部分仍然正确 PROCESS VARIABLE xor. Tmp : STD_LOGIC; BEGIN WAIT UNTIL (i_clk'EVENT AND i_clk = '1'); IF ( i_rst = '1') THEN tmp_reg <= "001001001"; o_rand_data(0) <= '0'; o_data_ena <= '0'; rand_count : = 0; cnt <= (OTHERS=>'0'); ELSIF (i_data_ena='1') THEN xor. Tmp : = tmp_reg(1) XOR tmp_reg(0); tmp_reg(14) <= xor. Tmp; tmp_reg(13 DOWNTO 0) <= tmp_reg(14 DOWNTO 1); o_rand_data(0) <= xor. Tmp XOR i_data_sou(0); o_data_ena <= '1'; IF (cnt < "11010011111") THEN cnt <= cnt + "000001"; ELSE cnt <= (OTHERS=>'0'); tmp_reg <= "001001001"; END IF; ELSE o_data_ena <= '0'; o_rand_data(0) <= '0'; END IF; END PROCESS; fkgong@xidian. edu. cn 可见,代码非常简单,若修改为 o_rand_data(0) <= temp_reg(0) XOR i_data_sou(0); 可以消除”X” 实际上,仅开始一段为”X” Xidian university 1/48
Answers – Errors、warning l 出现”X” – 部分,如本例的Rand,实际上,数据正常部分仍然正确 仅开始一段为”X” fkgong@xidian. edu. cn Xidian university 1/48
Answers – Errors、warning l 出现”X” – 部分,如本例的Rand,实际上,数据正常部分仍然正确 仅开始一段为”X”, 经过MATLAB比较 fkgong@xidian. edu. cn Xidian university 1/48
Answers – Errors、warning 上述问题的解决途径: n该错误对数据传输有误影响?有 p加约束时,后仿真结果: fkgong@xidian. edu. cn Xidian university 1/48
Answers – Errors、warning l 出现”X” – 本身模块没有改变,原来正确,但改变与其毫不相关的其他代码后 fkgong@xidian. edu. cn Xidian university 1/48
- Slides: 127