Reading BROM value





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}







0















I am trying to read the value from the BROM which is generated using block memory generator IP in Vivado 2015.4. I initialize the value by using .coe file with given data. Below is my code for reading the value by increasing the address, but there is problem with the address which i cant get it right, because it has to be 0 for the first value as the initiation,does anyone knows how to deal with this problem, thank you very much.



 `timescale 1 ns / 1 ps

module brom_tb();
reg clk;
reg en;
reg [15:0] addr;
wire [31:0] dout;

BROM_wrapper
uut(.BRAM_PORTA_addr(addr),.BRAM_PORTA_clk(clk),.BRAM_PORTA_dout(dout),
.BRAM_PORTA_en(en));

initial
begin
addr = 0;
clk = 1'b0;
en = 1'b1;

forever #4 clk=~clk;
end


always @(posedge clk)
begin
addr = addr + 1;
end
endmodule


This is my result
https://i.imgur.com/Xf13LPm.png










share|improve this question























  • Your waveform shows the end (window range ~999.9975ns to 1ms), and your problem statement is about the initialization. We should be seeing the time window from 0 to 10ns. FYI sequential logic should be assigned with non-blocking assignment (<=)

    – Greg
    Jan 4 at 17:46











  • Thank you very much for your answer, there's something that I want to ask, when I run the simulation, how can I adjust the time so that when I run all, it will automatically increase the address and read out the value, which starts from 0 and go through all the address in BROM without restarting the clk. When i run all, the address seems to be random without increasing order. Thank you very much again. Here is the result when I run all i.imgur.com/k38WG5Q.png

    – Thịnh Nguyễn
    Jan 5 at 4:43


















0















I am trying to read the value from the BROM which is generated using block memory generator IP in Vivado 2015.4. I initialize the value by using .coe file with given data. Below is my code for reading the value by increasing the address, but there is problem with the address which i cant get it right, because it has to be 0 for the first value as the initiation,does anyone knows how to deal with this problem, thank you very much.



 `timescale 1 ns / 1 ps

module brom_tb();
reg clk;
reg en;
reg [15:0] addr;
wire [31:0] dout;

BROM_wrapper
uut(.BRAM_PORTA_addr(addr),.BRAM_PORTA_clk(clk),.BRAM_PORTA_dout(dout),
.BRAM_PORTA_en(en));

initial
begin
addr = 0;
clk = 1'b0;
en = 1'b1;

forever #4 clk=~clk;
end


always @(posedge clk)
begin
addr = addr + 1;
end
endmodule


This is my result
https://i.imgur.com/Xf13LPm.png










share|improve this question























  • Your waveform shows the end (window range ~999.9975ns to 1ms), and your problem statement is about the initialization. We should be seeing the time window from 0 to 10ns. FYI sequential logic should be assigned with non-blocking assignment (<=)

    – Greg
    Jan 4 at 17:46











  • Thank you very much for your answer, there's something that I want to ask, when I run the simulation, how can I adjust the time so that when I run all, it will automatically increase the address and read out the value, which starts from 0 and go through all the address in BROM without restarting the clk. When i run all, the address seems to be random without increasing order. Thank you very much again. Here is the result when I run all i.imgur.com/k38WG5Q.png

    – Thịnh Nguyễn
    Jan 5 at 4:43














0












0








0








I am trying to read the value from the BROM which is generated using block memory generator IP in Vivado 2015.4. I initialize the value by using .coe file with given data. Below is my code for reading the value by increasing the address, but there is problem with the address which i cant get it right, because it has to be 0 for the first value as the initiation,does anyone knows how to deal with this problem, thank you very much.



 `timescale 1 ns / 1 ps

module brom_tb();
reg clk;
reg en;
reg [15:0] addr;
wire [31:0] dout;

BROM_wrapper
uut(.BRAM_PORTA_addr(addr),.BRAM_PORTA_clk(clk),.BRAM_PORTA_dout(dout),
.BRAM_PORTA_en(en));

initial
begin
addr = 0;
clk = 1'b0;
en = 1'b1;

forever #4 clk=~clk;
end


always @(posedge clk)
begin
addr = addr + 1;
end
endmodule


This is my result
https://i.imgur.com/Xf13LPm.png










share|improve this question














I am trying to read the value from the BROM which is generated using block memory generator IP in Vivado 2015.4. I initialize the value by using .coe file with given data. Below is my code for reading the value by increasing the address, but there is problem with the address which i cant get it right, because it has to be 0 for the first value as the initiation,does anyone knows how to deal with this problem, thank you very much.



 `timescale 1 ns / 1 ps

