📄 cyclone_atoms.v
字号:
buf data_buf99 (data_ipd[99], data[99]);
buf data_buf100 (data_ipd[100], data[100]);
buf data_buf101 (data_ipd[101], data[101]);
buf data_buf102 (data_ipd[102], data[102]);
buf data_buf103 (data_ipd[103], data[103]);
buf data_buf104 (data_ipd[104], data[104]);
buf data_buf105 (data_ipd[105], data[105]);
buf data_buf106 (data_ipd[106], data[106]);
buf data_buf107 (data_ipd[107], data[107]);
buf data_buf108 (data_ipd[108], data[108]);
buf data_buf109 (data_ipd[109], data[109]);
buf data_buf110 (data_ipd[110], data[110]);
buf data_buf111 (data_ipd[111], data[111]);
buf data_buf112 (data_ipd[112], data[112]);
buf data_buf113 (data_ipd[113], data[113]);
buf data_buf114 (data_ipd[114], data[114]);
buf data_buf115 (data_ipd[115], data[115]);
buf data_buf116 (data_ipd[116], data[116]);
buf data_buf117 (data_ipd[117], data[117]);
buf data_buf118 (data_ipd[118], data[118]);
buf data_buf119 (data_ipd[119], data[119]);
buf data_buf120 (data_ipd[120], data[120]);
buf data_buf121 (data_ipd[121], data[121]);
buf data_buf122 (data_ipd[122], data[122]);
buf data_buf123 (data_ipd[123], data[123]);
buf data_buf124 (data_ipd[124], data[124]);
buf data_buf125 (data_ipd[125], data[125]);
buf data_buf126 (data_ipd[126], data[126]);
buf data_buf127 (data_ipd[127], data[127]);
buf data_buf128 (data_ipd[128], data[128]);
buf data_buf129 (data_ipd[129], data[129]);
buf data_buf130 (data_ipd[130], data[130]);
buf data_buf131 (data_ipd[131], data[131]);
buf data_buf132 (data_ipd[132], data[132]);
buf data_buf133 (data_ipd[133], data[133]);
buf data_buf134 (data_ipd[134], data[134]);
buf data_buf135 (data_ipd[135], data[135]);
buf data_buf136 (data_ipd[136], data[136]);
buf data_buf137 (data_ipd[137], data[137]);
buf data_buf138 (data_ipd[138], data[138]);
buf data_buf139 (data_ipd[139], data[139]);
buf data_buf140 (data_ipd[140], data[140]);
buf data_buf141 (data_ipd[141], data[141]);
buf data_buf142 (data_ipd[142], data[142]);
buf data_buf143 (data_ipd[143], data[143]);
buf dataout_buf0 (dataout[0], dataout_tbuf[0]);
buf dataout_buf1 (dataout[1], dataout_tbuf[1]);
buf dataout_buf2 (dataout[2], dataout_tbuf[2]);
buf dataout_buf3 (dataout[3], dataout_tbuf[3]);
buf dataout_buf4 (dataout[4], dataout_tbuf[4]);
buf dataout_buf5 (dataout[5], dataout_tbuf[5]);
buf dataout_buf6 (dataout[6], dataout_tbuf[6]);
buf dataout_buf7 (dataout[7], dataout_tbuf[7]);
buf dataout_buf8 (dataout[8], dataout_tbuf[8]);
buf dataout_buf9 (dataout[9], dataout_tbuf[9]);
buf dataout_buf10 (dataout[10], dataout_tbuf[10]);
buf dataout_buf11 (dataout[11], dataout_tbuf[11]);
buf dataout_buf12 (dataout[12], dataout_tbuf[12]);
buf dataout_buf13 (dataout[13], dataout_tbuf[13]);
buf dataout_buf14 (dataout[14], dataout_tbuf[14]);
buf dataout_buf15 (dataout[15], dataout_tbuf[15]);
buf dataout_buf16 (dataout[16], dataout_tbuf[16]);
buf dataout_buf17 (dataout[17], dataout_tbuf[17]);
buf dataout_buf18 (dataout[18], dataout_tbuf[18]);
buf dataout_buf19 (dataout[19], dataout_tbuf[19]);
buf dataout_buf20 (dataout[20], dataout_tbuf[20]);
buf dataout_buf21 (dataout[21], dataout_tbuf[21]);
buf dataout_buf22 (dataout[22], dataout_tbuf[22]);
buf dataout_buf23 (dataout[23], dataout_tbuf[23]);
buf dataout_buf24 (dataout[24], dataout_tbuf[24]);
buf dataout_buf25 (dataout[25], dataout_tbuf[25]);
buf dataout_buf26 (dataout[26], dataout_tbuf[26]);
buf dataout_buf27 (dataout[27], dataout_tbuf[27]);
buf dataout_buf28 (dataout[28], dataout_tbuf[28]);
buf dataout_buf29 (dataout[29], dataout_tbuf[29]);
buf dataout_buf30 (dataout[30], dataout_tbuf[30]);
buf dataout_buf31 (dataout[31], dataout_tbuf[31]);
buf dataout_buf32 (dataout[32], dataout_tbuf[32]);
buf dataout_buf33 (dataout[33], dataout_tbuf[33]);
buf dataout_buf34 (dataout[34], dataout_tbuf[34]);
buf dataout_buf35 (dataout[35], dataout_tbuf[35]);
buf dataout_buf36 (dataout[36], dataout_tbuf[36]);
buf dataout_buf37 (dataout[37], dataout_tbuf[37]);
buf dataout_buf38 (dataout[38], dataout_tbuf[38]);
buf dataout_buf39 (dataout[39], dataout_tbuf[39]);
buf dataout_buf40 (dataout[40], dataout_tbuf[40]);
buf dataout_buf41 (dataout[41], dataout_tbuf[41]);
buf dataout_buf42 (dataout[42], dataout_tbuf[42]);
buf dataout_buf43 (dataout[43], dataout_tbuf[43]);
buf dataout_buf44 (dataout[44], dataout_tbuf[44]);
buf dataout_buf45 (dataout[45], dataout_tbuf[45]);
buf dataout_buf46 (dataout[46], dataout_tbuf[46]);
buf dataout_buf47 (dataout[47], dataout_tbuf[47]);
buf dataout_buf48 (dataout[48], dataout_tbuf[48]);
buf dataout_buf49 (dataout[49], dataout_tbuf[49]);
buf dataout_buf50 (dataout[50], dataout_tbuf[50]);
buf dataout_buf51 (dataout[51], dataout_tbuf[51]);
buf dataout_buf52 (dataout[52], dataout_tbuf[52]);
buf dataout_buf53 (dataout[53], dataout_tbuf[53]);
buf dataout_buf54 (dataout[54], dataout_tbuf[54]);
buf dataout_buf55 (dataout[55], dataout_tbuf[55]);
buf dataout_buf56 (dataout[56], dataout_tbuf[56]);
buf dataout_buf57 (dataout[57], dataout_tbuf[57]);
buf dataout_buf58 (dataout[58], dataout_tbuf[58]);
buf dataout_buf59 (dataout[59], dataout_tbuf[59]);
buf dataout_buf60 (dataout[60], dataout_tbuf[60]);
buf dataout_buf61 (dataout[61], dataout_tbuf[61]);
buf dataout_buf62 (dataout[62], dataout_tbuf[62]);
buf dataout_buf63 (dataout[63], dataout_tbuf[63]);
buf dataout_buf64 (dataout[64], dataout_tbuf[64]);
buf dataout_buf65 (dataout[65], dataout_tbuf[65]);
buf dataout_buf66 (dataout[66], dataout_tbuf[66]);
buf dataout_buf67 (dataout[67], dataout_tbuf[67]);
buf dataout_buf68 (dataout[68], dataout_tbuf[68]);
buf dataout_buf69 (dataout[69], dataout_tbuf[69]);
buf dataout_buf70 (dataout[70], dataout_tbuf[70]);
buf dataout_buf71 (dataout[71], dataout_tbuf[71]);
buf dataout_buf72 (dataout[72], dataout_tbuf[72]);
buf dataout_buf73 (dataout[73], dataout_tbuf[73]);
buf dataout_buf74 (dataout[74], dataout_tbuf[74]);
buf dataout_buf75 (dataout[75], dataout_tbuf[75]);
buf dataout_buf76 (dataout[76], dataout_tbuf[76]);
buf dataout_buf77 (dataout[77], dataout_tbuf[77]);
buf dataout_buf78 (dataout[78], dataout_tbuf[78]);
buf dataout_buf79 (dataout[79], dataout_tbuf[79]);
buf dataout_buf80 (dataout[80], dataout_tbuf[80]);
buf dataout_buf81 (dataout[81], dataout_tbuf[81]);
buf dataout_buf82 (dataout[82], dataout_tbuf[82]);
buf dataout_buf83 (dataout[83], dataout_tbuf[83]);
buf dataout_buf84 (dataout[84], dataout_tbuf[84]);
buf dataout_buf85 (dataout[85], dataout_tbuf[85]);
buf dataout_buf86 (dataout[86], dataout_tbuf[86]);
buf dataout_buf87 (dataout[87], dataout_tbuf[87]);
buf dataout_buf88 (dataout[88], dataout_tbuf[88]);
buf dataout_buf89 (dataout[89], dataout_tbuf[89]);
buf dataout_buf90 (dataout[90], dataout_tbuf[90]);
buf dataout_buf91 (dataout[91], dataout_tbuf[91]);
buf dataout_buf92 (dataout[92], dataout_tbuf[92]);
buf dataout_buf93 (dataout[93], dataout_tbuf[93]);
buf dataout_buf94 (dataout[94], dataout_tbuf[94]);
buf dataout_buf95 (dataout[95], dataout_tbuf[95]);
buf dataout_buf96 (dataout[96], dataout_tbuf[96]);
buf dataout_buf97 (dataout[97], dataout_tbuf[97]);
buf dataout_buf98 (dataout[98], dataout_tbuf[98]);
buf dataout_buf99 (dataout[99], dataout_tbuf[99]);
buf dataout_buf100 (dataout[100], dataout_tbuf[100]);
buf dataout_buf101 (dataout[101], dataout_tbuf[101]);
buf dataout_buf102 (dataout[102], dataout_tbuf[102]);
buf dataout_buf103 (dataout[103], dataout_tbuf[103]);
buf dataout_buf104 (dataout[104], dataout_tbuf[104]);
buf dataout_buf105 (dataout[105], dataout_tbuf[105]);
buf dataout_buf106 (dataout[106], dataout_tbuf[106]);
buf dataout_buf107 (dataout[107], dataout_tbuf[107]);
buf dataout_buf108 (dataout[108], dataout_tbuf[108]);
buf dataout_buf109 (dataout[109], dataout_tbuf[109]);
buf dataout_buf110 (dataout[110], dataout_tbuf[110]);
buf dataout_buf111 (dataout[111], dataout_tbuf[111]);
buf dataout_buf112 (dataout[112], dataout_tbuf[112]);
buf dataout_buf113 (dataout[113], dataout_tbuf[113]);
buf dataout_buf114 (dataout[114], dataout_tbuf[114]);
buf dataout_buf115 (dataout[115], dataout_tbuf[115]);
buf dataout_buf116 (dataout[116], dataout_tbuf[116]);
buf dataout_buf117 (dataout[117], dataout_tbuf[117]);
buf dataout_buf118 (dataout[118], dataout_tbuf[118]);
buf dataout_buf119 (dataout[119], dataout_tbuf[119]);
buf dataout_buf120 (dataout[120], dataout_tbuf[120]);
buf dataout_buf121 (dataout[121], dataout_tbuf[121]);
buf dataout_buf122 (dataout[122], dataout_tbuf[122]);
buf dataout_buf123 (dataout[123], dataout_tbuf[123]);
buf dataout_buf124 (dataout[124], dataout_tbuf[124]);
buf dataout_buf125 (dataout[125], dataout_tbuf[125]);
buf dataout_buf126 (dataout[126], dataout_tbuf[126]);
buf dataout_buf127 (dataout[127], dataout_tbuf[127]);
buf dataout_buf128 (dataout[128], dataout_tbuf[128]);
buf dataout_buf129 (dataout[129], dataout_tbuf[129]);
buf dataout_buf130 (dataout[130], dataout_tbuf[130]);
buf dataout_buf131 (dataout[131], dataout_tbuf[131]);
buf dataout_buf132 (dataout[132], dataout_tbuf[132]);
buf dataout_buf133 (dataout[133], dataout_tbuf[133]);
buf dataout_buf134 (dataout[134], dataout_tbuf[134]);
buf dataout_buf135 (dataout[135], dataout_tbuf[135]);
buf dataout_buf136 (dataout[136], dataout_tbuf[136]);
buf dataout_buf137 (dataout[137], dataout_tbuf[137]);
buf dataout_buf138 (dataout[138], dataout_tbuf[138]);
buf dataout_buf139 (dataout[139], dataout_tbuf[139]);
buf dataout_buf140 (dataout[140], dataout_tbuf[140]);
buf dataout_buf141 (dataout[141], dataout_tbuf[141]);
buf dataout_buf142 (dataout[142], dataout_tbuf[142]);
buf dataout_buf143 (dataout[143], dataout_tbuf[143]);
buf done_buf (done, done_tbuf);
buf (clk_ipd, clk);
buf (aclr_ipd, aclr);
buf (ena_ipd, ena);
specify
specparam TSU = 0; // Set up time
specparam TH = 0; // Hold time
specparam TCO = 0; // Clock to Output time
specparam TCLR = 0; // Clear time
specparam TCLR_MIN_PW = 0;// Minimum pulse width of clear
specparam TPRE = 0; // Preset time
specparam TPRE_MIN_PW = 0;// Minimum pulse width of preset
specparam TCLK_MIN_PW = 0;// Minimum pulse width of clock
specparam TCE_MIN_PW = 0; // Minimum pulse width of clock enable
specparam TCLKL = 0; // Minimum clock low time
specparam TCLKH = 0; // Minimum clock high time
$setup (data, posedge clk, 0, viol_notifier);
$setup (aclr, posedge clk, 0, viol_notifier);
$setup (ena, posedge clk, 0, viol_notifier );
$hold (posedge clk, data, 0, viol_notifier);
$hold (posedge clk, aclr, 0, viol_notifier);
$hold (posedge clk, ena, 0, viol_notifier );
(posedge aclr => (dataout +: 'b0)) = (0,0);
(posedge clk => (dataout +: dataout_tmp)) = (0,0);
(posedge clk => (done +: done_tbuf)) = (0,0);
endspecify
initial
begin
if(power_up == 1'b1)
begin
dataout_reg = ~(143'b0);
dataout_sreg = ~(143'b0);
end
else
begin
dataout_reg = 'b0;
dataout_sreg = 'b0;
end
end
always @ (aclr_ipd)
begin
if(aclr_ipd && ena_ipd)
aclrout_reg <= 1'b1;
else
aclrout_reg <= 1'b0;
end
assign aclrout = (if_aclr == 1'b1) ? aclrout_reg : 1'b0;
// SYNCHRONOUS RESET - REGISTER CONFIGURATION
always @ (posedge clk_ipd or negedge devclrn or negedge devpor)
begin
if ((if_aclr && aclr_ipd) || ~devclrn || ~devpor)
begin
if((preset == "true") && (power_up == 1'b1))
dataout_sreg <= ~(143'b0);
else
dataout_sreg <= 'b0;
end
else if (if_clk && clk_ipd && if_ena && ena_ipd)
begin
dataout_sreg <= data_ipd;
end
else
begin
dataout_sreg <= dataout_sreg;
end
end
// ASYNCHRONOUS RESET - REGISTER CONFIGURATION
always @ (posedge clk_ipd or posedge aclr_ipd or
negedge devclrn or negedge devpor)
begin
if ((if_aclr && aclr_ipd) || ~devclrn || ~devpor)
begin
if((preset == "true") && (power_up == 1'b1))
dataout_reg <= ~(143'b0);
else
dataout_reg <= 'b0;
end
else if ((if_clk && clk_ipd && if_ena && ena_ipd) &&
~(if_aclr && aclr_ipd))
begin
dataout_reg <= data_ipd;
end
else
begin
dataout_reg <= dataout_reg;
end
end
// DONE REGISTER
always @ (clk_ipd)
begin
if(clk_ipd && ena_ipd)
done_reg <= 1'b1;
else
done_reg <= 1'b0;
end
// DONE DELTA TICK
always @ (done_reg)
begin
done_delta <= done_reg;
end
assign dataout_tmp = (if_clk ? ((sclr == "true") ?
dataout_sreg : dataout_reg) : data_ipd);
assign dataout_tbuf = dataout_tmp;
assign done_tbuf = done_delta;
endmodule // cyclone_ram_register
///////////////////////////////////////////////////////////////////////////////
//
// CYCLONE_RAM_CLEAR
//
///////////////////////////////////////////////////////////////////////////////
`timescale 1 ps/1 ps
module cyclone_ram_clear (aclr, d, q);
input d;
input aclr;
output q;
reg q_tmp;
// ASYNCHRONOUS ACLR LOGIC
always @ (aclr)
begin
if (aclr & d)
q_tmp <= 1'b1;
else
q_tmp <= 1'b0;
end
assign q = q_tmp;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -