📄 fddrrse.v
字号:
1 // $Header: /devl/xcs/repo/env/Databases/CAEInterfaces/verunilibs/data/unisims/FDDRRSE.v,v 1.15.48.1 2007/03/09 18:13:02 patrickp Exp $ 2 /////////////////////////////////////////////////////////////////////////////// 3 // Copyright (c) 1995/2004 Xilinx, Inc. 4 // All Right Reserved. 5 /////////////////////////////////////////////////////////////////////////////// 6 // ____ ____ 7 // / /\/ / 8 // /___/ \ / Vendor : Xilinx 9 // \ \ \/ Version : 8.1i (I.27) 10 // \ \ Description : Xilinx Functional Simulation Library Component 11 // / / Dual Data Rate D Flip-Flop with Synchronous Reset and Set and Clock Enable 12 // /___/ /\ Filename : FDDRRSE.v 13 // \ \ / \ Timestamp : Thu Mar 25 16:42:16 PST 2004 14 // \___\/\___\ 15 // 16 // Revision: 17 // 03/23/04 - Initial version. 18 // 02/04/05 - Rev 0.0.1 Remove input/output bufs; Seperate GSR from clock block. 19 // 05/06/05 - Remove internal input data strobe and add to the output. (CR207678) 20 // 10/20/05 - Add set & reset check to main block. (CR219794) 21 // 10/28/05 - combine strobe block and data block. (CR220298). 22 // 2/07/06 - Remove set & reset from main block and add specify block (CR225119) 23 // 2/10/06 - Change Q from reg to wire (CR 225613) 24 // End Revision 25 26 `timescale 1 ps / 1 ps 27 28 29 module FDDRRSE (Q, C0, C1, CE, D0, D1, R, S); 30 31 parameter INIT = 1'h0; 32 33 output Q; 34 35 input C0, C1, CE, D0, D1, R, S; 36 37 wire Q; 38 reg q_out; 39 40 reg q0_out, q1_out; 41 reg C0_tmp, C1_tmp; 42 43 initial begin 44 q_out = INIT; 45 q0_out = INIT; 46 q1_out = INIT; 47 C0_tmp = 0; 48 C1_tmp = 0; 49 end 50 51 assign Q = q_out; 52 53 always @(posedge C0) 54 if (CE == 1 || R == 1 || S == 1) begin 55 C0_tmp <= 1; 56 C0_tmp <= #100 0; 57 end 58 59 always @(posedge C1) 60 if (CE == 1 || R == 1 || S == 1) begin 61 C1_tmp <= 1; 62 C1_tmp <= #100 0; 63 end 64 65 always @(posedge C0) 66 if (R) 67 q0_out <= 0; 68 else if (S) 69 q0_out <= 1; 70 else if (CE) 71 q0_out <= D0; 72 73 always @(posedge C1) 74 if (R) 75 q1_out <= 0; 76 else if (S) 77 q1_out <= 1; 78 else if (CE) 79 q1_out <= D1; 80 81 always @(posedge C0_tmp or posedge C1_tmp ) 82 if (C1_tmp) 83 q_out = q1_out; 84 else 85 q_out = q0_out; 86 87 specify 88 if (R) 89 (posedge C0 => (Q +: 1'b0)) = (100, 100); 90 if (!R && S) 91 (posedge C0 => (Q +: 1'b1)) = (100, 100); 92 if (!R && !S && CE) 93 (posedge C0 => (Q +: D0)) = (100, 100); 94 if (R) 95 (posedge C1 => (Q +: 1'b0)) = (100, 100); 96 if (!R && S) 97 (posedge C1 => (Q +: 1'b1)) = (100, 100); 98 if (!R && !S && CE) 99 (posedge C1 => (Q +: D1)) = (100, 100); 100 endspecify 101 102 endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -