blob: db3f4d623de12affb65438b03aef931f07105f95 [file] [log] [blame]
// SPDX-FileCopyrightText: Copyright 2020 Jecel Mattos de Assumpcao Jr
//
// SPDX-License-Identifier: Apache-2.0
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// test vectors for basic Morphle Logic "yellow cell"
// to be used with test004ycell.v
//
// each vector in the the format of 7 hex digits
//
// for two bit wide signals 00 indicates "empty",
// "01" indicates a 0 value and "10 a 1 value
//
// the first digit is: 0,0,xhempty,xvempty
// where these are the expected values of hempty and vempty
// and these depend only on what the configuration of the cell is
//
// the second digit is: uempty,dempty,lempty,rempty
// these are 1 if the corresponding neighbors are empty
//
// the third digit is: reset,confclk,cbitin,xcbitout
// where reset is 1 to freeze the cell, and cbitin is a new
// configuration bit read on each rising edge of confclk
// the expected value of cbitout is the value of cbitin
// delayed by three clocks
//
// the fourth digit is: uin,xuout (two bits each)
// where uin is a value from the neighbor at the top and the
// expected value for uout goes to that neighbor
//
// the fifth digit is: din,xdout (two bits each)
// the sixth digit is: lin,xlout (two bits each)
// the seventh digit is: rin,xrout (two bits each
0000000 // first two vectors have the output ignored to settle down
0080000 // reset everything [1]*
0080000 // keep it in reset a little longer
00C0000 // clock in a 0
0080000
00C0000 // another 0
0080000
30C0000 // configured to 000 (space)
3000000 // out of reset
3008000 // 1 from U
3008888 // 1 from all neighbors (now blocks to save energy)
3000400 // 0 from D (now blocks)
3080000 // reset
30C0000 // clock in a 0
30A0000
00E0000 // clock in a 1 (no longer empty - N)
00A0000
20E0000 // another 1 - configured to 110 (Y)
2000000 // out of reset