Why does my selected signal assignment not work?
What did I do wrong with the selected signal assignment in my VHDL
code?
with s select x <= a when (s = '1')
else y <= a when (s = '0');
I also tried this:
with s select x <= a when '1';
with s select y <= a when '0';
vhdl vivado
add a comment |
What did I do wrong with the selected signal assignment in my VHDL
code?
with s select x <= a when (s = '1')
else y <= a when (s = '0');
I also tried this:
with s select x <= a when '1';
with s select y <= a when '0';
vhdl vivado
"not work" is a bit vague. Provide a Minimal, Complete, and Verifiable example including a description of the problem and the means to replicate it.
– user1155120
Nov 21 '18 at 16:23
3
Questions and answers are meant to be a search resource for future readers with questions. Without a clear problem statement (what indication do you get your signal assignment statement isn't working?) Your question isn't clear. Answering the question also likely depends on the declaration ofs
which isn't provided. A selected signal assignment has a case statement (in a process statement) equivalent. A case statement requires every choice of the value of s be covered. For type bit they are, for std_logic (std_ulogic) not. As is your question isn't answerable.
– user1155120
Nov 21 '18 at 17:01
add a comment |
What did I do wrong with the selected signal assignment in my VHDL
code?
with s select x <= a when (s = '1')
else y <= a when (s = '0');
I also tried this:
with s select x <= a when '1';
with s select y <= a when '0';
vhdl vivado
What did I do wrong with the selected signal assignment in my VHDL
code?
with s select x <= a when (s = '1')
else y <= a when (s = '0');
I also tried this:
with s select x <= a when '1';
with s select y <= a when '0';
vhdl vivado
vhdl vivado
edited Nov 21 '18 at 20:53
Roman Pokrovskij
4,26294980
4,26294980
asked Nov 21 '18 at 15:34
Typical CowTypical Cow
11
11
"not work" is a bit vague. Provide a Minimal, Complete, and Verifiable example including a description of the problem and the means to replicate it.
– user1155120
Nov 21 '18 at 16:23
3
Questions and answers are meant to be a search resource for future readers with questions. Without a clear problem statement (what indication do you get your signal assignment statement isn't working?) Your question isn't clear. Answering the question also likely depends on the declaration ofs
which isn't provided. A selected signal assignment has a case statement (in a process statement) equivalent. A case statement requires every choice of the value of s be covered. For type bit they are, for std_logic (std_ulogic) not. As is your question isn't answerable.
– user1155120
Nov 21 '18 at 17:01
add a comment |
"not work" is a bit vague. Provide a Minimal, Complete, and Verifiable example including a description of the problem and the means to replicate it.
– user1155120
Nov 21 '18 at 16:23
3
Questions and answers are meant to be a search resource for future readers with questions. Without a clear problem statement (what indication do you get your signal assignment statement isn't working?) Your question isn't clear. Answering the question also likely depends on the declaration ofs
which isn't provided. A selected signal assignment has a case statement (in a process statement) equivalent. A case statement requires every choice of the value of s be covered. For type bit they are, for std_logic (std_ulogic) not. As is your question isn't answerable.
– user1155120
Nov 21 '18 at 17:01
"not work" is a bit vague. Provide a Minimal, Complete, and Verifiable example including a description of the problem and the means to replicate it.
– user1155120
Nov 21 '18 at 16:23
"not work" is a bit vague. Provide a Minimal, Complete, and Verifiable example including a description of the problem and the means to replicate it.
– user1155120
Nov 21 '18 at 16:23
3
3
Questions and answers are meant to be a search resource for future readers with questions. Without a clear problem statement (what indication do you get your signal assignment statement isn't working?) Your question isn't clear. Answering the question also likely depends on the declaration of
s
which isn't provided. A selected signal assignment has a case statement (in a process statement) equivalent. A case statement requires every choice of the value of s be covered. For type bit they are, for std_logic (std_ulogic) not. As is your question isn't answerable.– user1155120
Nov 21 '18 at 17:01
Questions and answers are meant to be a search resource for future readers with questions. Without a clear problem statement (what indication do you get your signal assignment statement isn't working?) Your question isn't clear. Answering the question also likely depends on the declaration of
s
which isn't provided. A selected signal assignment has a case statement (in a process statement) equivalent. A case statement requires every choice of the value of s be covered. For type bit they are, for std_logic (std_ulogic) not. As is your question isn't answerable.– user1155120
Nov 21 '18 at 17:01
add a comment |
1 Answer
1
active
oldest
votes
It's not completly clear what you want to do. From what you showed us, it seems to me that you want to create a demux controlled by signal s (1 input, 2 outputs), where x <= a when s='1' and y <= a when s='0'
The use of select should be done in cases when you want to create a mux (n inputs, 1 output). That is, the opposite of a demux!
I would recommend you to use a simple if statement to create a demux.
Example:
if s='1' then x <= a; else y <= a; end if;
add a comment |
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%2f53415482%2fwhy-does-my-selected-signal-assignment-not-work%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
It's not completly clear what you want to do. From what you showed us, it seems to me that you want to create a demux controlled by signal s (1 input, 2 outputs), where x <= a when s='1' and y <= a when s='0'
The use of select should be done in cases when you want to create a mux (n inputs, 1 output). That is, the opposite of a demux!
I would recommend you to use a simple if statement to create a demux.
Example:
if s='1' then x <= a; else y <= a; end if;
add a comment |
It's not completly clear what you want to do. From what you showed us, it seems to me that you want to create a demux controlled by signal s (1 input, 2 outputs), where x <= a when s='1' and y <= a when s='0'
The use of select should be done in cases when you want to create a mux (n inputs, 1 output). That is, the opposite of a demux!
I would recommend you to use a simple if statement to create a demux.
Example:
if s='1' then x <= a; else y <= a; end if;
add a comment |
It's not completly clear what you want to do. From what you showed us, it seems to me that you want to create a demux controlled by signal s (1 input, 2 outputs), where x <= a when s='1' and y <= a when s='0'
The use of select should be done in cases when you want to create a mux (n inputs, 1 output). That is, the opposite of a demux!
I would recommend you to use a simple if statement to create a demux.
Example:
if s='1' then x <= a; else y <= a; end if;
It's not completly clear what you want to do. From what you showed us, it seems to me that you want to create a demux controlled by signal s (1 input, 2 outputs), where x <= a when s='1' and y <= a when s='0'
The use of select should be done in cases when you want to create a mux (n inputs, 1 output). That is, the opposite of a demux!
I would recommend you to use a simple if statement to create a demux.
Example:
if s='1' then x <= a; else y <= a; end if;
answered Dec 19 '18 at 14:14
Nathalia DGBNathalia DGB
11
11
add a comment |
add a comment |
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%2f53415482%2fwhy-does-my-selected-signal-assignment-not-work%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
"not work" is a bit vague. Provide a Minimal, Complete, and Verifiable example including a description of the problem and the means to replicate it.
– user1155120
Nov 21 '18 at 16:23
3
Questions and answers are meant to be a search resource for future readers with questions. Without a clear problem statement (what indication do you get your signal assignment statement isn't working?) Your question isn't clear. Answering the question also likely depends on the declaration of
s
which isn't provided. A selected signal assignment has a case statement (in a process statement) equivalent. A case statement requires every choice of the value of s be covered. For type bit they are, for std_logic (std_ulogic) not. As is your question isn't answerable.– user1155120
Nov 21 '18 at 17:01