mirror of
https://github.com/YosysHQ/yosys
synced 2025-09-15 22:21:30 +00:00
Added tests/various/constmsk_test.ys
This commit is contained in:
parent
f5a40e7043
commit
01ef34c147
3 changed files with 68 additions and 0 deletions
49
tests/various/constmsk_testmap.v
Normal file
49
tests/various/constmsk_testmap.v
Normal file
|
@ -0,0 +1,49 @@
|
|||
(* techmap_celltype = "$reduce_or" *)
|
||||
module my_opt_reduce_or(...);
|
||||
parameter A_SIGNED = 0;
|
||||
parameter A_WIDTH = 1;
|
||||
parameter Y_WIDTH = 1;
|
||||
|
||||
input [A_WIDTH-1:0] A;
|
||||
output reg [Y_WIDTH-1:0] Y;
|
||||
|
||||
parameter _TECHMAP_CONSTMSK_A_ = 0;
|
||||
parameter _TECHMAP_CONSTVAL_A_ = 0;
|
||||
|
||||
wire _TECHMAP_FAIL_ = count_nonconst_bits() == A_WIDTH;
|
||||
wire [1024:0] _TECHMAP_DO_ = "proc;;";
|
||||
|
||||
function integer count_nonconst_bits;
|
||||
integer i;
|
||||
begin
|
||||
count_nonconst_bits = 0;
|
||||
for (i = 0; i < A_WIDTH; i=i+1)
|
||||
if (!_TECHMAP_CONSTMSK_A_[i])
|
||||
count_nonconst_bits = count_nonconst_bits+1;
|
||||
end
|
||||
endfunction
|
||||
|
||||
function has_const_one;
|
||||
integer i;
|
||||
begin
|
||||
has_const_one = 0;
|
||||
for (i = 0; i < A_WIDTH; i=i+1)
|
||||
if (_TECHMAP_CONSTMSK_A_[i] && _TECHMAP_CONSTVAL_A_[i] === 1'b1)
|
||||
has_const_one = 1;
|
||||
end
|
||||
endfunction
|
||||
|
||||
integer i;
|
||||
reg [count_nonconst_bits()-1:0] tmp;
|
||||
|
||||
always @* begin
|
||||
if (has_const_one()) begin
|
||||
Y = 1;
|
||||
end else begin
|
||||
for (i = 0; i < A_WIDTH; i=i+1)
|
||||
if (!_TECHMAP_CONSTMSK_A_[i])
|
||||
tmp = {A[i], tmp[count_nonconst_bits()-1:1]};
|
||||
Y = |tmp;
|
||||
end
|
||||
end
|
||||
endmodule
|
Loading…
Add table
Add a link
Reference in a new issue