URL
https://opencores.org/ocsvn/an-fpga-implementation-of-low-latency-noc-based-mpsoc/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk
Subversion Repositories an-fpga-implementation-of-low-latency-noc-based-mpsoc
Compare Revisions
- This comparison shows the changes necessary to convert path
/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/mpsoc/perl_gui/lib/ip/Other
- from Rev 34 to Rev 38
- ↔ Reverse comparison
Rev 34 → Rev 38
/dummy_module.IP
126,7 → 126,7
}, |
'parameters' => { |
'S_Aw' => { |
'deafult' => ' 7', |
'default' => ' 7', |
'type' => 'Fixed', |
'info' => 'Parameter', |
'redefine_param' => 1, |
135,7 → 135,7
}, |
'REQ_LEN_CLK_NUM' => { |
'type' => 'Spin-button', |
'deafult' => ' 10', |
'default' => ' 10', |
'info' => 'Parameter', |
'content' => '1,100000,1', |
'global_param' => 'Parameter', |
144,7 → 144,7
'TAGw' => { |
'info' => 'Parameter', |
'type' => 'Fixed', |
'deafult' => ' 3', |
'default' => ' 3', |
'global_param' => 'Parameter', |
'redefine_param' => 1, |
'content' => '' |
153,7 → 153,7
'global_param' => 'Parameter', |
'redefine_param' => 1, |
'content' => '', |
'deafult' => ' 32', |
'default' => ' 32', |
'type' => 'Fixed', |
'info' => 'Parameter' |
}, |
160,7 → 160,7
'REQ_WAIT_CLK_NUM' => { |
'info' => 'Parameter', |
'type' => 'Spin-button', |
'deafult' => ' 20', |
'default' => ' 20', |
'global_param' => 'Parameter', |
'redefine_param' => 1, |
'content' => '1,100000,1' |
168,7 → 168,7
'SELw' => { |
'info' => 'Parameter', |
'type' => 'Fixed', |
'deafult' => ' 4', |
'default' => ' 4', |
'redefine_param' => 1, |
'global_param' => 'Parameter', |
'content' => '' |
178,7 → 178,7
'redefine_param' => 1, |
'content' => '', |
'type' => 'Fixed', |
'deafult' => ' 32', |
'default' => ' 32', |
'info' => 'Parameter' |
} |
}, |
/gcd.IP
0,0 → 1,222
####################################################################### |
## File: gcd.IP |
## |
## Copyright (C) 2014-2016 Alireza Monemi |
## |
## This file is part of ProNoC 1.8.0 |
## |
## WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT |
## MAY CAUSE UNEXPECTED BEHAIVOR. |
################################################################################ |
|
$ipgen = bless( { |
'parameters' => { |
'SELw' => { |
'type' => 'Fixed', |
'default' => '4', |
'content' => '', |
'global_param' => 'Localparam', |
'info' => 'Parameter', |
'redefine_param' => 1 |
}, |
'GCDw' => { |
'global_param' => 'Parameter', |
'default' => '32', |
'type' => 'Combo-box', |
'content' => '8,16,32', |
'info' => 'GCD\'s Input/output width in bits', |
'redefine_param' => 1 |
}, |
'TAGw' => { |
'info' => 'Parameter', |
'redefine_param' => 1, |
'global_param' => 'Localparam', |
'content' => '', |
'type' => 'Fixed', |
'default' => '3' |
}, |
'Dw' => { |
'default' => 'GCDw', |
'type' => 'Fixed', |
'content' => '', |
'global_param' => 'Localparam', |
'redefine_param' => 1, |
'info' => 'Parameter' |
}, |
'Aw' => { |
'redefine_param' => 1, |
'info' => 'Parameter', |
'default' => '5', |
'type' => 'Fixed', |
'content' => '', |
'global_param' => 'Localparam' |
} |
}, |
'ports' => { |
's_tag_i' => { |
'intfc_port' => 'tag_i', |
'type' => 'input', |
'range' => 'TAGw-1 : 0', |
'intfc_name' => 'plug:wb_slave[0]' |
}, |
's_stb_i' => { |
'intfc_name' => 'plug:wb_slave[0]', |
'range' => '', |
'type' => 'input', |
'intfc_port' => 'stb_i' |
}, |
's_dat_i' => { |
'intfc_port' => 'dat_i', |
'intfc_name' => 'plug:wb_slave[0]', |
'type' => 'input', |
'range' => 'Dw-1 : 0' |
}, |
's_cyc_i' => { |
'intfc_port' => 'cyc_i', |
'intfc_name' => 'plug:wb_slave[0]', |
'type' => 'input', |
'range' => '' |
}, |
's_sel_i' => { |
'intfc_port' => 'sel_i', |
'intfc_name' => 'plug:wb_slave[0]', |
'range' => 'SELw-1 : 0', |
'type' => 'input' |
}, |
's_rty_o' => { |
'intfc_port' => 'rty_o', |
'range' => '', |
'type' => 'output', |
'intfc_name' => 'plug:wb_slave[0]' |
}, |
'reset' => { |
'type' => 'input', |
'range' => '', |
'intfc_name' => 'plug:reset[0]', |
'intfc_port' => 'reset_i' |
}, |
's_addr_i' => { |
'intfc_port' => 'adr_i', |
'intfc_name' => 'plug:wb_slave[0]', |
'type' => 'input', |
'range' => 'Aw-1 : 0' |
}, |
's_err_o' => { |
'range' => '', |
'type' => 'output', |
'intfc_name' => 'plug:wb_slave[0]', |
'intfc_port' => 'err_o' |
}, |
's_ack_o' => { |
'intfc_port' => 'ack_o', |
'type' => 'output', |
'range' => '', |
'intfc_name' => 'plug:wb_slave[0]' |
}, |
's_we_i' => { |
'type' => 'input', |
'range' => '', |
'intfc_name' => 'plug:wb_slave[0]', |
'intfc_port' => 'we_i' |
}, |
'clk' => { |
'intfc_port' => 'clk_i', |
'intfc_name' => 'plug:clk[0]', |
'range' => '', |
'type' => 'input' |
}, |
's_dat_o' => { |
'intfc_port' => 'dat_o', |
'intfc_name' => 'plug:wb_slave[0]', |
'type' => 'output', |
'range' => 'Dw-1 : 0' |
} |
}, |
'ip_name' => 'gcd', |
'modules' => { |
'gcd_ip' => {} |
}, |
'file_name' => '/home/alireza/mywork/workshop/files/gcd_ip.v', |
'category' => 'Other', |
'version' => 3, |
'parameters_order' => [ |
'GCDw', |
'Dw', |
'Aw', |
'TAGw', |
'SELw' |
], |
'plugs' => { |
'clk' => { |
'type' => 'num', |
'0' => { |
'name' => 'clk' |
}, |
'value' => 1 |
}, |
'wb_slave' => { |
'type' => 'num', |
'value' => 1, |
'0' => { |
'width' => 5, |
'addr' => '0xb800_0000 0xbfff_ffff custom devices', |
'name' => 'wb_slave' |
} |
}, |
'reset' => { |
'type' => 'num', |
'value' => 1, |
'0' => { |
'name' => 'reset' |
} |
} |
}, |
'system_h' => '#define ${IP}_DONE_ADDR (*((volatile unsigned int *) ($BASE))) |
#define ${IP}_IN_1_ADDR (*((volatile unsigned int *) ($BASE+4))) |
#define ${IP}_IN_2_ADDR (*((volatile unsigned int *) ($BASE+8))) |
#define ${IP}_GCD_ADDR (*((volatile unsigned int *) ($BASE+12))) |
|
|
#define ${IP}_IN1_WRITE(value) ${IP}_IN_1_ADDR=value |
#define ${IP}_IN2_WRITE(value) ${IP}_IN_2_ADDR=value |
#define ${IP}_DONE_READ() ${IP}_DONE_ADDR |
#define ${IP}_READ() ${IP}_GCD_ADDR |
|
unsigned int gcd_hardware ( unsigned int p, unsigned int q ){ |
${IP}_IN1_WRITE(p); |
${IP}_IN2_WRITE(q); |
while (${IP}_DONE_READ()!=1); |
return ${IP}_READ(); |
}', |
'gui_status' => { |
'status' => 'ideal', |
'timeout' => 0 |
}, |
'description' => 'gcd module', |
'module_name' => 'gcd_ip', |
'ports_order' => [ |
'clk', |
'reset', |
's_dat_i', |
's_sel_i', |
's_addr_i', |
's_tag_i', |
's_stb_i', |
's_cyc_i', |
's_we_i', |
's_dat_o', |
's_ack_o', |
's_err_o', |
's_rty_o' |
], |
'hdl_files' => [ |
'/workshop/files/gcd.v', |
'/workshop/files/gcd_ip.v' |
], |
'unused' => { |
'plug:wb_slave[0]' => [ |
'bte_i', |
'cti_i' |
] |
} |
}, 'ip_gen' ); |
/gcd.IP.back
0,0 → 1,224
####################################################################### |
## File: gcd.IP |
## |
## Copyright (C) 2014-2016 Alireza Monemi |
## |
## This file is part of ProNoC 1.5.0 |
## |
## WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT |
## MAY CAUSE UNEXPECTED BEHAIVOR. |
################################################################################ |
|
$gcd_ip = bless( { |
'hdl_files' => [ |
'/mpsoc/src_peripheral/Other/gcd.v', |
'/mpsoc/src_peripheral/Other/gcd_ip.v' |
], |
'system_h' => ' #define ${IP}_DONE_ADDR (*((volatile unsigned int *) ($BASE ))) |
#define ${IP}_IN_1_ADDR (*((volatile unsigned int *) ($BASE+4))) |
#define ${IP}_IN_2_ADDR (*((volatile unsigned int *) ($BASE+8))) |
#define ${IP}_GCD_ADDR (*((volatile unsigned int *) ($BASE+12))) |
|
#define ${IP}_IN1_WRITE(value) ${IP}_IN_1_ADDR=value |
#define ${IP}_IN2_WRITE(value) ${IP}_IN_2_ADDR=value |
|
#define ${IP}_DONE_READ() ${IP}_DONE_ADDR |
#define ${IP}_GCD_READ() ${IP}_GCD_ADDR |
|
unsigned int gcd_hardware ( unsigned int p, unsigned int q ){ |
${IP}_IN1_WRITE(p) ; |
${IP}_IN2_WRITE(q) ; |
while (${IP}_DONE_READ()!=1); |
return ${IP}_GCD_READ(); |
}', |
'description' => 'Greatest Common Divisor hardware accelerator.', |
'ip_name' => 'gcd', |
'parameters' => { |
'GCDw' => { |
'info' => "GCD\x{2019}s Input/output width in bits", |
'default' => '32', |
'global_param' => 'Localparam', |
'content' => '8,16,32', |
'redefine_param' => 1, |
'type' => 'Combo-box' |
}, |
'Aw' => { |
'info' => 'Parameter', |
'default' => '2', |
'global_param' => 'Localparam', |
'content' => '', |
'redefine_param' => 1, |
'type' => 'Fixed' |
}, |
'TAGw' => { |
'info' => 'Parameter', |
'default' => '3', |
'global_param' => 'Localparam', |
'content' => '', |
'redefine_param' => 1, |
'type' => 'Fixed' |
}, |
'SELw' => { |
'info' => 'Parameter', |
'default' => '4', |
'global_param' => 'Localparam', |
'content' => '', |
'redefine_param' => 1, |
'type' => 'Fixed' |
}, |
'Dw' => { |
'info' => 'Parameter', |
'default' => 'GCDw', |
'global_param' => 'Localparam', |
'content' => '', |
'redefine_param' => 1, |
'type' => 'Fixed' |
} |
}, |
'gui_status' => { |
'status' => 'ideal', |
'timeout' => 0 |
}, |
'plugs' => { |
'clk' => { |
'clk' => {}, |
'value' => 1, |
'0' => { |
'name' => 'clk' |
}, |
'type' => 'num' |
}, |
'reset' => { |
'reset' => {}, |
'value' => 1, |
'0' => { |
'name' => 'reset' |
}, |
'type' => 'num' |
}, |
'wb_slave' => { |
'value' => 1, |
'0' => { |
'width' => 5, |
'name' => 'wb_slave', |
'addr' => '0xb800_0000 0xbfff_ffff custom devices' |
}, |
'type' => 'num', |
'wb_slave' => {} |
} |
}, |
'modules' => { |
'gcd_ip' => {} |
}, |
'ports_order' => [ |
'clk', |
'reset', |
's_dat_i', |
's_sel_i', |
's_addr_i', |
's_tag_i', |
's_stb_i', |
's_cyc_i', |
's_we_i', |
's_dat_o', |
's_ack_o', |
's_err_o', |
's_rty_o' |
], |
'parameters_order' => [ |
'GCDw', |
'Dw', |
'Aw', |
'TAGw', |
'SELw' |
], |
'ports' => { |
's_sel_i' => { |
'intfc_port' => 'sel_i', |
'intfc_name' => 'plug:wb_slave[0]', |
'range' => 'SELw-1 : 0', |
'type' => 'input' |
}, |
's_err_o' => { |
'intfc_port' => 'err_o', |
'intfc_name' => 'plug:wb_slave[0]', |
'range' => '', |
'type' => 'output' |
}, |
's_dat_i' => { |
'intfc_port' => 'dat_i', |
'intfc_name' => 'plug:wb_slave[0]', |
'range' => 'Dw-1 : 0', |
'type' => 'input' |
}, |
's_cyc_i' => { |
'intfc_port' => 'cyc_i', |
'intfc_name' => 'plug:wb_slave[0]', |
'range' => '', |
'type' => 'input' |
}, |
's_ack_o' => { |
'intfc_port' => 'ack_o', |
'intfc_name' => 'plug:wb_slave[0]', |
'range' => '', |
'type' => 'output' |
}, |
's_we_i' => { |
'intfc_port' => 'we_i', |
'intfc_name' => 'plug:wb_slave[0]', |
'range' => '', |
'type' => 'input' |
}, |
's_stb_i' => { |
'intfc_port' => 'stb_i', |
'intfc_name' => 'plug:wb_slave[0]', |
'range' => '', |
'type' => 'input' |
}, |
's_tag_i' => { |
'intfc_port' => 'tag_i', |
'intfc_name' => 'plug:wb_slave[0]', |
'range' => 'TAGw-1 : 0', |
'type' => 'input' |
}, |
'clk' => { |
'intfc_port' => 'clk_i', |
'intfc_name' => 'plug:clk[0]', |
'range' => '', |
'type' => 'input' |
}, |
'reset' => { |
'intfc_port' => 'reset_i', |
'intfc_name' => 'plug:reset[0]', |
'range' => '', |
'type' => 'input' |
}, |
's_rty_o' => { |
'intfc_port' => 'rty_o', |
'intfc_name' => 'plug:wb_slave[0]', |
'range' => '', |
'type' => 'output' |
}, |
's_addr_i' => { |
'intfc_port' => 'adr_i', |
'intfc_name' => 'plug:wb_slave[0]', |
'range' => 'Aw-1 : 0', |
'type' => 'input' |
}, |
's_dat_o' => { |
'intfc_port' => 'dat_o', |
'intfc_name' => 'plug:wb_slave[0]', |
'range' => 'Dw-1 : 0', |
'type' => 'output' |
} |
}, |
'file_name' => '/home/alireza/Mywork/mpsoc_doc/usermanual/tutorial2/gcd_ip.v', |
'module_name' => 'gcd_ip', |
'category' => 'Other', |
'unused' => { |
'plug:wb_slave[0]' => [ |
'cti_i', |
'bte_i' |
] |
} |
}, 'ip_gen' ); |
gcd.IP.back
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: sim_uart.IP
===================================================================
--- sim_uart.IP (revision 34)
+++ sim_uart.IP (revision 38)
@@ -10,93 +10,177 @@
################################################################################
$simulator_UART = bless( {
+ 'module_name' => 'simulator_UART',
+ 'system_h' => '#define ${IP}_DATA_REG (*((volatile unsigned int *) ($BASE)))
+
+void ${IP}_putchar(char ch){ //print one char from jtag_uart
+ ${IP}_DATA_REG=ch;
+}
+
+
+void ${IP}_putstring (char * buffer, char sz){
+ while (sz){
+ ${IP}_putchar(*buffer);
+ buffer++;
+ sz--;
+ }
+}
+',
+ 'description' => 'A simple uart that display input characters on simulator terminal using $write command.
+',
+ 'ports_order' => [
+ 'reset',
+ 'clk',
+ 's_dat_i',
+ 's_sel_i',
+ 's_addr_i',
+ 's_cti_i',
+ 's_stb_i',
+ 's_cyc_i',
+ 's_we_i',
+ 's_dat_o',
+ 's_ack_o'
+ ],
'file_name' => '/home/alireza/mywork/mpsoc/src_peripheral/Other/simulator_UART.v',
- 'gui_status' => {
- 'status' => 'ideal',
- 'timeout' => 0
- },
- 'version' => 6,
+ 'version' => 7,
+ 'unused' => {
+ 'plug:wb_slave[0]' => [
+ 'bte_i',
+ 'rty_o',
+ 'tag_i',
+ 'err_o'
+ ]
+ },
'modules' => {
'simulator_UART' => {}
},
+ 'parameters' => {
+ 'S_Aw' => {
+ 'content' => '',
+ 'type' => 'Fixed',
+ 'info' => 'Parameter',
+ 'global_param' => 'Localparam',
+ 'redefine_param' => 1,
+ 'default' => ' 7'
+ },
+ 'M_Aw' => {
+ 'redefine_param' => 1,
+ 'info' => 'Parameter',
+ 'global_param' => 'Localparam',
+ 'default' => ' 32',
+ 'type' => 'Fixed',
+ 'content' => ''
+ },
+ 'BUFFER_SIZE' => {
+ 'default' => '100',
+ 'info' => 'Internal buffer size ',
+ 'global_param' => 'Localparam',
+ 'redefine_param' => 1,
+ 'content' => '2,1000,1',
+ 'type' => 'Spin-button'
+ },
+ 'Dw' => {
+ 'default' => ' 32',
+ 'redefine_param' => 1,
+ 'info' => 'Parameter',
+ 'global_param' => 'Localparam',
+ 'type' => 'Fixed',
+ 'content' => ''
+ },
+ 'WAIT_COUNT' => {
+ 'type' => 'Spin-button',
+ 'content' => '2,100000,1',
+ 'redefine_param' => 1,
+ 'info' => 'If internal buffer has a data, the internal module timer starts counting up in each clock cycle. If Timer reach the WAIT_COUNT value, it writes the buffer vakue on simulator terminal.',
+ 'global_param' => 'Localparam',
+ 'default' => '1000'
+ },
+ 'TAGw' => {
+ 'type' => 'Fixed',
+ 'content' => '',
+ 'redefine_param' => 1,
+ 'global_param' => 'Localparam',
+ 'info' => 'Parameter',
+ 'default' => ' 3'
+ },
+ 'SELw' => {
+ 'type' => 'Fixed',
+ 'content' => '',
+ 'default' => ' 4',
+ 'redefine_param' => 1,
+ 'global_param' => 'Localparam',
+ 'info' => 'Parameter'
+ }
+ },
+ 'category' => 'Other',
'ports' => {
- 's_stb_i' => {
+ 's_cti_i' => {
'intfc_name' => 'plug:wb_slave[0]',
- 'intfc_port' => 'stb_i',
- 'range' => '',
- 'type' => 'input'
- },
- 's_cyc_i' => {
'type' => 'input',
- 'range' => '',
- 'intfc_name' => 'plug:wb_slave[0]',
- 'intfc_port' => 'cyc_i'
+ 'intfc_port' => 'cti_i',
+ 'range' => 'TAGw-1 : 0'
},
's_sel_i' => {
+ 'intfc_name' => 'plug:wb_slave[0]',
+ 'range' => 'SELw-1 : 0',
'intfc_port' => 'sel_i',
- 'intfc_name' => 'plug:wb_slave[0]',
+ 'type' => 'input'
+ },
+ 's_addr_i' => {
+ 'range' => 'S_Aw-1 : 0',
+ 'type' => 'input',
+ 'intfc_port' => 'adr_i',
+ 'intfc_name' => 'plug:wb_slave[0]'
+ },
+ 's_dat_o' => {
+ 'range' => 'Dw-1 : 0',
+ 'intfc_port' => 'dat_o',
+ 'type' => 'output',
+ 'intfc_name' => 'plug:wb_slave[0]'
+ },
+ 'clk' => {
+ 'type' => 'input',
+ 'intfc_port' => 'clk_i',
+ 'range' => '',
+ 'intfc_name' => 'plug:clk[0]'
+ },
+ 's_we_i' => {
+ 'intfc_name' => 'plug:wb_slave[0]',
+ 'intfc_port' => 'we_i',
+ 'type' => 'input',
+ 'range' => ''
+ },
+ 's_dat_i' => {
+ 'intfc_port' => 'dat_i',
'type' => 'input',
- 'range' => 'SELw-1 : 0'
+ 'range' => 'Dw-1 : 0',
+ 'intfc_name' => 'plug:wb_slave[0]'
},
'reset' => {
+ 'type' => 'input',
+ 'intfc_port' => 'reset_i',
'range' => '',
- 'type' => 'input',
- 'intfc_name' => 'plug:reset[0]',
- 'intfc_port' => 'reset_i'
+ 'intfc_name' => 'plug:reset[0]'
},
- 's_cti_i' => {
- 'intfc_port' => 'cti_i',
- 'intfc_name' => 'plug:wb_slave[0]',
+ 's_stb_i' => {
'type' => 'input',
- 'range' => 'TAGw-1 : 0'
+ 'intfc_port' => 'stb_i',
+ 'range' => '',
+ 'intfc_name' => 'plug:wb_slave[0]'
},
- 's_dat_i' => {
- 'intfc_port' => 'dat_i',
+ 's_cyc_i' => {
'intfc_name' => 'plug:wb_slave[0]',
- 'type' => 'input',
- 'range' => 'Dw-1 : 0'
+ 'range' => '',
+ 'intfc_port' => 'cyc_i',
+ 'type' => 'input'
},
's_ack_o' => {
+ 'intfc_name' => 'plug:wb_slave[0]',
'intfc_port' => 'ack_o',
- 'intfc_name' => 'plug:wb_slave[0]',
- 'range' => '',
- 'type' => 'output'
- },
- 's_addr_i' => {
- 'intfc_port' => 'adr_i',
- 'intfc_name' => 'plug:wb_slave[0]',
- 'type' => 'input',
- 'range' => 'S_Aw-1 : 0'
- },
- 's_dat_o' => {
- 'range' => 'Dw-1 : 0',
'type' => 'output',
- 'intfc_name' => 'plug:wb_slave[0]',
- 'intfc_port' => 'dat_o'
- },
- 's_we_i' => {
- 'intfc_port' => 'we_i',
- 'intfc_name' => 'plug:wb_slave[0]',
- 'range' => '',
- 'type' => 'input'
- },
- 'clk' => {
- 'intfc_port' => 'clk_i',
- 'intfc_name' => 'plug:clk[0]',
- 'range' => '',
- 'type' => 'input'
- }
+ 'range' => ''
+ }
},
- 'unused' => {
- 'plug:wb_slave[0]' => [
- 'tag_i',
- 'bte_i',
- 'rty_o',
- 'err_o'
- ]
- },
- 'description' => 'A simple uart that display input characters on simulator terminal using $write command.
-',
'parameters_order' => [
'Dw',
'S_Aw',
@@ -106,124 +190,40 @@
'BUFFER_SIZE',
'WAIT_COUNT'
],
+ 'gui_status' => {
+ 'timeout' => 0,
+ 'status' => 'ideal'
+ },
+ 'ip_name' => 'sim_uart',
+ 'hdl_files' => [
+ '/mpsoc/src_peripheral/Other/simulator_UART.v'
+ ],
'plugs' => {
- 'reset' => {
- 'value' => 1,
- 'reset' => {},
- '0' => {
- 'name' => 'reset'
- },
- 'type' => 'num'
- },
'clk' => {
- 'type' => 'num',
'clk' => {},
'0' => {
'name' => 'clk'
},
- 'value' => 1
+ 'value' => 1,
+ 'type' => 'num'
},
'wb_slave' => {
- 'wb_slave' => {},
'type' => 'num',
+ 'value' => 1,
'0' => {
+ 'addr' => '0xa500_0000 0xa5ff_ffff Debug',
'width' => 1,
- 'name' => 'wb_slave',
- 'addr' => '0xa500_0000 0xa5ff_ffff Debug'
+ 'name' => 'wb_slave'
},
- 'value' => 1
- }
- },
- 'ip_name' => 'sim_uart',
- 'ports_order' => [
- 'reset',
- 'clk',
- 's_dat_i',
- 's_sel_i',
- 's_addr_i',
- 's_cti_i',
- 's_stb_i',
- 's_cyc_i',
- 's_we_i',
- 's_dat_o',
- 's_ack_o'
- ],
- 'hdl_files' => [
- '/mpsoc/src_peripheral/Other/simulator_UART.v'
- ],
- 'system_h' => '#define ${IP}_DATA_REG (*((volatile unsigned int *) ($BASE)))
-
-void ${IP}_putchar(char ch){ //print one char from jtag_uart
- ${IP}_DATA_REG=ch;
-}
-
-
-void ${IP}_putstring (char * buffer, char sz){
- while (sz){
- ${IP}_putchar(*buffer);
- *buffer++;
- sz--;
- }
-}
-',
- 'category' => 'Other',
- 'parameters' => {
- 'SELw' => {
- 'content' => '',
- 'type' => 'Fixed',
- 'global_param' => 'Localparam',
- 'info' => 'Parameter',
- 'redefine_param' => 1,
- 'deafult' => ' 4'
- },
- 'S_Aw' => {
- 'deafult' => ' 7',
- 'redefine_param' => 1,
- 'info' => 'Parameter',
- 'content' => '',
- 'type' => 'Fixed',
- 'global_param' => 'Localparam'
- },
- 'M_Aw' => {
- 'redefine_param' => 1,
- 'global_param' => 'Localparam',
- 'type' => 'Fixed',
- 'content' => '',
- 'info' => 'Parameter',
- 'deafult' => ' 32'
- },
- 'WAIT_COUNT' => {
- 'deafult' => '1000',
- 'info' => 'If internal buffer has a data, the internal module timer starts counting up in each clock cycle. If Timer reach the WAIT_COUNT value, it writes the buffer vakue on simulator terminal.',
- 'global_param' => 'Localparam',
- 'type' => 'Spin-button',
- 'content' => '2,100000,1',
- 'redefine_param' => 1
- },
- 'Dw' => {
- 'redefine_param' => 1,
- 'content' => '',
- 'global_param' => 'Localparam',
- 'type' => 'Fixed',
- 'info' => 'Parameter',
- 'deafult' => ' 32'
- },
- 'BUFFER_SIZE' => {
- 'info' => 'Internal buffer size ',
- 'content' => '2,1000,1',
- 'global_param' => 'Localparam',
- 'type' => 'Spin-button',
- 'redefine_param' => 1,
- 'deafult' => '100'
- },
- 'TAGw' => {
- 'deafult' => ' 3',
- 'redefine_param' => 1,
- 'content' => '',
- 'type' => 'Fixed',
- 'global_param' => 'Localparam',
- 'info' => 'Parameter'
- }
- },
- 'module_name' => 'simulator_UART'
+ 'wb_slave' => {}
+ },
+ 'reset' => {
+ 'type' => 'num',
+ '0' => {
+ 'name' => 'reset'
+ },
+ 'value' => 1,
+ 'reset' => {}
+ }
+ }
}, 'ip_gen' );