📄 cyclone_atoms.v
字号:
else
aclrout_reg <= 1'b0;
end
assign aclrout = (ifaclr == 1'b1) ? aclrout_reg : 1'b0;
// SYNCHRONOUS RESET - REGISTER CONFIGURATION
always @ (posedge clk_ipd or negedge devclrn or negedge devpor)
begin
if ((ifaclr && aclr_ipd) || ~devclrn || ~devpor)
begin
if((preset == "true") && (powerup == 1'b1))
dataout_sreg <= ~(143'b0);
else
dataout_sreg <= 'b0;
end
else if (ifclk && clk_ipd && ifena && 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 ((ifaclr && aclr_ipd) || ~devclrn || ~devpor)
begin
if((preset == "true") && (powerup == 1'b1))
dataout_reg <= ~(143'b0);
else
dataout_reg <= 'b0;
end
else if (ifclk && clk_ipd && ifena && ena_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;
if(clk_ipd)
clk_dly <= 1'b1;
else
clk_dly <= 1'b0;
end
assign clkout = clk_dly;
// DONE DELTA TICK
always @ (done_reg)
begin
done_delta <= done_reg;
end
assign dataout_tmp = (ifclk ? ((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,
clk,
ena,
edg,
q
);
input d;
input aclr;
input clk;
input ena;
input edg;
output q;
reg q_tmp;
reg valid;
always @ (clk or ena)
begin
if(edg == 1'b0)
begin
if (~clk && d && ena)
valid <= 1'b1;
else
valid <= 1'b0;
end
else
begin
if (clk && d)
valid <= 1'b1;
else
valid <= 1'b0;
end
end
always @ (valid or aclr)
begin
if(valid && aclr)
q_tmp <= 1'b1;
else
q_tmp <= 1'b0;
end
assign q = q_tmp;
endmodule
///////////////////////////////////////////////////////////////////////////////
//
// CYCLONE_RAM_INTERNAL
//
///////////////////////////////////////////////////////////////////////////////
module cyclone_ram_internal
(
portawriteenable,
portbwriteenable,
cleara,
clearb,
portadatain,
portbdatain,
portaaddress,
portbaddress,
portabyteenamask,
portbbyteenamask,
portbreadenable,
portaclock,
portbclock,
sameclock,
portadataout,
portbdataout
);
parameter operation_mode = "single_port";
parameter ram_block_type = "M512";
parameter mixed_port_feed_through_mode = "dont_care";
parameter port_a_data_width = 16;
parameter port_b_data_width = 16;
parameter port_a_address_width = 16;
parameter port_b_address_width = 16;
parameter port_a_byte_enable_mask_width = 16;
parameter port_b_byte_enable_mask_width = 16;
parameter init_file_layout = "none";
parameter port_a_first_address = 0;
parameter port_a_last_address = 4096;
parameter port_b_first_address = 0;
parameter port_b_last_address = 4096;
parameter port_a_address_clear = "none";
parameter port_b_address_clear = "none";
parameter mem1 = 512'b0;
parameter mem2 = 512'b0;
parameter mem3 = 512'b0;
parameter mem4 = 512'b0;
parameter mem5 = 512'b0;
parameter mem6 = 512'b0;
parameter mem7 = 512'b0;
parameter mem8 = 512'b0;
parameter mem9 = 512'b0;
input portawriteenable;
input portbwriteenable;
input cleara;
input clearb;
input [143:0] portadatain;
input [143:0] portbdatain;
input [15:0] portaaddress;
input [15:0] portbaddress;
input [15:0] portabyteenamask;
input [15:0] portbbyteenamask;
input portbreadenable;
input portaclock;
input portbclock;
input sameclock;
output [143:0] portadataout;
output [143:0] portbdataout;
reg [143:0] portadataout_tmp;
reg [143:0] portbdataout_tmp;
reg [589823:0] tmp_mem;
reg [589823:0] mem;
reg wr_a;
reg wr_b;
wire [143:0] portadataout_tbuf;
wire [143:0] portbdataout_tbuf;
integer i,l,j,k;
integer depth;
integer index;
specify
(portawriteenable *> portadataout) = (0,0);
(portbwriteenable *> portbdataout) = (0,0);
(portadatain *> portadataout) = (0,0);
(portbdatain *> portbdataout) = (0,0);
(portaaddress *> portadataout) = (0,0);
(portbaddress *> portbdataout) = (0,0);
(portabyteenamask *> portadataout) = (0,0);
(portbbyteenamask *> portbdataout) = (0,0);
(portbreadenable *> portbdataout) = (0,0);
endspecify
buf portadataout_buf0 (portadataout[0], portadataout_tbuf[0]);
buf portadataout_buf1 (portadataout[1], portadataout_tbuf[1]);
buf portadataout_buf2 (portadataout[2], portadataout_tbuf[2]);
buf portadataout_buf3 (portadataout[3], portadataout_tbuf[3]);
buf portadataout_buf4 (portadataout[4], portadataout_tbuf[4]);
buf portadataout_buf5 (portadataout[5], portadataout_tbuf[5]);
buf portadataout_buf6 (portadataout[6], portadataout_tbuf[6]);
buf portadataout_buf7 (portadataout[7], portadataout_tbuf[7]);
buf portadataout_buf8 (portadataout[8], portadataout_tbuf[8]);
buf portadataout_buf9 (portadataout[9], portadataout_tbuf[9]);
buf portadataout_buf10 (portadataout[10], portadataout_tbuf[10]);
buf portadataout_buf11 (portadataout[11], portadataout_tbuf[11]);
buf portadataout_buf12 (portadataout[12], portadataout_tbuf[12]);
buf portadataout_buf13 (portadataout[13], portadataout_tbuf[13]);
buf portadataout_buf14 (portadataout[14], portadataout_tbuf[14]);
buf portadataout_buf15 (portadataout[15], portadataout_tbuf[15]);
buf portadataout_buf16 (portadataout[16], portadataout_tbuf[16]);
buf portadataout_buf17 (portadataout[17], portadataout_tbuf[17]);
buf portadataout_buf18 (portadataout[18], portadataout_tbuf[18]);
buf portadataout_buf19 (portadataout[19], portadataout_tbuf[19]);
buf portadataout_buf20 (portadataout[20], portadataout_tbuf[20]);
buf portadataout_buf21 (portadataout[21], portadataout_tbuf[21]);
buf portadataout_buf22 (portadataout[22], portadataout_tbuf[22]);
buf portadataout_buf23 (portadataout[23], portadataout_tbuf[23]);
buf portadataout_buf24 (portadataout[24], portadataout_tbuf[24]);
buf portadataout_buf25 (portadataout[25], portadataout_tbuf[25]);
buf portadataout_buf26 (portadataout[26], portadataout_tbuf[26]);
buf portadataout_buf27 (portadataout[27], portadataout_tbuf[27]);
buf portadataout_buf28 (portadataout[28], portadataout_tbuf[28]);
buf portadataout_buf29 (portadataout[29], portadataout_tbuf[29]);
buf portadataout_buf30 (portadataout[30], portadataout_tbuf[30]);
buf portadataout_buf31 (portadataout[31], portadataout_tbuf[31]);
buf portadataout_buf32 (portadataout[32], portadataout_tbuf[32]);
buf portadataout_buf33 (portadataout[33], portadataout_tbuf[33]);
buf portadataout_buf34 (portadataout[34], portadataout_tbuf[34]);
buf portadataout_buf35 (portadataout[35], portadataout_tbuf[35]);
buf portadataout_buf36 (portadataout[36], portadataout_tbuf[36]);
buf portadataout_buf37 (portadataout[37], portadataout_tbuf[37]);
buf portadataout_buf38 (portadataout[38], portadataout_tbuf[38]);
buf portadataout_buf39 (portadataout[39], portadataout_tbuf[39]);
buf portadataout_buf40 (portadataout[40], portadataout_tbuf[40]);
buf portadataout_buf41 (portadataout[41], portadataout_tbuf[41]);
buf portadataout_buf42 (portadataout[42], portadataout_tbuf[42]);
buf portadataout_buf43 (portadataout[43], portadataout_tbuf[43]);
buf portadataout_buf44 (portadataout[44], portadataout_tbuf[44]);
buf portadataout_buf45 (portadataout[45], portadataout_tbuf[45]);
buf portadataout_buf46 (portadataout[46], portadataout_tbuf[46]);
buf portadataout_buf47 (portadataout[47], portadataout_tbuf[47]);
buf portadataout_buf48 (portadataout[48], portadataout_tbuf[48]);
buf portadataout_buf49 (portadataout[49], portadataout_tbuf[49]);
buf portadataout_buf50 (portadataout[50], portadataout_tbuf[50]);
buf portadataout_buf51 (portadataout[51], portadataout_tbuf[51]);
buf portadataout_buf52 (portadataout[52], portadataout_tbuf[52]);
buf portadataout_buf53 (portadataout[53], portadataout_tbuf[53]);
buf portadataout_buf54 (portadataout[54], portadataout_tbuf[54]);
buf portadataout_buf55 (portadataout[55], portadataout_tbuf[55]);
buf portadataout_buf56 (portadataout[56], portadataout_tbuf[56]);
buf portadataout_buf57 (portadataout[57], portadataout_tbuf[57]);
buf portadataout_buf58 (portadataout[58], portadataout_tbuf[58]);
buf portadataout_buf59 (portadataout[59], portadataout_tbuf[59]);
buf portadataout_buf60 (portadataout[60], portadataout_tbuf[60]);
buf portadataout_buf61 (portadataout[61], portadataout_tbuf[61]);
buf portadataout_buf62 (portadataout[62], portadataout_tbuf[62]);
buf portadataout_buf63 (portadataout[63], portadataout_tbuf[63]);
buf portadataout_buf64 (portadataout[64], portadataout_tbuf[64]);
buf portadataout_buf65 (portadataout[65], portadataout_tbuf[65]);
buf portadataout_buf66 (portadataout[66], portadataout_tbuf[66]);
buf portadataout_buf67 (portadataout[67], portadataout_tbuf[67]);
buf portadataout_buf68 (portadataout[68], portadataout_tbuf[68]);
buf portadataout_buf69 (portadataout[69], portadataout_tbuf[69]);
buf portadataout_buf70 (portadataout[70], portadataout_tbuf[70]);
buf portadataout_buf71 (portadataout[71], portadataout_tbuf[71]);
buf portadataout_buf72 (portadataout[72], portadataout_tbuf[72]);
buf portadataout_buf73 (portadataout[73], portadataout_tbuf[73]);
buf portadataout_buf74 (portadataout[74], portadataout_tbuf[74]);
buf portadataout_buf75 (portadataout[75], portadataout_tbuf[75]);
buf portadataout_buf76 (portadataout[76], portadataout_tbuf[76]);
buf portadataout_buf77 (portadataout[77], portadataout_tbuf[77]);
buf portadataout_buf78 (portadataout[78], portadataout_tbuf[78]);
buf portadataout_buf79 (portadataout[79], portadataout_tbuf[79]);
buf portadataout_buf80 (portadataout[80], portadataout_tbuf[80]);
buf portadataout_buf81 (portadataout[81], portadataout_tbuf[81]);
buf portadataout_buf82 (portadataout[82], portadataout_tbuf[82]);
buf portadataout_buf83 (portadataout[83], portadataout_tbuf[83]);
buf portadataout_buf84 (portadataout[84], portadataout_tbuf[84]);
buf portadataout_buf85 (portadataout[85], portadataout_tbuf[85]);
buf portadataout_buf86 (portadataout[86], portadataout_tbuf[86]);
buf portadataout_buf87 (portadataout[87], portadataout_tbuf[87]);
buf portadataout_buf88 (portadataout[88], portadataout_tbuf[88]);
buf portadataout_buf89 (portadataout[89], portadataout_tbuf[89]);
buf portadataout_buf90 (portadataout[90], portadataout_tbuf[90]);
buf portadataout_buf91 (portadataout[91], portadataout_tbuf[91]);
buf portadataout_buf92 (portadataout[92], portadataout_tbuf[92]);
buf portadataout_buf93 (portadataout[93], portadataout_tbuf[93]);
buf portadataout_buf94 (portadataout[94], portadataout_tbuf[94]);
buf portadataout_buf95 (portadataout[95], portadataout_tbuf[95]);
buf portadataout_buf96 (portadataout[96], portadataout_tbuf[96]);
buf portadataout_buf97 (portadataout[97], portadataout_tbuf[97]);
buf portadataout_buf98 (portadataout[98], portadataout_tbuf[98]);
buf portadataout_buf99 (portadataout[99], portadataout_tbuf[99]);
buf portadataout_buf100 (portadataout[100], portadataout_tbuf[100]);
buf portadataout_buf101 (portadataout[101], portadataout_tbuf[101]);
buf portadataout_buf102 (portadataout[102], portadataout_tbuf[102]);
buf portadataout_buf103 (portadataout[103], portadataout_tbuf[103]);
buf portadataout_buf104 (portadataout[104], portadataout_tbuf[104]);
buf portadataout_buf105 (portadataout[105], portadataout_tbuf[105]);
buf portadataout_buf106 (portadataout[106], portadataout_tbuf[106]);
buf portadataout_buf107 (portadataout[107], portadataout_tbuf[107]);
buf portadataout_buf108 (portadataout[108], portadataout_tbuf[108]);
buf portadataout_buf109 (portadataout[109], portadataout_tbuf[109]);
buf portadataout_buf110 (portadataout[110], portadataout_tbuf[110]);
buf portadataout_buf111 (portadataout[111], portadataout_tbuf[111]);
buf portadataout_buf112 (portadataout[112], portadataout_tbuf[112]);
buf portadataout_buf113 (portadataout[113], portadataout_tbuf[113]);
buf portadataout_buf114 (portadataout[114], portadataout_tbuf[114]);
buf portadataout_buf115 (portadataout[115], portadataout_tbuf[115]);
buf portadataout_buf116 (portadataout[116], portadataout_tbuf[116]);
buf portadataout_buf117 (portadataout[117], portadataout_tbuf[117]);
buf portadataout_buf118 (portadataout[118], portadataout_tbuf[118]);
buf portadataout_buf119 (portadataout[119], portadataout_tbuf[119]);
buf portadataout_buf120 (portadataout[120], portadataout_tbuf[120]);
buf portadataout_buf121 (portadataout[121], portadataout_tbuf[121]);
buf portadataout_buf122 (portadataout[122], portadataout_tbuf[122]);
buf portadataout_buf123 (portadataout[123], portadataout_tbuf[123]);
buf portadataout_buf124 (portadataout[124], portadataout_tbuf[124]);
buf portadataout_buf125 (portadataout[125], portadataout_tbuf[125]);
buf portadataout_buf126 (portadataout[126], portadataout_tbuf[126]);
buf portadataout_buf127 (portadataout[127], portadataout_tbuf[127]);
buf portadataout_buf128 (portadataout[128], portadataout_tbuf[128]);
buf portadataout_buf129 (portadataout[129], portadataout_tbuf[129]);
buf portadataout_buf130 (portadataout[130], portadataout_tbuf[130]);
buf portadataout_buf131 (portadataout[131], portadataout_tbuf[131]);
buf portadataout_buf132 (portadataout[132], portadataout_tbuf[132]);
buf portadataout_buf133 (portadataout[133], portadataout_tbuf[133]);
buf portadataout_buf134 (portadataout[134], portadataout_tbuf[134]);
buf portadataout_buf135 (portadataout[135], portadataout_tbuf[135]);
buf portadataout_buf136 (portadataout[136], portadataout_tbuf[136]);
buf portadataout_buf137 (portadataout[137], portadataout_tbuf[137]);
buf portadataout_buf138 (portadataout[138], portadataout_tbuf[138]);
buf portadataout_buf139 (portadataout[139], portadataout_tbuf[139]);
buf portadataout_buf140 (portadataout[140], portadataout_tbuf[140]);
buf portadataout_buf141 (portadataout[141], portadataout_tbuf[141]);
buf portadat
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -