mirror of
https://github.com/Silicon1602/srdl2sv.git
synced 2025-04-19 13:02:57 +00:00
Now, every snippet of RTL in the YAML file can also hold internal variables (i.e., signals), input or output ports. Furthermore, the input/output port lists are replaced by a dictionary to prevent duplicate entries.
51 lines
1.7 KiB
YAML
51 lines
1.7 KiB
YAML
---
|
|
rw_wire_assign_1_dim:
|
|
rtl: |
|
|
// Assign register-activation signals
|
|
assign {path}_reg_active{genvars} = addr == {addr};
|
|
|
|
assign {path}_sw_wr = {path}_reg_active && r_vld;
|
|
assign {path}_sw_rd = {path}_reg_active && w_vld;
|
|
signals:
|
|
- name: '{path}_sw_wr'
|
|
signal_type: 'logic'
|
|
- name: '{path}_sw_rd'
|
|
signal_type: 'logic'
|
|
- name: '{path}_reg_active'
|
|
signal_type: 'logic'
|
|
input_ports:
|
|
output_ports:
|
|
rw_wire_assign_multi_dim:
|
|
rtl: |
|
|
|
|
// Assign register-activation signals
|
|
assign {path}_reg_active{genvars} = addr == ({addr}+({genvars_sum})*{stride});
|
|
|
|
assign {path}_sw_wr{genvars} = {path}_reg_active{genvars} && r_vld;
|
|
assign {path}_sw_rd{genvars} = {path}_reg_active{genvars} && w_vld;
|
|
signals:
|
|
- name: '{path}_sw_wr'
|
|
signal_type: 'logic'
|
|
- name: '{path}_sw_rd'
|
|
signal_type: 'logic'
|
|
- name: '{path}_reg_active'
|
|
signal_type: 'logic'
|
|
input_ports:
|
|
output_ports:
|
|
reg_comment: |-
|
|
|
|
/*******************************************************************
|
|
*******************************************************************
|
|
* REGISTER : {name}
|
|
* DIMENSION : {dimensions}
|
|
* DEPTHS (per dimension): {depth}
|
|
*******************************************************************
|
|
*******************************************************************/
|
|
generate_for_start: |-
|
|
for ({iterator} = 0; {iterator} < {limit}; {iterator}++)
|
|
begin
|
|
generate_for_end: |-
|
|
end // of for loop with iterator {dimension}
|
|
signal_declaration: |-
|
|
{type:10s}{name:20s} {unpacked_dim};
|