-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathparallel_scope_init_xblock.m
More file actions
70 lines (55 loc) · 3.17 KB
/
parallel_scope_init_xblock.m
File metadata and controls
70 lines (55 loc) · 3.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% Center for Astronomy Signal Processing and Electronics Research %
% http://casper.berkeley.edu %
% Copyright (C) 2011 Hong Chen (based on CASPER library dsp_scope block)%
% %
% This program is free software; you can redistribute it and/or modify %
% it under the terms of the GNU General Public License as published by %
% the Free Software Foundation; either version 2 of the License, or %
% (at your option) any later version. %
% %
% This program is distributed in the hope that it will be useful, %
% but WITHOUT ANY WARRANTY; without even the implied warranty of %
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %
% GNU General Public License for more details. %
% %
% You should have received a copy of the GNU General Public License along %
% with this program; if not, write to the Free Software Foundation, Inc., %
% 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function parallel_scope_init_xblock( varargin)
defaults = {...
'n_inputs',8, ...
'sample_period',1};
n_inputs = get_var('n_inputs', 'defaults', defaults, varargin{:});
sample_period = get_var('sample_period', 'defaults', defaults, varargin{:});
inports = cell(1,n_inputs);
for i =1:n_inputs
inports{i} = xInport(['in',num2str(i)]);
end
outport = xOutport('out');
switcher_in = cell(1,n_inputs);
for i =1:n_inputs
switcher_in{i} = xSignal(['switcher_in',num2str(i)]);
end
sel_out = xSignal('sel_out');
sel = xBlock(struct('source','simulink/Sources/Counter Free-Running', 'name','sel'), ...
struct('NumBits', ceil( log2(n_inputs)), ...
'tsamp', sample_period/n_inputs), ...
{}, ...
{sel_out});
gateways = cell(1,n_inputs);
for i=1:n_inputs
gateways{i} = xBlock(struct('source','xbsTypes_r4/Gateway Out','name',['gateway_out',num2str(i)]), ...
struct('hdl_port','off'), ...
{inports{i}}, ...
{switcher_in{i}});
end
switcher = xBlock(struct('source', 'simulink/Signal Routing/Multiport Switch', 'name','switch'), ...
struct('Inputs', n_inputs, ...
'zeroidx', 'on'), ...
[{sel_out},switcher_in], ...
{outport});
end