zero em todos os reset

R

rsrinivas

Guest
oi tudo
Eu construí um arquivo de registro que tem de inicializar a zero no reset.
dizer um conjunto de 16 registos que são 64 bits de largura cada.
howdo i inicializá-los na restauração.

módulo regfil1 (clk, rst addrread, addrwrite, din, writep, readp, dout);
clk de entrada;
rst de entrada;
input [63:0] din;
readp de entrada;
writep de entrada;
input [4:0] addrread;
input [4:0] addrwrite;
output [63:0] dout;

MAX_COUNT = parâmetro 5'b01111; / superior / endereço no arquivo de registro.

reg assinado [63:0] dout;

always @ (posedge clk) / / problema aqui só funciona em posedge clk
começar: rst_blk
integer i;
se rst ()
for (i = 0; i <= MAX_COUNT; i = i 1)
começar
regbank <= 64'h0000000000000000;
final
else if (writep == 1'b1) começam
[Regbank addrwrite] <= din;
final
final

always @ (posedge clk)
começar
if (readp == 1'b1 & &! rst) começam
<= Dout regbank [] addrread;
final
final

endmoduleEle só funciona em clk posedge, faz o loop para o trabalho em cada clk posedge ou seja simultâneo a um clk posedge todo o laço for é executado
quaisquer alterações ou sugestões pls

 
O laço for será executado em um clk posedge quando rst é alta.

 
assim por diante um clk posedge se redefinir é alto o banco reg todo será zero?

 
rsrinivas escreveu:

assim por diante um clk posedge se redefinir é alto o banco reg todo será zero?
 
Tenho simulado em NCsim mas o simulador não dá valor atribuído no reset.
Estou um pouco confuso.

 
Seu código não define regbank.Você precisa de algo como isto:
reg [63:0] regbank [0]: MAX_COUNT;

Se você está direcionando um FPGA Xilinx (talvez outras também), cuidado que a sua reposição de ciclo único forçará o sintetizador para implementar regbank em 1024 flip-flops e os lotes de multiplexadores.

 
Oi echo
Obrigado pela correção.
Eu tenho isso no meu código eu esqueci de colá-lo antes.
u tat dizer um monte de recursos serão consumidos direita.
(64 * 16 = 1024 FF's).
Eu tenho um 3e espartano.
além de uso de recursos wat problemas podem ocorrer.

Saúde
srinivas

 
rsrinivas escreveu:

Tenho simulado em NCsim mas o simulador não dá valor atribuído no reset.

Estou um pouco confuso.
 
Eu notei que o seu endereço de ônibus tem 5 bits, mas o seu MAX_COUNT é de apenas 15.Isso parece estranho, mas talvez você fez isso deliberadamente, apesar de que inicialmente disse que somente 16 registros.Cinco bits significa 32 registros, e 2048 flip-flops.Nesse caso, a definição regbank deve ser:
reg [63:0] regbank [0:31];

Suponho que não há nenhum problema com consumo de lotes de registos e multiplexers, se você tem bastante espaço na sua FPGA, e se você não se importa reduzir a velocidade devido ao alto fan-out e rotas longas.

Eu encaminhado-o em um Spartan-3E, e uma rápida e suja via simulação post parece ok.

 
Oi
graças thereply 4.
o código eu postei antes é apenas um rude que eu escrevi.
o banco é reg wat i am lookin encontra em um projeto que contém valores temporários.
Tenho a opção de ter um carneiro DualPort também.
qual é o melhor qualquer sugesstions.

 

Welcome to EDABoard.com

Sponsor

Back
Top