I'm in the process of learning VHDL and I'm trying just learning from examples, syntax guides, and experiments.
One thing I don't quite understand is why you'd ever want to provide more than one architecture. For instance, this example MUX code:
architecture behv1 of Mux is
begin
process(I3,I2,I1,I0,S)
begin
-- use case statement
case S is
when "00" => O <= I0;
when "01" => O <= I1;
when "10" => O <= I2;
when "11" => O <= I3;
when others => O <= "ZZZ";
end case;
end process;
end behv1;
architecture behv2 of Mux is
begin
-- use when.. else statement
O <= I0 when S="00" else
I1 when S="01" else
I2 when S="10" else
I3 when S="11" else
"ZZZ";
end behv2;
Is there a purpose for it, or is it just for example sake?
Also, not sure if this belongs here or Electronics.SE, so figured I'd try here first.
As with the architecture of a building, it is normally necessary to develop multiple views of the architecture of an information system, to enable the architecture to be communicated to, and understood by, the different stakeholders in the system.
'Architecture is more than a mere record or reflection of who we are. Instead, the fundamental purpose of architecture is as a means for creating our cultures and ourselves' Determining who we want to be, or what it would now mean to be fully human, could be properly understood as a design problem.
Multitenancy reduces the need for individual users to manage infrastructure and handle updates and maintenance. Individual tenants can rely on a central cloud provider, rather than their own teams, to handle those routine chores.
A multi-instance architecture provides each tenant with its own isolated database and infrastructure to run their own separate instance of an application or service, thus providing customers with the assurance of total privacy of their data.
While that particular example seems to be just for an example's sake, there are several reasons why you'd want different architectures for some designs.
One thing that is commonly done is to provide black box models of IP designs for performance reasons, when you are trying to simulate another (unrelated) part of the whole SoC design.
Or, you might have a higher level model of the IP that allows faster simulation times, as well as the model intended for synthesis. Higher level models are often used for processor cores, since simulating the entire core is usually not necessary when verifying the rest of the design.
Another possible reason is to selectively have different behavior in an IP design so that slightly different versions can be instantiated when the IP is integrated into a SoC design. For example, one architecture might be intended for one-clock-domain operation while another might have synchronization between two different clock domains.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With