Can I modify a signal within a process if it's also in the sensitivity list in VHDL?
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}
I understand that changes to a signal within a process would take place at the end of the process.
I need the process to modify signals that are in it's sensitivity list and then reevaluate;
something like
signal a: std_logic;
signal b: std_logic;
process(a,b) begin
if(b='1') then
a<='0';
end if;
end process;
vhdl vivado
add a comment |
I understand that changes to a signal within a process would take place at the end of the process.
I need the process to modify signals that are in it's sensitivity list and then reevaluate;
something like
signal a: std_logic;
signal b: std_logic;
process(a,b) begin
if(b='1') then
a<='0';
end if;
end process;
vhdl vivado
1
Yes. Your yes/no question snippet doesn't have the structure described in the title. See IEEE Std 1076-2008 10.2 Wait statement for the rules for constructing a sensitivity list. In -2008 you can use the reserved wordallto construct the sensitivity list from every signal evaluated in any process statement. Your snippet doesn't evaluate a. You'd get the process to resume needlessly once every time a is assigned and a is already '0'. An assignment schedules an update, if the value changes you get an event (14.7.3.4 Signal update) and the process resumes (14.7.5.3 Simulation cycle).
– user1155120
Jan 4 at 0:46
You are probably looking for a variable in a process. Variables are updated immediately, but not at the next wait statement. Please not a process with sensitivity ist is equivalent to a process with await on <signallist>;before theend process;
– Paebbels
Jan 4 at 7:20
If you update a signal in the sensitivity list, you will cause the process to be re-evaluated. It is possible to cause an infinite loop like this and cause a simulator to hit the iteration limit (and fail) or create a logic loop in real hardware.
– Tricky
Jan 4 at 9:17
Thank you, I understand now :)
– Florea Vlad
Jan 4 at 12:47
add a comment |
I understand that changes to a signal within a process would take place at the end of the process.
I need the process to modify signals that are in it's sensitivity list and then reevaluate;
something like
signal a: std_logic;
signal b: std_logic;
process(a,b) begin
if(b='1') then
a<='0';
end if;
end process;
vhdl vivado
I understand that changes to a signal within a process would take place at the end of the process.
I need the process to modify signals that are in it's sensitivity list and then reevaluate;
something like
signal a: std_logic;
signal b: std_logic;
process(a,b) begin
if(b='1') then
a<='0';
end if;
end process;
vhdl vivado
vhdl vivado
asked Jan 3 at 23:54
Florea VladFlorea Vlad
43
43
1
Yes. Your yes/no question snippet doesn't have the structure described in the title. See IEEE Std 1076-2008 10.2 Wait statement for the rules for constructing a sensitivity list. In -2008 you can use the reserved wordallto construct the sensitivity list from every signal evaluated in any process statement. Your snippet doesn't evaluate a. You'd get the process to resume needlessly once every time a is assigned and a is already '0'. An assignment schedules an update, if the value changes you get an event (14.7.3.4 Signal update) and the process resumes (14.7.5.3 Simulation cycle).
– user1155120
Jan 4 at 0:46
You are probably looking for a variable in a process. Variables are updated immediately, but not at the next wait statement. Please not a process with sensitivity ist is equivalent to a process with await on <signallist>;before theend process;
– Paebbels
Jan 4 at 7:20
If you update a signal in the sensitivity list, you will cause the process to be re-evaluated. It is possible to cause an infinite loop like this and cause a simulator to hit the iteration limit (and fail) or create a logic loop in real hardware.
– Tricky
Jan 4 at 9:17
Thank you, I understand now :)
– Florea Vlad
Jan 4 at 12:47
add a comment |
1
Yes. Your yes/no question snippet doesn't have the structure described in the title. See IEEE Std 1076-2008 10.2 Wait statement for the rules for constructing a sensitivity list. In -2008 you can use the reserved wordallto construct the sensitivity list from every signal evaluated in any process statement. Your snippet doesn't evaluate a. You'd get the process to resume needlessly once every time a is assigned and a is already '0'. An assignment schedules an update, if the value changes you get an event (14.7.3.4 Signal update) and the process resumes (14.7.5.3 Simulation cycle).
– user1155120
Jan 4 at 0:46
You are probably looking for a variable in a process. Variables are updated immediately, but not at the next wait statement. Please not a process with sensitivity ist is equivalent to a process with await on <signallist>;before theend process;
– Paebbels
Jan 4 at 7:20
If you update a signal in the sensitivity list, you will cause the process to be re-evaluated. It is possible to cause an infinite loop like this and cause a simulator to hit the iteration limit (and fail) or create a logic loop in real hardware.
– Tricky
Jan 4 at 9:17
Thank you, I understand now :)
– Florea Vlad
Jan 4 at 12:47
1
1
Yes. Your yes/no question snippet doesn't have the structure described in the title. See IEEE Std 1076-2008 10.2 Wait statement for the rules for constructing a sensitivity list. In -2008 you can use the reserved word
all to construct the sensitivity list from every signal evaluated in any process statement. Your snippet doesn't evaluate a. You'd get the process to resume needlessly once every time a is assigned and a is already '0'. An assignment schedules an update, if the value changes you get an event (14.7.3.4 Signal update) and the process resumes (14.7.5.3 Simulation cycle).– user1155120
Jan 4 at 0:46
Yes. Your yes/no question snippet doesn't have the structure described in the title. See IEEE Std 1076-2008 10.2 Wait statement for the rules for constructing a sensitivity list. In -2008 you can use the reserved word
all to construct the sensitivity list from every signal evaluated in any process statement. Your snippet doesn't evaluate a. You'd get the process to resume needlessly once every time a is assigned and a is already '0'. An assignment schedules an update, if the value changes you get an event (14.7.3.4 Signal update) and the process resumes (14.7.5.3 Simulation cycle).– user1155120
Jan 4 at 0:46
You are probably looking for a variable in a process. Variables are updated immediately, but not at the next wait statement. Please not a process with sensitivity ist is equivalent to a process with a
wait on <signallist>; before the end process;– Paebbels
Jan 4 at 7:20
You are probably looking for a variable in a process. Variables are updated immediately, but not at the next wait statement. Please not a process with sensitivity ist is equivalent to a process with a
wait on <signallist>; before the end process;– Paebbels
Jan 4 at 7:20
If you update a signal in the sensitivity list, you will cause the process to be re-evaluated. It is possible to cause an infinite loop like this and cause a simulator to hit the iteration limit (and fail) or create a logic loop in real hardware.
– Tricky
Jan 4 at 9:17
If you update a signal in the sensitivity list, you will cause the process to be re-evaluated. It is possible to cause an infinite loop like this and cause a simulator to hit the iteration limit (and fail) or create a logic loop in real hardware.
– Tricky
Jan 4 at 9:17
Thank you, I understand now :)
– Florea Vlad
Jan 4 at 12:47
Thank you, I understand now :)
– Florea Vlad
Jan 4 at 12:47
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54031408%2fcan-i-modify-a-signal-within-a-process-if-its-also-in-the-sensitivity-list-in-v%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
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54031408%2fcan-i-modify-a-signal-within-a-process-if-its-also-in-the-sensitivity-list-in-v%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
1
Yes. Your yes/no question snippet doesn't have the structure described in the title. See IEEE Std 1076-2008 10.2 Wait statement for the rules for constructing a sensitivity list. In -2008 you can use the reserved word
allto construct the sensitivity list from every signal evaluated in any process statement. Your snippet doesn't evaluate a. You'd get the process to resume needlessly once every time a is assigned and a is already '0'. An assignment schedules an update, if the value changes you get an event (14.7.3.4 Signal update) and the process resumes (14.7.5.3 Simulation cycle).– user1155120
Jan 4 at 0:46
You are probably looking for a variable in a process. Variables are updated immediately, but not at the next wait statement. Please not a process with sensitivity ist is equivalent to a process with a
wait on <signallist>;before theend process;– Paebbels
Jan 4 at 7:20
If you update a signal in the sensitivity list, you will cause the process to be re-evaluated. It is possible to cause an infinite loop like this and cause a simulator to hit the iteration limit (and fail) or create a logic loop in real hardware.
– Tricky
Jan 4 at 9:17
Thank you, I understand now :)
– Florea Vlad
Jan 4 at 12:47