В назначении VHDL я должен создать АЛУ, которое выводит результат вычитания и дополнения до двух, а также некоторые другие операции на 16-битных входах. В том смысле, что rtl-код сравнивается с функциональным.
В функциональном коде я использовал арифметические операции, такие как "+", "-" и..., но в rtl я использовал структурный VHDL. Вот почему я должен быть точным, чтобы результаты этих кодов показывали один и тот же результат. Я не знаю, какими частями кодов было бы полезно поделиться.
Я работаю над кодом vhdl, который вычитает два «подписанных» числа (подписанных в формате дополнения до двух) в структурной форме. Обычно для вычитания двух беззнаковых чисел мы меняем второе на дополнение до двух и складываем числа.
Но теперь, когда у нас есть числа со знаком, скажем, мы хотим вычесть два 16-битных числа со знаком, чтобы последний старший бит был битом знака. Как здесь работает дополнение до двух? (Глядя на здесь), если я хочу иметь a - b (a и b числа со знаком), я должен иметь:
a + (дополнение до двух b)
or
а + (не б)?
(a и b подписаны в формате дополнения до двух)