module brom_tb();
reg clk;
reg en;
reg [15:0] addr;
wire [31:0] dout;

BROM_wrapper
uut(.BRAM_PORTA_addr(addr),.BRAM_PORTA_clk(clk),.BRAM_PORTA_dout(dout),
.BRAM_PORTA_en(en));

initial
begin
addr = 0;
clk = 1'b0;
en = 1'b1;

forever #4 clk=~clk;
end


always @(posedge clk)
begin
addr = addr + 1;
end
endmodule


This is my result
https://i.imgur.com/Xf13LPm.png







verilog fpga






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Jan 4 at 17:18









Thịnh NguyễnThịnh Nguyễn

11




11













  • Your waveform shows the end (window range ~999.9975ns to 1ms), and your problem statement is about the initialization. We should be seeing the time window from 0 to 10ns. FYI sequential logic should be assigned with non-blocking assignment (<=)

    – Greg
    Jan 4 at 17:46











  • Thank you very much for your answer, there's something that I want to ask, when I run the simulation, how can I adjust the time so that when I run all, it will automatically increase the address and read out the value, which starts from 0 and go through all the address in BROM without restarting the clk. When i run all, the address seems to be random without increasing order. Thank you very much again. Here is the result when I run all i.imgur.com/k38WG5Q.png

    – Thịnh Nguyễn
    Jan 5 at 4:43



















  • Your waveform shows the end (window range ~999.9975ns to 1ms), and your problem statement is about the initialization. We should be seeing the time window from 0 to 10ns. FYI sequential logic should be assigned with non-blocking assignment (<=)

    – Greg
    Jan 4 at 17:46











  • Thank you very much for your answer, there's something that I want to ask, when I run the simulation, how can I adjust the time so that when I run all, it will automatically increase the address and read out the value, which starts from 0 and go through all the address in BROM without restarting the clk. When i run all, the address seems to be random without increasing order. Thank you very much again. Here is the result when I run all i.imgur.com/k38WG5Q.png

    – Thịnh Nguyễn
    Jan 5 at 4:43

















Your waveform shows the end (window range ~999.9975ns to 1ms), and your problem statement is about the initialization. We should be seeing the time window from 0 to 10ns. FYI sequential logic should be assigned with non-blocking assignment (<=)

– Greg
Jan 4 at 17:46





Your waveform shows the end (window range ~999.9975ns to 1ms), and your problem statement is about the initialization. We should be seeing the time window from 0 to 10ns. FYI sequential logic should be assigned with non-blocking assignment (<=)

– Greg
Jan 4 at 17:46













Thank you very much for your answer, there's something that I want to ask, when I run the simulation, how can I adjust the time so that when I run all, it will automatically increase the address and read out the value, which starts from 0 and go through all the address in BROM without restarting the clk. When i run all, the address seems to be random without increasing order. Thank you very much again. Here is the result when I run all i.imgur.com/k38WG5Q.png

– Thịnh Nguyễn
Jan 5 at 4:43





Thank you very much for your answer, there's something that I want to ask, when I run the simulation, how can I adjust the time so that when I run all, it will automatically increase the address and read out the value, which starts from 0 and go through all the address in BROM without restarting the clk. When i run all, the address seems to be random without increasing order. Thank you very much again. Here is the result when I run all i.imgur.com/k38WG5Q.png

– Thịnh Nguyễn
Jan 5 at 4:43












0






active

oldest

votes












Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54043408%2freading-brom-value%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54043408%2freading-brom-value%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Monofisismo

Angular Downloading a file using contenturl with Basic Authentication

Olmecas