赞
踩
是构成设计的最基本单元,通过真值表描述其功能,包括基本逻辑门在内有26个预定义功能模型
原语 | 描述 | 使用 |
---|---|---|
and | 与门 | and(yout, xin1, xin2, xin3) |
nand | 与非 | nand(yout, xin1, xin2, xin3) |
or | 或门 | or(yout, xin1, xin2, xin3) |
nor | 或非 | nor(yout, xin1, xin2, xin3) |
xor | 异或 | xor(yout, xin1, xin2, xin3) |
xnor | 同或 | nxor(yout, xin1, xin2, xin3) |
符号 | 意义 |
---|---|
0,1,x | 逻辑0,1,x为未知值,UDP中没有z |
? | 无关逻辑,可以是0,1,x |
b | 逻辑0或1 |
- | 不变化 |
(xy) | 从x变为y,如(01)为上升沿 |
* | 输入信号的任何变化 |
r | 上升沿 |
f | 下降沿 |
p | 含x的上升沿,等同于(01)、(0x)、(x1) |
n | 含x的下降沿,等同于(10)、(x0)、(1x) |
primitive and(y, x1, x2);
output y;
input x1, x2;
table
// x1 x2 : y
0 0 : 0;
0 1 : 0;
1 0 : 0;
1 1 : 1;
endtable
endprimitive
输入可以是0,1,x,所以考虑所有情况的2输入多路复用器如下:
primitive mux_two(out, select, a, b); output out; input select, a, b; // y = select ? a : b; table // select a b : out 0 0 0 : 0; 0 0 1 : 0; 0 0 x : 0; 0 1 0 : 1; 0 1 1 : 1; 0 1 x : 1; 1 0 0 : 0; 1 1 0 : 0; 1 x 0 : 0; 1 0 1 : 1; 1 1 1 : 1; 1 x 1 : 1; x 0 0 : 0; x 1 1 : 1; endtable endprimitive
使用助记符?简化,?=0,1,x
primitive mux_two(out, select, a, b); output out; input select, a, b; // y = select ? a : b; table // select a b : out 0 0 ? : 0; 0 1 ? : 1; 1 ? 0 : 0; 1 ? 1 : 1; ? 0 0 : 0; ? 1 1 : 1; endtable endprimitive
其实就是带使能的锁存器
primitive latch_with_enable(q_out, enable, data); output q_out; input enable, data; reg q_out; // q_out = enable ? data : q_out; // - 表示保持 table // 时序逻辑table格式 // input1 input2 state : output/next_state // enable data state : q_out/next_state 1 1 ? : 1; 1 0 ? : 0; 0 ? ? : -; x 0 0 : -; x 1 1 : -; endtable endprimitive
primitive DFF(q_out, clk, data); output q_out; input clk, data; reg q_out; // q_out = posedge(clk) ? data : q_out; // - 表示保持 table // 时序逻辑table格式 // input1 input2 state : output/next_state // clk data state : q_out/next_state (01) 0 ? : 0; (01) 1 ? : 1; (0?) 1 1 : 1; (?0) ? ? : -; ? (??) ? : -; endtable endprimitive
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。